{"version":3,"file":"static/chunks/pages/_app-eab173d5d089d813.js","mappings":"4FACA,qCAA6C,CAAE,SAAa,EAC5D,kBAAwB,QACxB,MAAqB,EAAQ,KAAc,CAC3C,SACA,EAF4B,UAE5B,GAGA,OAFA,cACA,2CACA,KAEA,OACA,iCACA,SAAoB,+BAA2D,EAC/E,KACA,eACA,MACA,QACA,IACA,YACA,GACA,mBAAyD,EAAW,SAAmB,EAAW,GAAG,GAAQ,GAG7G,QACA,EACA,gBACA,8CAAmG,eAAqB,UACxH,IACA,WACA,SAEA,MACA,WACA,QACA,iCAAiE,eAAqB,UACtF,YACA,GAAmC,kBACnC,QACA,CAAiB,EAEjB,GACA,uBAAkD,eAA8B,WAEhF,EADA,EACA,OACA,EAFA,EAEA,MAKA,OAFA,UAA2B,uBAC3B,2DACA,CACA,CAAS,EAAI,SAAU,SAAY,CACnC,CACA,CACA,kBAAwB,uCCpDxB,8CACA,0BAA6C,UAC7C,EACA,qCAA6C,CAAE,SAAa,EAAC,EAC7D,UAAkB,QAClB,QAAmC,EAAQ,KAAgB,GAC3D,EAAkB,EAAQ,IAAe,CADC,CAE1C,IAAmD,EAAQ,KAAgC,GAC3F,IAAqC,EAAQ,GADa,EACQ,GAClE,IAAiC,EAAQ,GADG,EACc,GAC1D,IAAkC,EAAQ,GADF,CACoB,GAC5D,IAAgC,EAAQ,IADC,CACe,GACxD,IAA8B,EAAQ,GADC,EACa,GACpD,IAAyC,EAAQ,GADZ,EACwC,GAC7E,IAAkC,EAAQ,GADM,EACG,GACnD,EAAgB,EAAQ,KADiB,EAEzC,UADuB,KACvB,EACA,CAAM,yBAA6B,4CAAqD,CACxF,CAAM,2BAA+B,mDAA8D,CACnG,CAAM,8BAAkC,4CAAqD,CAC7F,CAAM,oCAAwC,0BAA+B,CAC7E,EAEA,mGACA,gDACA,iBACA,gBACA,UACA,CAAC,EAID,gBACA,qBACA,oCACA,gBAcA,KACA,iBACA,MACA,EACA,YAA4B,WAAqC,MACjE,WACA,kCACA,iBACA,yBACA,wBApCA,OAoCA,WACA,KACA,CACA,CACA,QACA,qBAEA,CAEA,EAhCA,KAEA,OACA,UAEA,OACA,QAEA,CACA,SACA,QAGA,CAiDA,sBACA,qEACA,oBACA,0CAEA,aADA,CAIA,CAoDA,QACA,eAEA,OADA,YACA,KAEA,OACA,gBAvBA,OAEA,SACA,kBAEA,SACA,8BAEA,SACA,6BAEA,SAAY,sBAAwB,EAIpC,OAjDA,gBACA,UACA,uBACA,yBAzCA,cACA,gBACA,iCACA,mDACA,mBACA,gBAIA,OAHA,GACA,4CAEA,CACA,CAAS,KACT,iBACA,qBACA,CACA,QACA,EA0BA,YACA,0BACA,aACA,0BACA,gBA7BA,KACA,gBACA,YACA,SACA,mDACA,+CACA,OACA,GAA0B,eAE1B,SADA,gBACA,gBACA,CACA,QACA,EAiBA,oBACA,uBACA,iBACA,6BACA,iBACA,sCACA,gBACA,oBACA,aACA,0BACA,kBACA,mCACA,gBACA,qBACA,OAjGA,MAiGA,CACA,4BACA,8CACA,uBACA,4CACA,wBACA,SACA,0BACA,6CACA,SACA,QACA,CACA,EAgBA,EAHA,KACA,kCACA,EAEA,EAOA,uBACA,CACA,CACA,YAAkB,uCCtKlB,mEACA,kBACA,2BAAmC,6BAAoC,aAAgB,CACvF,CAAC,mBACD,kBACA,UACC,EACD,yCACA,iFACA,EACA,qCAA6C,CAAE,SAAa,EAAC,EAChD,EAAQ,KAAoB,KACzC,EAAa,EAAQ,GADD,EACe,KACnC,EAAa,EAAQ,GADD,EACU,YAAV,qBCbpB,qCAA6C,CAAE,SAAa,EAAC,EAC7D,QAAgB,QAEhB,YACA,kBACA,sBACA,sBACA,gBACA,4BACA,8CACA,UACA,sBACA,wCACA,YACA,0BACA,gBACA,kBACA,qBACA,CAAC,cAAkC,UAAgB,IAAK,gCClBxD,qCAA6C,CAAE,SAAa,EAAC,IAC7D,EAAkB,EAAQ,KAAiB,EAgF3C,UAhFyB,CAgFzB,OACA,QACA,yDACA,0BAEA,yBAAyC,WAAiB,OAC1D,cACA,UACA,UACA,UAGA,GAFA,qCACA,2CAEA,SAEA,gBACA,6BAEA,MAEA,CACA,QACA,CAhCA,SAAe,CA1Cf,gBAGA,GAFA,aAA8B,MAE9B,GACA,iCAEA,MACA,mCAEA,oBACA,eACA,SACA,SACA,gBAEA,YAqEA,KArEA,CAqEA,KArEA,CAsEA,KAtEA,CAsEA,KAtEA,CAuEA,KAvEA,CAuEA,KAvEA,CAwEA,KAxEA,CAwEA,KAvEA,QAGA,gBACA,QAGA,QADA,KACA,IAAoB,eAAiC,IAErD,kCAIA,IAHA,SACA,IAEA,mBACA,gCACA,OAEA,IAEA,GACA,MAEA,CAEA,QACA,gCCtEA,qCAA6C,CAAE,SAAa,EAAC,IAC7D,EAAkB,EAAQ,KAAiB,EAC3C,EAAgB,EAAQ,IAAe,EADd,EAsCzB,OAAe,CAZf,CAzBuB,QAyBvB,OACA,aAA8B,MAC9B,oBACA,gBAKA,oBAJA,8BAIA,MACA,oBAJA,4BAIA,eAHA,0BAGA,SAFA,0BAGA,2EACA,8BC6DA,kBACA,aAA8B,MAC9B,OAAiB,gBASjB,MARA,kBACA,YAEA,QACA,gBAEA,mBACA,aACA,CACA,CAoDA,kBAEA,GADA,aAA8B,MAC9B,GACA,uCAEA,qBACA,4CAEA,cACA,2DAEA,sBACA,gDAMA,SAJA,CACA,aACA,aACA,EACA,IACA,CA4CA,kBACA,aAA8B,MAC9B,YAAkD,EAAlD,EAAkD,OAA2B,KAC7E,MADA,CACA,IACA,cACA,2EAEA,YAAwB,uBAAkC,IAE1D,8BACA,0DAGA,CAKA,SAJA,CACA,eACA,aACA,EACA,IACA,CA4CA,kBAEA,GADA,aAA8B,MAC9B,WACA,qEAMA,SAJA,CACA,kBACA,aACA,EACA,IACA,CAkDA,gBACA,aAA8B,MAC9B,OAAe,0BAQf,OAPA,MACA,YAEA,QACA,gBAEA,aACA,CACA,CAmBA,yBACA,aAA8B,MAK9B,EAJA,CACA,uBACA,aACA,EACA,IACA,CAmBA,yBACA,aAA8B,MAK9B,EAJA,CACA,kBACA,aACA,EACA,IACA,CAoBA,yBACA,aAA8B,MAK9B,EAJA,CACA,oBACA,aACA,EACA,IACA,CA6DA,gBACA,YAA4B,iBAC5B,mBACA,MACA,mCAEA,UACA,CAYA,gBACA,aAA4B,gBAC5B,mBACA,MACA,mCAEA,UACA,CAuCA,cAEA,OADA,cACA,YAqEA,cACA,4CACA,CA9nBA,qCAA6C,CAAE,SAAa,EAAC,EAU7D,WAAmB,WAOnB,SAAe,EACf,8BACA,8BACA,6BACA,2BACA,2BACA,6BACA,6BACA,qBACA,qBACA,6BACA,8BACA,8BACA,iCACA,UACA,0BACA,EAOA,cAAoB,EACpB,gBACA,gBACA,iBACA,aACA,aACA,gBACA,gBACA,SACA,SACA,iBACA,gBACA,gBACA,qBACA,wBACA,eACA,EAOA,aAAmB,EACnB,gBACA,gBACA,gBACA,kBACA,cACA,sBACA,gBACA,gBACA,SACA,SACA,aACA,gBACA,gBACA,iBACA,EAkCA,SAAe,GAmCf,UAAgB,CAnBhB,gBAEA,OADA,aAA+B,MAC/B,GACA,YACA,yBACA,aACA,yBACA,UACA,yBACA,aACA,yBACA,kBACA,yBACA,eACA,oBACA,SACA,4BACA,CACA,EAqCA,OAAa,GA2Bb,QAAc,CANd,gBAEA,OADA,YAA8B,OAC9B,oBACA,aACA,CAAK,IACL,EAqCA,SAAe,GAyBf,UAAgB,CANhB,gBAEA,OADA,aAA8B,MAC9B,oBACA,aACA,CAAK,IACL,EA8BA,YAAkB,GA0BlB,aAAmB,CANnB,gBAEA,OADA,aAA8B,MAC9B,oBACA,aACA,CAAK,IACL,EAoCA,mBAAyB,GA0BzB,iBAAuB,GA0BvB,YAAkB,GA2BlB,cAAoB,GA2BpB,oBAA0B,CAR1B,uBACA,aAA8B,MAK9B,EAJA,CACA,0BACA,YACA,EACA,IACA,EAuBA,OAAa,CARb,cAEA,GADA,aAAgC,KAChC,WACA,mDAEA,wBACA,wBACA,EAoBA,iBAAuB,GAmBvB,iBAAuB,GAcvB,iBAAuB,CAHvB,cACA,gBACA,EAiBA,kBAAwB,CAPxB,YACA,YAIA,OAHA,KACA,SAEA,CACA,EAaA,kBAAwB,GAYxB,kBAAwB,CAJxB,YAEA,OADA,MACA,WACA,EAmBA,eAAqB,CARrB,gBAGA,GAFA,aAAmC,gBACnC,aAAgC,gBAChC,QACA,gDAEA,kBACA,EA0BA,aAAmB,CAhBnB,gBAGA,GAFA,YAAmC,aACnC,aAAgC,gBAChC,QACA,8CAEA,uBACA,MACA,sCAEA,uBACA,MACA,mCAEA,YACA,EAgBA,UAAgB,GAehB,UAAgB,CAHhB,YACA,iCACA,EAuCA,cAAoB,CAhBpB,YACA,MACA,gCAEA,qBACA,qCAEA,8BACA,uDAEA,sBACA,SACA,6CAEA,CAAK,CACL,EA+BA,YAAkB,CARlB,YACA,MACA,8BAEA,8CACA,8CAEA,gCCjtBA,qCAA6C,CAAE,SAAa,EAAC,IAC7D,EAAgB,EAAQ,KAAe,CAmCvC,WAnCuB,CAavB,YACA,MACA,iCAEA,sBACA,uBACA,mBACA,0BACA,8BAEA,oBACA,qBAGA,qBACA,aACA,sBACA,qBACA,QAEA,kEACA,EAgCA,WAAiB,CAlBjB,YACA,oBACA,SAGA,sBACA,sBACA,mCAKA,iBACA,2BAGA,oEACA,EAoBA,gBAAsB,CAXtB,cACA,eACA,kBACA,iBACA,SAEA,oCACA,cAEA,qDACA,EAwBA,aAAmB,CAbnB,gBACA,UACA,sCAEA,kBACA,gCACA,EACA,eACA,EACA,WACA,OAEA,EA+BA,WAAiB,CAnBjB,gBACA,MACA,iCAEA,MACA,4CAEA,uCACA,sEAEA,oCACA,gCACA,EACA,eACA,EACA,WACA,gBAEA,EAqCA,cAAoB,CAzBpB,gBACA,MACA,2CAEA,MACA,+CAEA,oCACA,kEAEA,yBAAsD,WAAgB,KACtE,WACA,uCACA,sEAEA,oCACA,gCACA,EACA,eACA,EACA,WACA,gBAEA,CACA,EA0BA,SAAe,CANf,kBACA,mBACA,WAEA,CACA,EAgCA,SAAe,CAZf,oBACA,6BACA,oBAEA,8BACA,qBAEA,sCACA,gBAEA,uDCtOA,IAOA,cACA,cACA,KACA,IACA,cACA,mCACA,EAwBA,oBACA,+BAtBA,gBACA,iBACA,SAEA,kBACA,iBACA,GAEA,wDAcA,EAdA,mBACA,KACA,CAAK,EACL,mBAA+B,UAAoB,CAYnD,OACA,mBAEA,WACA,KACA,UACA,aACA,cACA,eAGA,SACA,gBACA,EACA,aACA,kBACA,cAGA,oDACA,YACA,UAGA,IACA,wBACA,wBACA,kBACA,kBACA,WACA,WACA,UACA,UACA,YAEA,OACA,yBAEA,GACA,wBAEA,CACA,SACA,oDACA,CAEA,CAAS,CACT,EAIA,OAHA,KACA,UACA,IACA,WACA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5ZA,CA4ZA,WA1ZA,YACA,YACA,cACA,eACA,gBA8hBA,OAIA,QAHA,eACA,KAEA,IAAkB,aAAsB,KACxC,wCAEA,QACA,EAtiBA,SAEA,SACA,6CACA,uBACA,IACA,CAEA,CAUA,kBACA,WACA,UACA,MACA,CA2IA,0BAykCA,EAvkCA,0BAmBA,GAhBA,oBACA,IACA,KACI,aACJ,aACI,eACJ,iBA8jCA,EA5jCA,OA8jCA,GA3jCA,mBAIA,oBACA,aACA,eACA,YACA,EAAI,YACJ,MACA,UADA,GAEA,CAQA,GALA,oBACA,gBAIA,qBAEA,aACA,GAEA,aACI,4BAEJ,CADA,OACA,iDACA,EACA,yCAEA,6CAGA,cAGA,wDACA,CAEA,sBACA,IA0BA,EA1BA,IACA,WACA,WAEA,eAEA,UADA,6BACA,aACA,gCACA,0BACA,UAEA,IACA,KACA,KACA,IACA,CAGA,uBACA,MACA,KAEA,mBAEA,CAGA,MACA,SACA,QAAyB,IAAe,IACxC,8BAEA,IADA,cACA,0BAEA,iBACA,IAGA,EAAI,IAEJ,IADA,eACA,IAAyB,KAAQ,KAEjC,QADA,KACA,IAAsB,IAAe,IACrC,sBACA,KACA,KACA,CAEA,aACA,CAGA,SACA,CA2IA,kBACA,uBAIA,IAHA,SAEA,IACA,MACA,IAWA,QAXA,OACA,OACA,QACA,EACA,MACA,EACA,MACA,EACA,EAEA,UAGA,UACA,OACA,OACA,MAEA,KACA,QAEA,KADA,UACA,QACA,mBACA,KACA,MAGA,KACA,QACA,SACA,SACA,4BACA,8BACA,0BACA,MAGA,KACA,QACA,SACA,SACA,SACA,0CACA,yCACA,kBACA,KAGA,CAGA,UAGA,QACA,KACM,UAEN,SACA,0BACA,gBAGA,UACA,IACA,CAEA,gBAQA,GACA,eACA,MAJA,KAKA,2CAMA,IAFA,SACA,IACA,KACA,6BACA,OACA,aAdA,OAiBA,QACA,EAxBA,EACA,CAmGA,kBACA,sDACA,kEACA,CAmLA,wBACA,iFACA,kEACA,sDACA,CA+LA,wBACA,iBACA,IADA,sCAEA,CAEA,sBAOA,OANA,KACA,OACA,GACA,sDAEA,sBACA,GACA,CAUA,sBAOA,OANA,KACA,OACA,GACA,wDAEA,sBACA,GACA,CA3+CA,IAAc,GAEd,IAAyB,IAmBzB,sBAUA,WAEA,IACA,wBACA,GAAkB,eAAmB,YAGrC,OAFA,8CACA,2BACA,YACA,CAAI,SACJ,QACA,CACA,IAnBA,oDACA,kCACA,cACA,iJAkBA,4CACA,cACA,eACA,oBACA,mBAEA,CAAC,EAED,4CACA,cACA,eACA,oBACA,uBAEA,CAAC,EAmCD,gBAgEA,uBACA,eACA,EAIA,wDACA,oCA8BA,wBACA,OApBA,EAoBA,MAnBA,GACA,EAkBA,GAhBA,SAgBA,EAZA,iBAYA,EAXA,EAWA,GAXA,KAWA,KAVA,EAUA,GAVA,KAUA,GARA,EAQA,EACA,EAUA,0BACA,WACA,EAIA,8BACA,WACA,EA6GA,uBACA,kCACA,iBAGA,wBAGA,GAFA,qDACA,qDACA,+BACA,gBACA,yEAIA,kBAKA,QAHA,WACA,WAEA,oBAAwC,IAAS,IACjD,gBACA,OACA,OACA,KACA,QAGA,OACA,MACA,CACA,EAEA,yBACA,gCACA,UACA,WACA,YACA,YACA,aACA,aACA,aACA,WACA,YACA,cACA,eACA,QACA,SACA,QACA,CACA,EAEA,uBACA,qBACA,+DAGA,gBACA,kBAIA,cAEA,QADA,IACgB,WAAiB,IACjC,eAIA,IARA,EAQA,mBACA,IACA,QAAc,WAAiB,KAC/B,WACA,mBACA,oBACA,oBAEA,8BACA,EACA,EACA,QAGM,iBAGN,iBAFA,+DAIA,YAEA,QACA,EAiDA,eA8EA,yBAQA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cAEA,aAGA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cACA,gBAEA,aAGA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cACA,gBACA,gBACA,gBAEA,aAGA,gCACA,yBACA,SACA,gCACA,uBACA,EAEA,gDAEA,+BACA,sEACA,UACA,qBACA,EAEA,+BACA,SACA,EAAY,IAAyB,CAGrC,OAFA,uCAAiD,EAAE,kBACnD,4BACA,gBACA,EACA,GACA,qCAGA,wCAIA,GAHA,iBACA,oCAEA,eACA,gBACA,iFACA,UAiBA,GAbA,YACA,MAEA,YACA,iBAEA,YACA,MAEA,YACA,gBAGA,oCACA,uCAGA,cACA,SAEA,QACA,UAEA,QACA,SAQA,GALA,OACA,OACA,OACA,OAEA,kBASA,QAPA,MACA,MACA,gBAEA,kBACA,eAEA,IAAkB,IAAS,IAC3B,gBACA,OACA,OACA,KACA,QAGA,OACA,MACA,CACA,EA2HA,qCACA,+BACA,EAEA,oCACA,uBACA,EAEA,wCACA,uBACA,EA2CA,oCAEA,cACA,SACA,cACA,SAEI,kCACJ,IACA,cACA,SAEI,eACJ,OACA,aACA,OACA,yBAEA,IACA,eAGA,YACA,2EAIA,IA3CA,IAIA,IAIA,IAIA,IA+BA,gBAGA,GAFA,yBAEA,sCACA,2DAGA,cAGA,IADA,GACS,CADT,OAEA,UACA,UACA,gBAjFA,SACA,eACA,iBACA,EAGA,cACA,GACA,MAJA,IAQA,eAEA,OACA,QAEA,YAAkB,IAAY,KAC9B,mCACA,GA47BA,GA57BA,OACA,SACA,CACA,QACA,EA0DA,WAEA,YACA,YACA,OA5DA,EA4DA,EA5DA,EA4DA,EA3DA,IA2DA,EA3DA,IA2DA,CA3DA,UA2DA,KA3DA,IA6DA,aACA,aACA,aACA,OA7DA,EA6DA,EA7DA,EA6DA,EA5DA,WAk4BA,GAEA,QADA,KACA,IAAkB,WAAgB,IAElC,4BAEA,QACA,EA70BA,QA5DA,IA8DA,cAEA,OA7DA,EA6DA,EA7DA,EA6DA,EA5DA,IA4DA,QA5DA,IA8DA,YACA,YACA,cACA,eACA,OA/DA,EA+DA,EA/DA,EA+DA,EA9DA,WAm4BA,KAGA,QAFA,IACA,KACA,IAAkB,aAClB,WADkC,IAIlC,EADA,qBACA,EAEA,OADA,OAEA,UAGA,QACA,EAn1BA,EA9DA,IA8DA,CA9DA,UA8DA,KA9DA,IAgEA,SACA,6CACA,uBACA,IACA,CAEA,EAEA,8BACA,OACA,cACA,kDACA,CACA,EAwJA,gCACA,kBACA,MACA,mBAEA,IACA,OACA,SACI,KACJ,MAGA,IACA,OACA,SACI,KACJ,MAGA,WAEA,yBAIA,OAFA,qCAEA,CACA,EAUA,uBACA,uCACA,OACA,OACA,sBAKA,IAHA,cACA,IACA,IACA,iBACA,eAGA,QACA,EAEA,uBACA,uCACA,OACA,OACA,GACA,mBAKA,IAFA,kBACA,IACA,eACA,iBAGA,QACA,EAEA,sBACA,oCAGA,OAFA,OACA,sBACA,SAGA,yBACA,uCAGA,OAFA,OACA,sBACA,oBACA,EAEA,yBACA,uCAGA,OAFA,OACA,sBACA,sBAGA,yBACA,uCAIA,OAHA,OACA,sBAEA,SACA,aACA,eACA,qBAGA,yBACA,uCAIA,OAHA,OACA,sBAEA,kBACA,eACA,aACA,UACA,EAEA,sCACA,OACA,OACA,sBAKA,IAHA,cACA,IACA,IACA,iBACA,eAMA,OAFA,GAFA,UAEA,qBAEA,CACA,EAEA,sCACA,OACA,OACA,sBAKA,IAHA,QACA,IACA,cACA,eACA,iBAMA,OAFA,GAFA,UAEA,qBAEA,CACA,EAEA,yCAGA,CAFA,OACA,sBACA,aACA,qBADA,SAIA,sCACA,OACA,sBACA,2BACA,6BACA,EAEA,sCACA,OACA,sBACA,2BACA,6BACA,EAEA,sCAIA,OAHA,OACA,sBAEA,QACA,aACA,cACA,aACA,EAEA,sCAIA,OAHA,OACA,sBAEA,YACA,cACA,aACA,WAGA,sCAGA,OAFA,OACA,sBACA,sBACA,EAEA,sCAGA,OAFA,OACA,sBACA,sBACA,EAEA,uCAGA,OAFA,OACA,sBACA,sBACA,EAEA,uCAGA,OAFA,OACA,sBACA,sBACA,EAQA,wBACA,0CAIA,GAHA,KACA,OACA,OACA,IACA,wBACA,iBACA,CAEA,QACA,IAEA,IADA,cACA,iBACA,kBAGA,UACA,EAEA,wBACA,0CAIA,GAHA,KACA,OACA,OACA,IACA,wBACA,iBACA,CAEA,UACA,IAEA,IADA,gBACA,kBACA,kBAGA,UACA,EAEA,uBACA,uCAKA,OAJA,KACA,OACA,uBACA,cACA,GACA,EAEA,0BACA,0CAMA,OALA,KACA,OACA,yBACA,cACA,gBACA,GACA,EAEA,0BACA,0CAMA,OALA,KACA,OACA,yBACA,cACA,gBACA,GACA,EAEA,0BACA,0CAQA,OAPA,KACA,OACA,8BACA,iBACA,iBACA,gBACA,cACA,GACA,EAEA,0BACA,0CAQA,OAPA,KACA,OACA,8BACA,eACA,iBACA,gBACA,gBACA,GACA,EAEA,yCAGA,GAFA,KACA,OACA,IACA,wBAEA,oBACA,CAEA,QACA,IACA,IAEA,IADA,cACA,iBACA,6BACA,MAEA,yBAGA,UACA,EAEA,yCAGA,GAFA,KACA,OACA,IACA,wBAEA,oBACA,CAEA,UACA,IACA,IAEA,IADA,gBACA,kBACA,6BACA,MAEA,yBAGA,UACA,EAEA,sCAMA,OALA,KACA,OACA,0BACA,iBACA,cACA,GACA,EAEA,yCAMA,OALA,KACA,OACA,8BACA,cACA,gBACA,GACA,EAEA,yCAMA,OALA,KACA,OACA,8BACA,cACA,gBACA,GACA,EAEA,yCAQA,OAPA,KACA,OACA,wCACA,cACA,gBACA,iBACA,iBACA,GACA,EAEA,yCASA,OARA,KACA,OACA,wCACA,wBACA,eACA,iBACA,gBACA,gBACA,GACA,EAiBA,yCACA,uBACA,EAEA,yCACA,uBACA,EAYA,0CACA,uBACA,EAEA,0CACA,uBACA,EAGA,mCACA,iEAQA,GAPA,SACA,0BACA,0BACA,SACA,gBAGA,OACA,8BADA,SAIA,OACA,8CAEA,8DACA,mDAGA,+BACA,gBACA,iBAGA,UAaA,OAXA,6DAEA,uBAEA,8BACA,EACA,mBACA,GAIA,CACA,EAMA,mCAEA,uBASA,GARA,oBACA,IACA,IACA,eACM,qBACN,IACA,eAEA,+BACA,6CAEA,wCACA,wCAEA,iBACA,IA2BA,EA3BA,kBACA,oBACA,eAEA,KAEA,CACA,EAAI,sBACJ,OACI,qBACJ,cAIA,qCACA,uCAGA,QACA,YASA,GANA,OACA,+BAEA,SAGA,mBACA,QAAoB,IAAS,IAC7B,cAEI,CACJ,oBACA,EACA,YACA,WACA,SACA,gCACA,qCAEA,QAAgB,MAAiB,IACjC,iBAIA,WACA,EAKA,0BAgBA,gBACA,SAMA,QALA,EACA,WACA,O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A,OAhBA,kBAA+C,qBAA2C,EAkB1F,sBACA,WACA,kCACA,CAAK,EACL,gCACA,EACA,IAEA,CACA,CACA,0BACA,oBACA,EACA,yBACA,WACA,aACA,EACA,sBACA,kBACA,aACA,QACA,cAEA,EACA,2BACA,iBACA,MACA,0EAEA,2BACA,gDAEA,gBAEA,IADA,QAAqC,QACrC,OACA,EACA,4BACA,WACA,cACA,eACA,EACA,gCACA,aACA,IACA,EACA,UACA,0CClHA,qCAA6C,CAAE,SAAa,EAAC,EAC7D,yBAAiC,QACjC,MAAc,EAAQ,KAAS,EAC/B,EAAgB,EAAQ,KAAW,CADd,CAuBrB,UAtBuB,iBAsBU,CArBjC,gBACA,QACA,QAAgB,oBAAuC,KACvD,oBACA,mBAGA,iBAEA,EADA,iBACA,oBAGA,iBAEA,aACA,oBAEA,UACA,MACA,CACA,0BC2KA,UAnMA,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,CAAS,CACJ,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,UACA,cACA,cACA,cACA,cACA,gBACA,OACA,gBACA,cACA,gBACA,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,CACA,CAAK,CACL,WACA,qBACA,iBACA,kBACA,cACA,aACA,MACA,WACA,MACA,CAAS,CAET,8BClMA,qCAA6C,CAAE,SAAa,EAAC,EAC7D,KAAa,QAOb,OAAa,CANb,mBACA,EAGA,8BAFA,IAGA,8BCPA,qCAA6C,CAAE,SAAa,EAAC,EAC7D,aAAqB,QA6BrB,eAAqB,CAlBrB,gBATA,QAMA,CANA,EAUA,EAVA,mBAAoF,uBAA8B,UAMlH,GACA,IAGA,EAHA,OAMA,6BACA,IAOA,gDANA,EASA,CACA,CAAK,EAdL,IAeA,8BC7BA,qCAA6C,CAAE,SAAa,EAAC,EAC7D,gBAAwB,QAIxB,kBAAwB,CAHxB,YACA,6CACA,8BCDA,qCAA6C,CAAE,SAAa,EAC5D,SAAe,QAqBf,SAAe,CANf,kBAdA,IACA,EACA,EACA,EAMA,SAMA,kBAfA,EAgBA,KAhBA,EAgBA,KAfA,mBAEA,WADA,gBACA,IACA,4CACA,4CACA,MACA,MAGA,UADA,EASA,EARA,EACA,YAOA,EAPA,UACA,uBAOA,uBCzBA,yCACA,aACA,aACA,cACA,iCAGA,OADA,cACA,KACA,CAAC,GAGD,aAEA,OACA,iCA8gBC,EA7gBD,oBA6gBC,GA7gBD,oBACA,KACA,eA2gBC,GA1gBD,SA0gBC,GAzgBD,WACA,IAEA,OADA,SACA,EACA,CAAU,SACV,QACA,CACA,CAAO,GACP,sBAigBC,EAhgBD,4BAggBC,CA/fD,EAMA,iBACA,OACA,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,wBACA,CAEA,EACA,oBACA,YACA,yDACA,EAGA,cAIA,GAHA,oBACA,cAEA,oCACA,0DAEA,sBACA,CAEA,cAIA,MAHA,oBACA,cAEA,CACA,CAGA,cACA,OACA,gBACA,gBACA,OAAgB,wBAChB,CACA,EAQA,OANA,YACA,+BACA,QACA,GAGA,CACA,CAEA,cACA,YAEA,eACA,wBACA,gBACA,CAAO,OACD,iBACN,sBACA,sBACA,CAAO,OACD,GACN,kDACA,mBACA,CAAO,MAEP,CA8DA,cACA,cACA,gDAEA,cACA,CAEA,cACA,iCACA,oBACA,WACA,EACA,qBACA,UACA,CACA,CAAK,CACL,CAEA,cACA,qBACA,OAEA,OADA,uBACA,CACA,CAmBA,cACA,WACA,kBAEA,mCAEA,OADA,yBACA,SAIA,aA0FA,OAzFA,iBAEA,2BAEA,GADA,iBACA,GAEQ,sBACR,sBACQ,2CACR,sBACQ,mDACR,0BACQ,8DACR,gCACQ,KA5MR,CA4MQ,yBA5MR,EA4MQ,IA3MR,qCA4MA,kCAEA,kDACQ,8DACR,2BAEA,kDACA,OAjBA,iBAmBA,qCACA,mBACA,4CAAuD,gBAC7C,oCACV,qDACU,4DACV,mEAA8E,gBAG9E,EAEA,SACA,qBACA,cACA,KACA,SAGA,kBACA,uCACU,yBACV,0DACU,uBAGV,kDAFA,oDAIA,EAEA,mCACA,sBACA,gDAEA,mBAEA,GAGA,qBACA,IA3FA,EACA,EACA,EAyFA,UACA,KACA,SAGA,kBACA,OAjGA,EAiGA,eA/FA,IADA,kBAEA,gBACA,EA8FQ,yBACR,uBA5FA,YAIA,QAHA,oBACA,kBAEA,IAAoB,WAAiB,IACrC,+BAEA,iBACA,EAoFA,wBACQ,uBAGR,sCAFA,oDAIA,EAEA,YACA,0BACA,0BACA,GAGA,qBACA,mCACA,EAEA,IACA,CA3MA,iCACA,OACA,OACA,kBACA,wBACA,EAEA,+BACA,uBAGA,4BAEA,OADA,OACA,4BACA,EAEA,4BACA,oCACA,EAEA,8BACA,mBACA,EAEA,kCACA,sBACA,4BACA,4BAGA,EAEA,4BACA,SAIA,OAHA,2BACA,SACA,CAAK,EACL,IACA,EAEA,8BACA,SAIA,OAHA,yBACA,SACA,CAAK,EACL,IACA,EAEA,+BACA,SAIA,OAHA,2BACA,aACA,CAAK,EACL,IACA,EAEA,YACA,mDAqJA,qDAOA,gBAEA,IAPA,EACA,EAMA,GADA,SACA,KAEA,mBACA,cACA,+BAEA,gBACA,+BACA,WACA,gCAEA,qBACA,iBACA,qBACA,uBACA,cACA,cAEA,EAAM,IACN,mBAYA,GATA,gEACA,4BACA,gCAEA,aAhCA,GADA,EAiCA,8BAhCA,cACA,qBAgCA,kCACA,kCACA,mBAEA,+CACA,6DAEA,iBACA,CAMA,cACA,mBAYA,OAXA,EACA,OACA,WACA,oBACA,MACA,mBACA,+BACA,iCACA,qDACA,CACA,CAAO,EACP,CACA,CAoBA,gBACA,GACA,OAGA,oBACA,2CACA,0CACA,mDACA,8BACA,mBACA,iBACA,CAlDA,6BACA,mBAA8B,oBAAqB,CACnD,EAkCA,oBAgBA,oBAEA,6BACA,6BACA,mBACA,2BACA,4BACA,YACA,CAAK,CACL,EAEA,mBACA,kBAAuC,uBAA0B,EAEjE,OADA,eACA,CACA,EAEA,4BAEA,yBACA,qBACA,wCAGA,mBAA+B,kBAA0B,YAAe,CACxE,EAEA,8BACA,IACA,mBACI,SACJ,6BACA,eACA,YACA,cACA,qBAEA,wDACA,oDAGA,gBACA,iCACA,iBAEA,8BACA,qDAGA,yBAEA,aACA,SACA,CAEA,oBACA,IAxFA,EACA,EAuFA,GACA,gBACA,wBACA,SA3FA,EA2FA,8BA1FA,QAGA,8BACA,mCACA,mBACA,mBACA,MACA,yBACA,aACA,CACA,CAAK,EACL,EA+EA,CACA,sEAEA,QADA,yCACA,GACA,EAEA,qBACA,sCACA,EAEA,uBACA,sCACA,EAEA,qBACA,6CACA,EAEA,0BAEA,0BACA,qBACQ,wBACR,uBAGA,4BACA,wBAGA,gCACA,uBACA,CAAO,EAEP,WACA,qCAEA,gCAEA,kBACA,uCAEA,GAGA,6CACA,CAAK,CACL,CAEA,cAmBC,EAjBD,QAiBC,EAhBD,QAgBC,EAfD,UAeC,EAdD,UACA,cAGA,YACA,YACA,aACA,UAEA,sCAAiD,SAAa,EAI9D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EA,cACA,SAEA,kBACA,WACA,GAEA,qBACA,sBAEA,EACA,SAqDA,GAEA,QADA,kBACA,IAAkB,WAAgB,IAClC,yBAEA,QACA,EA3DA,gBACA,CAmBA,cACA,mBAEA,eACA,WAEA,wBACA,SACM,cACN,gBAIA,QACA,CAMA,gBAEA,QADA,WACA,IAAkB,IAAO,IACzB,UACA,QACA,CA2CA,oBACA,2BACA,OACA,YAEA,eAEI,yCAGJ,mCAGA,QACA,2BAEA,IACA,CAAK,OAEL,+FAEA,CAraA,+CACA,cACA,eACA,QACA,CAAG,CACH,gBACA,iCACA,0HAEA,GACA,CACA,CAAC,EAED,kBAEA,wBACA,sDACA,iCACA,qBAGA,6CACA,EAIA,wCACA,iCACA,wGAGA,OADA,qBACA,MASA,uCACA,cACA,EAEA,6BAEA,QADA,KACA,IAAkB,mBAAsB,yBADxC,IAEA,cAEA,eACA,cACA,2BACA,MACA,SAGA,MAIA,GAFA,YACA,SACA,mBAGA,QAGA,EAHgB,EANhB,EASA,qDAEA,OADA,YACA,CACA,CAEA,GAHe,CAGf,OAEA,cACA,SAEA,wBACA,iBAIA,QAFA,WACA,SACA,IAAoB,IAAS,IAC7B,eAGA,QACA,EAgEA,sCACA,qBACA,EAEA,uCAEA,4BACA,cACA,qBACA,EAoBA,+BAGA,OAFA,KACA,uBACA,MAGA,gCACA,cAGA,OAFA,KACA,oCACA,IACA,EAGA,2BACA,cACA,cAKA,GAHA,KAGA,SADA,kBAKA,SADA,SAFA,YAMA,yBACA,uBACA,kCAEA,YACA,kBACA,kDAEQ,yBAGR,IAFA,KAEA,aAAkC,KAAQ,IAC1C,gCACA,gBACA,IACA,KACA,CAGA,OACA,YAEA,MACA,UAEA,SA+HA,KACA,KAAS,aAAyB,IAClC,YACA,OACA,EAnIA,KAGA,cACA,YAEA,2BACA,kCACA,CAEA,WACA,EAEA,2CAEA,+BACA,YACA,UAGA,YADA,iBAEA,YAGA,6BAUA,OATA,qBACA,iCACA,qBACU,gBACV,uBACA,iCAEA,aAEA,KAIA,wBACA,IACA,EADA,iBAEA,QAAoB,WAAiB,IAErC,mBADA,UAEA,2BAKA,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A,aAA8B,MAC9B,UACA,cACA,qCAEA,CACA,EAOO,gBAIP,QAHA,OACA,OAEA,IAAoB,WAAqB,MACzC,WACA,mBACA,QAEA,CACA,QACA,EACO,kBACP,MAAyB,QAAO,IAChC,EAAsB,QAAO,IAC7B,OACA,KAgBA,OAfA,sCACA,eACA,sCACA,aACA,IAEA,EADA,IAAkC,QAAQ,MAC1C,EAGA,OAGA,CAAS,CACT,CAAK,EAEL,CACA,EAMO,gBACP,8BAAiD,gBAAkB,QAAoB,OAA2B,IAClH,gECzDO,gBACP,6BACA,yBACA,MACA,kBACA,MACA,MACA,SAEA,MACA,SAEA,CACA,WACA,EAYO,kBACP,MAAW,QAAO,IAClB,kBACA,MAbA,cAIA,CASA,EATA,yBACA,EAGA,WAMA,OACA,OACA,QACA,kCAA0E,kBAC1E,CACA,CAAK,EACL,mBAAkC,wBAA+C,EACjF,OACA,kFEpCA,EAAqB,SAAS,8KAC9B,sCACA,gBACA,MAAW,QAAO,kDAClB,6CACA,CAAK,IACL,EACA,gBACA,aAEA,yFACA,8BAEA,KAEO,gBACP,8BAEA,IADA,EACA,SACA,0CAA2G,cAAmD,GAC9J,gBAEA,EAEA,aACc,QAAO,sDAA8E,aAAyB,EAC5H,GACA,CAAK,IACL,EAKO,cACP,oCAAyD,IAAU,OACnE,MAAW,QAAO,IAClB,gBAA+B,cAA+B,EAC9D,qBAAwC,mBAA2B,IACnE,aCxCA,2FCCA,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,qBAsCA,QArCA,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,wBClGA,OACA,cACA,OACA,oBACA,CAAG,CACH,QACA,qBACA,CAAG,CACH,SACA,sBACA,CAAG,CACH,YACA,gDACA,CACA,CACA,SACA,eACA,gEACA,cACA,CACA,QACA,+DACA,kCACA,iBACA,eACA,mBAEA,MACA,0CAAwE,IAAa,IACrF,kBAEA,kCACA,CACA,OACA,0CAA2E,IAAe,IAC1F,kBAEA,mCACA,CACA,QACA,0CAA2E,IAAe,IAC1F,kBAEA,iCACA,CACA,YACA,0CAA2E,IAAe,IAC1F,kBAEA,uDACA,CACA,wBACA,qBACA,gCAAkD,EAAO,EAAE,aAAa,EAAE,MAAQ,EAClF,kBACA,CACA,UACA,0BAEA,UAAmB,YAAY,GAAG,EAAW,GAE7C,gBACK,CACL,CACA,SAGA,MAFA,oBACA,6BACA,oBACA,CACA,CACA,WAEA,SACA,cACA,iBACA,CACA,QAMA,OALA,yBACA,+CACA,kCACA,4BACA,CAAK,EACL,KAEA,SACA,sBACA,OACA,yBACA,MACA,CACA,4BACA,CACA,QACA,kDAA2F,IAAa,IACxG,oBAEA,mBACA,wCACA,YACA,WACA,YAAwB,IAAmB,IAC3C,OAEA,CAAO,EAEP,qBACA,0CACA,YACA,WACA,YAAwB,IAAmB,IAC3C,mBAEA,CAAO,CAEP,CACA,CAEA,iBACA,EACA,EACA,0BACA,IACA,GACA,CAAG,EAGH,OAFA,YACA,WACA,CACA,CACA,qBACA,WACA,IACA,CAMA,aACA,kBACA,cACA,gDACA,CACA,aACA,4BACA,CACA,wCACA,IACA,oBACA,gBACA,aACA,wBAEA,EADA,0CACA,KAEA,GAEA,GACA,QACA,OACA,CACA,MACA,SACA,CACA,CACA,kBACA,IACA,MACA,IACA,CAAI,cACJ,6BACA,OACA,MACA,CACA,oBACA,wBACA,gBACA,+BACA,KAAW,cAAgB,GAAG,EAAE,EAEhC,OADA,wBACA,UACA,YAA2D,IAA3D,SAA+C,IAAO,GAAG,EAAE,IAC3D,cAGA,UAAc,IAAO,GAAG,EAAE,IAC1B,CAUA,gBACA,IACA,MACA,IACA,CAAI,OACJ,KACA,YAyBA,cACA,6BAAiC,EAAE,+BACnC,CACA,OACA,UAAa,EACb,SAAY,EACZ,SAAY,EACZ,WAAc,EACd,UAAa,EACb,WAAc,CACd,EACA,oBACA,mBACA,gCAEA,CACA,CACA,QACA,eACA,gBACA,uBACA,oBAEA,aACA,4BACA,cACA,SAEA,oBAMA,OALA,yCACA,gDAEA,wBACA,yBACA,CACA,CACA,CACA,yBAAqC,GACrC,YAgBA,gBACA,iEACA,aACA,oBACA,iBACA,IACA,YAAkB,WAAkB,MAIpC,EAHA,0BACA,OAGA,SACA,YAAoB,WAAmB,IAMvC,GALA,OACA,OAEA,QAEA,SADA,SACA,CACA,oEACA,SAEA,SACA,KACA,CAEA,GACA,CACA,QACA,CACA,qBACA,uCACA,CACA,CAEA,kBACA,eACA,8DACA,mBACA,uBACA,EACA,QACA,gBACA,eACA,oCACA,gCAEA,2CACA,qCAEA,CACA,iBACA,8BACA,uBAEA,CACA,oBACA,iCACA,MACA,2BAEA,CACA,mBACA,IAGA,EAHA,4DACA,mEACA,wFAEA,kBACA,gBAEA,QACA,IACA,iBACA,aACU,sBACV,sBAEA,YAIA,2BAMA,CALA,gCACA,OACA,OACA,wBAEA,6BACA,+CACA,CACA,qBACA,8DACA,SACA,EACA,mEACA,QACA,gCACA,oBACA,eACA,IACA,QAEA,sBACA,iBACA,oCACA,CACA,oBACA,8DACA,SACA,EACA,eACA,gHACA,SACA,CAAO,CAEP,mCACA,CACA,6BACA,8DACA,UACA,WACA,EACA,QACA,oBACA,eACA,IACA,IACA,QAEA,sBACA,wBACA,+CACA,EACA,SA3MA,SACA,eACA,qCACA,OACA,2FACA,eAEA,eAGA,WAIA,QACA,EA4LA,OAEA,GACA,KACA,MAGA,iBACA,kCACA,CACA,0BACA,6BACA,uBAEA,yBACA,wBACA,CACA,uBACA,qCACA,CACA,6BAEA,CADA,8BACA,uCAEA,0BAEA,qBACA,CACA,qBACA,oBAEA,+BACA,gCAEA,QADA,wBACA,yCACA,CACA,SACA,iBAEA,CAEA,OACA,aAAgB,CAChB,oBACA,yBACA,CAAG,CACH,kBAIA,OAHA,cACA,2DACA,CAAK,EACL,CACA,CACA,EAEA,QACA,mBACA,eACA,gEACA,QACA,SApVA,OACA,cACA,iBACA,CAAG,CACH,EAgVA,kHACA,eACA,oCACA,gCAEA,kCACA,CACA,kBACA,oBACA,CACA,UACA,8DACA,gBACA,EACA,WACA,SAEA,wBACA,wBACA,CACA,oBACA,yEACA,eACA,uEACA,mCACA,qBACA,0HAzOA,OACA,QACA,QACA,kDACA,yBACA,sBAAyD,oCAAwD,IACjH,aACA,OACA,mBACA,gCACA,MAEA,CACA,QACA,EA2NA,OACA,UACA,+CACA,iBACA,OACA,MACA,YACA,EAEA,iBACA,gEACA,WACA,CAEA,MADA,4BACA,CACA,MACA,YACA,CACA,CACA,iBAQA,GAPA,mEACA,6DAEA,wBACA,KACA,EACA,UACA,iBACA,kCACA,0EACA,mEACA,CACA,MACA,aACA,CAAM,qCACN,gBACA,uBACA,kEACA,kCACA,MACA,qDACA,EACA,CACA,OAAoB,EAAU,EAAE,EAAY,EAAE,EAAI,EAClD,UACA,eACA,UACA,SACA,uCACA,EAEA,GAAkB,EAAU,EAAE,EAAY,EAAE,EAAI,SAEhD,EACA,CACA,MACA,UACA,eACA,UACA,SACA,uCACA,EAEA,CACA,CACA,wBACA,WACA,kBACA,uBACA,qCAEA,6DACA,mDACA,8DACA,eAJA,yDAIA,yDACA,kDACA,oCACA,oFAEA,iFACA,KACA,IACA,CAAS,UAAY,GAAK,GAAG,cAAc,iDAC3C,GACA,QACA,0CACA,GAEA,CACA,CACA,MACA,2BACA,UACA,QACA,eACA,8CACA,SAA+B,EAAY,EAAE,EAAa,EAAE,EAAE,EAC9D,uBACA,KAEA,cACA,IAEA,CAAa,EACb,qBACA,CAEA,GACA,CACA,EAAM,mDACN,eACA,wCACM,CACN,SACA,KACA,6CACA,uBACA,kDACA,wDACA,UACA,CAAO,KACP,qEACA,sBAA2E,6BAA6B,yBAAiC,EAAmB,qBAA6B,EAAkC,oBAC3N,2BACA,KACA,KAEA,wBACA,KACA,KAGA,OADA,gFACA,WACA,uCACA,YAEA,GADA,wDACA,GACA,sBACA,KACA,eACA,CAAW,EACX,6MACA,CACA,SACA,qFACA,oDACA,YAA0B,WAAyB,IACnD,iBAEU,mCACV,8DAEA,6BAEA,gBACA,kBACA,gCACA,4CACY,0DACZ,+CAEA,+BACA,CACA,4BACA,mCACA,cACA,2CACA,oBAAkE,6BAA6B,uBAA8B,6BAA6B,QAC1J,UAAiC,6BAA6B,OAE9D,cACA,2BAAsE,EAAO,MAC7E,CAAe,CACf,CAAa,EAEb,SAGA,CACA,oCACA,0DAAuF,EAAU,GAAG,GAAI,EACxG,8CAEA,EADA,qCACA,gFAAkG,EAAU,GAAG,EAAI,gBAEnH,uCAGA,QACA,GACA,QACA,0CACA,GAEA,CACA,CACA,6BACA,WACA,0CACA,2BACA,+CACA,KACO,qDACP,UACA,CAAO,OACD,6BAWN,CAVA,0CACA,KAEA,eACA,8BACA,mBAGA,CAAO,EACP,oKAEA,MACA,+CACA,cAEA,wDAMA,GALA,iDACA,+CACA,KACA,EACA,4DACA,GACA,+CAEA,EADA,eACA,WACA,CACA,0EACA,oDACA,0CAA4E,IAAa,IACzF,yBAEA,4BACA,2DAAyE,MAAS,UAAU,KAAO,GACnG,MAEA,mBACA,CAAO,KACP,0CACA,CACA,8CACA,2BAUA,aATA,2CACA,sEACA,cACA,KACA,uCACA,CAAS,CACT,MACQ,SAER,CACA,CACA,WACA,IACA,EACA,EACA,EACA,EACA,EALA,4DAqEA,MA/DA,4BACA,cACA,gCACA,+BACA,QACA,IACA,mBACA,+DACA,iDACA,qEACA,+FACA,0FACA,cACA,wBACA,IACA,MAAiC,KAAS,GAAG,EAAG,mFAChD,KAA8B,KAAS,GAAG,EAAG,MAC7C,yBAAmC,EAAQ,mBAAmB,aAAiB,qCAAqC,EAAO,mPAE3H,kBAkCA,EAjCA,gCACA,IACA,UACA,kDACA,6CACY,KACZ,EACA,kDACA,SAAkC,6BAA6B,MAC/D,KAAqC,6BAA6B,SAAS,6BAA6B,EAUxG,GATA,IACA,YACA,6BACA,oDAEA,GACA,aAGA,GACA,SAAoC,EAAI,EAAE,8BAA8B,EAAE,UAAgB,EAC1F,UACA,IACA,YACA,6BACA,oDAEA,GACA,YAGA,CACA,CAEA,gBACA,wBACA,IACA,4BAGA,CAAS,EACT,CAAO,CACP,CAAK,EACL,CACA,MACA,UACA,eACA,UACA,QACA,CACA,CACA,iBACA,oGACA,CACA,mBACA,uEACA,kFACA,uCACA,CACA,uBACA,gEAEA,wCACA,gBAUA,GATA,qBACA,kBAEA,6CACA,IACA,+CACA,KACA,EAEA,GAIA,aAHA,GACA,MAdA,wLAiBA,YAGA,QACA,CACA,0BACA,qBACA,eACA,yFACA,SAGA,QACA,CACA,CAEA,cACA,2CACA,CACA,QACA,eACA,eACA,kDACA,qCACA,CACA,yBAEA,IADA,UACA,6BACA,0BACA,mBACA,QACA,wCACA,oCACA,CACA,2BAEA,IADA,UACA,0BACA,mBACA,oCACA,CACA,sBACA,0CACA,yDACA,eAcA,OAbA,0BACA,4BACQ,cACR,wBACA,wBACA,gEACQ,eACR,wBACA,2CACA,yDACA,+DACA,gEAEA,WACA,CACA,0EACA,CACA,mBAIA,MAHA,6EACA,oCAEA,iFACA,CACA,6BAEA,SADA,GAEA,cACA,YACA,iCACA,6DACA,CAAK,EACL,gCACA,cACA,YACA,sCACA,sCACA,sCACA,WACA,sCACA,iBAFA,QAGA,CAAS,CACT,CAAO,EAEP,0DACA,GApBA,IAqBA,CACA,sBACA,eAGA,GAFA,+BACA,4BACA,+DACA,2BACA,WAKA,OAJA,wCACA,qCACA,0CACA,iBACA,MAEA,wBACA,+DACA,KACA,MACA,IACA,wBACA,UAEA,wEAAgF,EAAE,GAElF,EAWA,MAVA,4DACA,kEACA,wGACA,uEACM,oBACN,8BAEA,cACA,6CACA,CAAK,EACL,CACA,CACA,CAEA,QACA,mHACA,SACA,IACA,CAAC,EACD,gVACA,SACA,IACA,CAAC,EACD,wHACA,OACA,IACA,CAAC,EACD,gDACA,WACA,IACA,CAAC,EACD,YACA,oBACA,IACA,CAAC,EACD,iBACA,WACA,IACA,CAAC,EACD,kBACA,WACA,IACA,CAAC,EACD,YACA,aACA,IACA,CAAC,EACD,YACA,SACA,IACA,CAAC,EACD,YACA,gBACA,KACA,CAAC,EACD,YACA,cACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,YACA,aACA,KACA,CAAC,EACD,YACA,YACA,KACA,CAAC,EACD,YACA,WACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,aACA,WACA,KACA,CAAC,EACD,YACA,eACA,KACA,CAAC,EACD,YACA,SACA,IACA,CAAC,EACD,YACA,YACA,KACA,CAAC,EACD,YACA,aACA,KACA,CAAC,EACD,iBACA,eACA,KACA,CAAC,EACD,GACA,cACA,kBACA,CAAG,CACH,cACA,mBACA,CAAG,CACH,cACA,QACA,CAAG,CACH,cACA,+EACA,CAAG,CACH,cACA,uEACA,CAAG,CACH,cACA,oCACA,CAAG,CACH,cACA,iEACA,CAAG,CACH,cACA,4CACA,CAAG,CACH,cACA,mBACA,CAAG,CACH,eACA,2CACA,CAAG,CACH,eACA,wDACA,CAAG,CACH,eACA,iCACA,CAAG,CACH,eACA,oBACA,CAAG,CACH,eACA,qCACA,CAAG,CACH,eACA,sEACA,CAAG,CACH,eACA,6CACA,CAAG,CACH,eACA,2CACA,CAAG,CACH,eACA,8BACA,CAAG,CACH,eACA,sEACA,CAAG,CACH,eACA,iDACA,CAAG,CACH,eACA,2DACA,CAAG,CACH,eACA,qDACA,CACA,EACA,mBACA,SACA,GACA,OACA,MACA,MACA,MACA,OACA,OACA,CAaA,SACA,eACA,+DACA,sBACA,eACA,uCACA,+HACA,oCACA,yKAEA,WAtBA,WACA,SASA,OARA,cACA,mBACA,MACA,aACA,gBAEA,CAAK,CACL,CAAG,EACH,CACA,GAYA,CACA,aACA,eACA,CACA,WACA,gEACA,2BACA,IACA,iDACA,mCACA,CAAS,CACT,CAAQ,SACR,MACA,CAEA,gFAEA,eACA,gEACA,2BACA,wBACA,iDAEA,qBACA,CACA,yBACA,gEACA,uCAA4D,EAAI,EAAE,EAAO,EACzE,CACA,eACA,gEACA,2BACA,EAGA,wBACA,sEAA0L,qBAAqB,EAAE,oBAA4B,qBAAqB,KAAO,EAAE,EAAe,GAE1R,wCALA,EAMA,CACA,eACA,gEACA,2BACA,EACA,wBACA,GAAkB,qBAAqB,EAAE,oBAA4B,qBAAqB,KAAO,EAAE,YAAmB,EAEtH,oCAEA,8CAAkD,EAAK,GACvD,GACA,CACA,8BACA,kDACA,eACA,4EACA,MACA,WACQ,OACR,QAGA,kGACA,sCACA,SACA,8BAAwD,aAAkB,EAC1E,IACM,uCAEA,0EADN,IAIA,iFACA,CACA,mBACA,iDACA,CACA,CAEA,kBACA,iEACA,6DACA,WAtiCA,OACA,oBACA,WACA,EAEA,MACA,EAgiCA,OAKA,MAJA,2BAEA,SADA,cACA,aAEA,CACA,CACA,QACA,cACA,+DACA,sCACA,eACA,4DACA,YACA,CACA,OACA,+DACA,oCACA,cACA,GACA,sBACA,yCACA,uDACA,+EACA,qDAAuF,EACvF,qDAAuF,EACvF,gFACA,8DACA,gEACA,uFACA,qFACA,gHACA,iDACA,0DACA,kBACA,CACA,QACA,qCACA,CACA,cACA,aACA,iBACA,cACA,GAEA,aAEA,8BAAmD,YAAY,OAAO,YAAY,GAClF,6CAAmE,YAAY,EAAE,oBAAoB,OAAO,oBAAoB,EAAE,YAAY,GAC9I,2CAAiE,mBAAmB,OAAO,mBAAmB,EAC9G,CACA,yBACA,EACA,EACA,EACA,gGACA,cACA,8BACA,CACA,UACA,sCACA,0EACA,iDACA,KACA,KACA,kBACA,CAAS,GACT,CACA,oCACA,mBACA,sCACA,4FACA,KACA,KACA,kBACA,CAAO,CACP,EACA,mBACA,iFACA,0IA2CA,MA1CA,EACA,0BACA,iBACA,CAAK,EACL,kBACA,oDACA,CAAK,EACL,YAEA,IADA,IACA,oBACA,kBAEA,YADA,UAEA,yBACA,eACA,yBACA,EAAY,oDACZ,UACY,MACZ,OACA,QACA,EAAY,IACZ,+CAA2D,GAAY,oBAAoB,EAAI,GAC/F,SAEU,8CACV,SAEA,qBASA,GARA,oBACA,GACA,4BACA,gCAEA,oBAGA,sBACA,KAEA,CACA,CAAK,EACL,CACA,CACA,UACA,IACA,EACA,EACA,EAHA,4DAIA,gBACA,mCACA,2BACA,wBAAwC,EAAI,KAAK,IACjD,IAA4B,EAAE,KAAK,EACnC,OAEA,MADA,0BACA,YACA,gBACA,uCACA,wBAEA,IACA,gBACA,OACA,KACA,KACA,CACA,CAAQ,SAER,OADA,qEAA6E,EAAI,KACjF,GAAkB,EAAI,EAAE,EAAI,EAAE,EAAc,EAG5C,OADA,sBACA,CACA,CACA,oCACA,QAKA,CADA,IAHA,GACA,KACA,EACA,iDACA,sBACA,sBACA,SACA,+CAA8D,GAAG,cACjE,uDACA,gBACA,IACA,IACA,CAEA,GADA,qCACA,qCACA,8BACA,IACA,sCAA8C,MAAU,cAAc,EAAI,GAC1E,MAEA,GACA,0CACA,KACA,4BACA,CAAS,aAET,oBACA,uBACA,CACA,QACA,CACA,CA+BA,cACA,SACA,uBACA,0BACA,OAKA,OAJA,IACA,YACA,QAEA,IACA,CACA,CACA,QACA,cACA,+DACA,mCACA,eACA,cACA,iBACA,+BACA,KACS,EACT,qBACA,CAAO,EACP,mBACA,+BACA,KACA,gBACA,CAAS,EACT,qBACA,CAAO,EACP,mBACA,iCACA,KACS,EACT,qBACA,CAAO,EACP,uBACA,qCACA,IACA,CAAS,EACT,oCACA,CAAO,EACP,eACA,6BACA,IACA,CAAS,EACT,qBACA,CAAO,CACP,EACA,YACA,CACA,QACA,8DACA,gBACA,EACA,kBACA,+EACA,CACA,SACA,sCACA,CACA,eACA,yCACA,CACA,cACA,gEA0BA,OAzBA,8BACA,eACA,IACA,aACA,gBACA,CArGA,YACA,6BACA,KACA,sBACA,mBACA,4BACA,qCACA,kCACA,kCACM,qCACN,4BAEA,UAAkC,GAClC,YACA,aACA,yBACA,2CACA,8BACA,8BACA,6BACA,sCACA,CAAO,CAEP,CACA,OACA,aACA,eACA,CACA,EAyEQ,GACR,oBACA,QACA,IACA,gEACA,sCACA,uBACA,KACA,KACA,KACW,CACX,CAAU,SACV,mBACA,CACA,QACA,EAAQ,MACR,qDAA6D,EAAW,GAExE,CACA,CAAK,GAEL,CACA,CAQA,kBACA,mBACA,gEACA,QACA,eACA,aACA,gBACA,mCACA,eACA,yCACA,qBACA,6CACA,oBACA,+CACA,uDACA,cACA,cACA,iCACA,gCAEA,CACA,mBACA,SACA,KACA,KACA,KA4BA,OA3BA,cACA,SACA,cACA,SAAwB,EAAI,GAAG,EAAG,GAClC,4CACA,gBACU,kBAAiC,kBAC3C,0BAEA,gBACA,KACA,yBACA,yBACA,0BAEA,CAAO,EACP,YACA,CAAK,EACL,gDACA,iBACA,UACA,mCACA,SAAkB,CAClB,UACA,UACA,CAAO,EAEP,CACA,sBACA,uBACA,+BACA,+BACA,CACA,CACA,cACA,mBACA,OACA,OACA,oCACA,GACA,kDACA,WACA,CAAO,EAEP,qBACA,SACA,uBACA,CAh8CA,kBACA,IACA,MACA,IACA,CAAI,aACJ,eAEA,YACA,GAw7CA,gBA9EA,SA+EA,EA/EA,QA+EA,EA/EA,GACA,OA8EA,EA9EA,QA8EA,EA9EA,CA8EA,EA7EA,gBA8EA,oBACA,6BACA,kCACA,gBACA,iBACA,WACA,cACA,8BACA,CAAa,CAEb,CAAS,EACT,UACA,gBACA,qBAEA,aAGA,CAAK,EACL,sBACA,wCACA,CACA,YACA,+DACA,2EACA,yCACA,6BAA6C,EAC7C,6CACA,wBACA,MACA,KACA,SACA,QACA,OACA,UACA,CAAO,EACP,MACA,CACA,oBACA,cAEA,GADA,oBACA,4BACA,gCACA,wDACA,CACA,4BACA,gBACA,oCACA,CAAS,IACT,MACA,CACA,MACA,EACA,qCACA,iBACA,IACA,YACA,8BACA,8BAEA,SAEA,CAAQ,SACR,IACA,CACA,MACA,CACA,eACA,CACA,oBACA,gEACA,yCACA,iBAEA,OADA,mFACA,MAEA,kEACA,4BACA,8BACA,oBAEA,OADA,sBACA,KAEA,qBACA,eACA,CAAK,CACL,CACA,YACA,0BAAiD,GACjD,CACA,cACA,yBACA,SACA,CAAK,GACL,CACA,WACA,gEACA,eACA,OACA,OACA,2CACA,uBAAmC,EAAO,oBAAoB,GAAI,eAAe,GAAK,WACtF,0BAA2C,EAAO,mBAAmB,GAAI,eAAe,EAAI,KAC5F,kBACA,CAAK,CACL,CACA,uBACA,gEACA,gEACA,4GACA,sCAA4C,EAAI,sBAAsB,EAAU,kPAChF,MACA,CACA,oBACA,sCACA,OACA,KACA,UACA,EACA,yCACA,cACA,IACA,KAMA,EAJA,EADA,aACA,aAEA,aAEA,0BACA,8BAEA,SAEA,CAAU,SACV,IACA,MAEA,cAEA,CACA,SACA,mCACA,CACA,CAEA,aACA,OACA,SACA,iBACA,mBACA,0BACA,oBACA,cACA,iBACA,4BACA,WACA,WACA,wBACA,iBACA,gBACA,oBACA,qBACA,2BACA,eACA,iBACA,yBACA,sBACA,qBACA,+BACA,eACA,2BACA,cACA,qBACA,iBACA,cACA,yBACA,0BACA,+BACA,2BACA,6CACA,SAIA,GAHA,gCACA,6CACA,6CACA,8CACA,iBACA,2BACA,UACS,CACT,CACA,QACA,CAAK,CACL,eACA,eACA,YACA,UAAiB,EACjB,UAAiB,EACjB,oBACA,mBACA,oBACA,kBACA,4BACA,gBACA,kBACA,CACA,CACA,CACA,cAOA,MANA,qCACA,gEACA,6DACA,sDACA,qDAEA,CACA,CAEA,cASA,kBACA,cACA,gEACA,yCASA,GARA,QACA,kBACA,iBACA,cACA,cACA,cAjBA,YACA,qDACA,YACA,yBACA,mBAEA,CAAG,CACH,EAYA,MACA,oCACA,+BAEA,OADA,eACA,KAEA,gBACA,cACA,CAAO,GACP,CACA,CACA,OACA,WACA,gEACA,wCACA,wBACA,IACA,MAEA,uCACA,sBACA,iBACQ,+BACR,uBAGA,UAkBA,qBACA,EACA,2BACA,EAFA,IAGA,CACA,GAtBA,cACA,KACA,gBACA,SAEA,sCACA,6BACA,mBACA,8BACA,EAEA,yBACA,sDAEA,wBACA,oDAOA,2BAMA,CALA,qBACA,4CAEA,0BAGA,uBACA,yBACQ,0BACR,MAEA,yBACA,uDACA,mBACA,YACA,2BACA,kBACA,0BACA,qCACA,iDACA,uDACO,EACP,sGACA,iBACA,iCACA,wEAEA,mCACA,SACA,qDACA,EACA,iFACA,sCACA,kDAA+F,IAAa,IAC5G,oBAEA,cACA,CAAO,EACP,gCACA,oDACA,yFAEA,0BACA,wCACA,4CAEA,kDACA,mCACA,kDAAmG,IAAe,IAClH,oBAEA,cACA,CAAO,EACP,kCACA,oBACA,CAAO,CACP,CAGA,GAFA,8CACA,SACA,8EACA,4EACA,kDACA,CACA,kDACA,4EAGA,CADA,2EACA,YACA,mBACA,+BACA,CACA,CAAK,EACL,0EACA,YACA,mBAEA,OADA,yBACA,CACA,CACA,CAAK,EACL,UACA,OACA,cACA,0IACA,sBACA,kEACA,sCACA,aACA,MACA,EACA,8GACA,uCACA,EAMA,OALA,oDACA,IAEA,gBAEA,CACA,CACA,iBACA,+DACA,IACA,qCAEA,GADA,4BACA,+DACA,sGACA,SACA,MACA,GACA,cACA,kDACA,YACA,cACA,yBACA,CAAS,CACT,EACA,EAIA,KAFA,IADA,mEACA,iBAIA,sBACA,sCAEA,0DACA,kFACA,IACA,CAAO,CACP,EAAM,IACN,OAEA,CACA,uBACA,UAQA,OAPA,sBACA,uBACA,SACA,8CACA,YACA,IACA,CAAK,EACL,CACA,CACA,OACA,mHACA,mHAsBA,MArBA,oBACA,yBAEA,6CACA,wBAEA,6BACA,kCAEA,uBACA,4BAEA,0BACA,sBAEA,sBACA,2BAEA,qBACA,8BAEA,KAEA,uBACA,uBACA,iCACA,YAAqB,wBAA4B,KACjD,wBACA,sCACA,2CACA,wBACA,KACA,CACA,CACA,CACA,oBACA,WACA,4BACA,UACA,gCACA,UACA,gBACA,iEACA,6BACA,2BACA,EACA,UACA,GACA,KACA,kCACA,iCACA,+BACA,sCAEA,iCAEA,qBACA,wBACA,CAAO,EACP,kBACA,wBACA,CAAO,CACP,EACA,MACA,8CACA,gFACA,IACA,eACA,KAEA,4DACA,uIAEA,yBACA,MACA,CAAO,CACP,EAYA,OAXA,yEAEM,yEACN,iDACA,gDAEA,yCAGA,KARA,2CAUA,CACA,CACA,iBACA,WACA,wBACA,EAgBA,EAfA,uBACA,kDAAmG,IAAe,IAClH,oBAEA,6DACA,EAAQ,IACR,GACA,KAGA,oBACA,sBACA,gBACA,wCACA,kCAOA,OAJA,EADA,8BACA,YAAoC,YAAkB,EAAE,EAAa,EAAE,EAAE,GAEzE,eAA2C,YAAkB,EAAE,EAAa,EAAE,EAAI,IAElF,QACA,EAQA,MAPA,mBACA,QAEA,SAEA,OACA,cACA,CACA,CACA,IACA,+DACA,CACA,SACA,4DACA,CACA,uBACA,wBACA,CACA,sBACA,gEACA,uBAEA,OADA,mFACA,GAEA,2CAEA,OADA,8FACA,GAEA,sDACA,2CACA,0CACA,uCACA,cACA,8CAAgE,EAAE,GAAG,EAAE,GACvE,oBACA,EACA,eACA,yBACA,sBACA,UACA,6BACA,wGACA,qBAEA,CACA,oBACA,iBACA,iBAIA,4BACA,cACA,qDACA,CAAK,EACL,uBACA,YACA,OACA,CAAK,EACL,IAXA,OACA,kBAWA,CACA,mBACA,SACA,6BACA,+BACA,qCACA,UAIA,iCACA,uBACA,YACA,OACA,CAAK,EACL,IARA,OACA,kBAQA,CACA,aAEA,CADA,wGACA,GAGA,CAFA,2WAEA,SADA,wDACA,+EAHA,KAIA,CACA,wBACA,gEACA,yCACA,iBACA,CACA,gBACA,gEACA,2DACA,sBACA,8BACA,OACA,gBACA,KAEA,UAEA,EACA,iBACA,uCACA,6BAEA,gCACA,YACA,aACK,EACL,YACA,kBAEA,kBACA,+CACA,EACA,IACA,iCACA,kCAEA,iCACA,gCACA,kDAAiG,IAAe,IAChH,oBAEA,cACA,CAAK,EACL,YACA,uBACA,8CACA,+CACA,EACA,CACA,CACA,SACA,OACA,qBACA,iBACA,uBACA,yBACA,uCAEA,CACA,CACA,wBACA,mCAEA,2BCtzEA,MAAY,qBAEZ,IADA,IACA,UACA,WACA,OACA,KACA,UACA,SACA,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iEyC,yBZrFzC,YACA,MIG0B,GJH1B,cYoFqF,IZpFtD,EAAgB,EAC/C,EYmFqF,IRjFpD,OJHc,ECF/C,GACA,IGIgD,YHJhD,mFACA,EWoFqF,IRjF9B,EQiF8B,ITtFrF,WACA,OCIyG,GAAxB,MDJjF,uIACA,OSoFqF,EACrF,CACA,CAAO,SACD,wBACN,4FAEA,CA0JA,MAzJA,iEACA,0BACG,IA0HH,mBACA,WACA,yDACA,iDACA,EACQ,sBACR,YACA,sBACA,gBACA,CAAW,CACX,uBACA,gBACA,CACA,IAGA,4CACA,WAOA,sBACA,MACA,YAA0D,aAE1D,CAAG,EACH,CACA,ECvPA,OACA,cACA,OACA,oBACA,CAAG,CACH,QACA,qBACA,CAAG,CACH,SACA,sBACA,CAAG,CACH,YACA,gDACA,CACA,CACA,SACA,eACA,gEACA,cACA,CACA,QACA,+DACA,kCACA,iBACA,eACA,mBAEA,MACA,0CAAwE,IAAa,IACrF,kBAEA,kCACA,CACA,OACA,0CAA2E,IAAe,IAC1F,kBAEA,mCACA,CACA,QACA,0CAA2E,IAAe,IAC1F,kBAEA,iCACA,CACA,YACA,0CAA2E,IAAe,IAC1F,kBAEA,uDACA,CACA,wBACA,qBACA,gCAAkD,EAAO,EAAE,aAAa,EAAE,MAAQ,EAClF,kBACA,CACA,UACA,0BAEA,UAAmB,YAAY,GAAG,EAAW,GAE7C,gBACK,CACL,CACA,SAGA,MAFA,oBACA,6BACA,oBACA,CACA,CACA,WAEA,SACA,cACA,iBACA,CACA,QAMA,OALA,yBACA,+CACA,kCACA,4BACA,CAAK,EACL,KAEA,SACA,sBACA,OACA,yBACA,MACA,CACA,4BACA,CACA,QACA,kDAA2F,IAAa,IACxG,oBAEA,mBAEA,MADA,kCACA,YACA,WACA,YAAwB,IAAmB,IAC3C,OAEA,CAAO,EAEP,qBACA,0CACA,YACA,WACA,YAAwB,IAAmB,IAC3C,mBAEA,CAAO,CAEP,CACA,CAEA,iBACA,EACA,EACA,0BACA,IACA,GACA,CAAG,EAGH,OAFA,YACA,WACA,CACA,CACA,qBACA,WACA,IACA,CAMA,aACA,kBACA,cACA,gDACA,CACA,aACA,4BACA,CACA,wCACA,IACA,oBACA,gBACA,aACA,wBAEA,EADA,0CACA,KAEA,GAEA,GACA,QACA,OACA,CACA,MACA,SACA,CACA,CACA,kBACA,IACA,MACA,IACA,CAAI,cACJ,6BACA,OACA,MACA,CACA,oBACA,wBACA,gBACA,+BACA,KAAW,cAAgB,GAAG,EAAE,EAEhC,OADA,wBACA,UACA,OAA2D,SAA3D,SAA+C,IAAO,GAAG,EAAE,IAC3D,cAGA,UAAc,IAAO,GAAG,EAAE,IAC1B,CAUA,gBACA,IACA,MACA,IACA,CAAI,OACJ,KACA,YAyBA,cACA,6BAAiC,EAAE,+BACnC,CACA,OACA,UAAa,EACb,SAAY,EACZ,SAAY,EACZ,WAAc,EACd,UAAa,EACb,WAAc,CACd,EACA,SAAS,EAAM,SACf,GADe,OACf,SACA,gCAEA,CACA,CACA,QACA,eACA,gBACA,uBACA,oBAEA,aACA,4BACA,cACA,SAEA,oBAMA,OALA,yCACA,gDAEA,wBACA,yBACA,CACA,CACA,CACA,yBAAqC,GACrC,YAgBA,gBACA,iEACA,aACA,oBACA,iBACA,IACA,YAAkB,WAAkB,MAIpC,EAHA,0BACA,OAGA,SACA,YAAoB,WAAmB,IAMvC,GALA,OACA,OAEA,QAEA,SADA,SACA,CACA,oEACA,SAEA,SACA,KACA,CAEA,GACA,CACA,QACA,CACA,qBACA,uCACA,CACA,CAEA,kBACA,eACA,8DACA,mBACA,uBACA,EACA,QACA,gBACA,eACA,oCACA,gCAEA,2CACA,qCAEA,CACA,iBACA,8BACA,uBAEA,CACA,oBACA,iCACA,MACA,2BAEA,CACA,mBACA,IAGA,EAHA,4DACA,mEACA,wFAEA,kBACA,gBAEA,QACA,IACA,iBACA,aACU,sBACV,sBAEA,YAIA,2BAMA,CALA,gCACA,OACA,OACA,wBAEA,6BACA,+CACA,CACA,qBACA,8DACA,SACA,EACA,mEACA,QACA,gCACA,oBACA,eACA,IACA,QAEA,sBACA,iBACA,oCACA,CACA,oBACA,8DACA,SACA,EACA,eACA,gHACA,SACA,CAAO,CAEP,mCACA,CACA,6BACA,8DACA,UACA,WACA,EACA,QACA,oBACA,eACA,IACA,IACA,QAEA,sBACA,wBACA,+CACA,EA1MA,kBACA,eACA,qCACA,OACA,2FACA,eAEA,eAGA,WAIA,QACA,EA4LA,OAEA,GACA,KACA,MAGA,iBACA,kCACA,CACA,0BACA,6BACA,uBAEA,yBACA,wBACA,CACA,uBACA,qCACA,CACA,6BAEA,CADA,8BACA,uCAEA,0BAEA,qBACA,CACA,qBACA,oBAEA,+BACA,gCAEA,SADA,uBACA,yCACA,CACA,SACA,iBAEA,CAEA,OACA,aAAgB,CAChB,oBACA,yBACA,CAAG,CACH,kBAIA,OAHA,cACA,2DACA,CAAK,EACL,CACA,CACA,EAEA,QACA,mBACA,eACA,gEACA,QAnVA,gBACA,cACA,iBACA,CAAG,CACH,EAgVA,kHACA,eACA,oCACA,gCAEA,kCACA,CACA,kBACA,oBACA,CACA,UACA,8DACA,gBACA,EACA,WACA,SAEA,wBACA,yBAEA,oBACA,yEACA,eACA,uEACA,mCACA,qBACA,iHAzOA,gBACA,QACA,QACA,kDACA,yBACA,sBAAyD,oCAAwD,IACjH,aACA,OACA,mBACA,gCACA,MAEA,CACA,QACA,EA2NA,OACA,UACA,+CACA,iBACA,OACA,MACA,YACA,EAEA,iBACA,gEACA,WACA,CAEA,MADA,4BACA,CACA,MACA,YACA,CACA,CACA,iBAQA,GAPA,mEACA,6DAEA,wBACA,KACA,EACA,UACA,iBACA,kCACA,0EACA,mEACA,CACA,MACA,aACA,CAAM,qCACN,gBACA,uBACA,kEACA,kCACA,MACA,qDACA,EACA,CACA,OAAoB,EAAU,EAAE,EAAY,EAAE,EAAI,EAClD,UACA,eACA,UACA,SACA,uCACA,EAEA,GAAkB,EAAU,EAAE,EAAY,EAAE,EAAI,SAEhD,EACA,CACA,MACA,UACA,eACA,UACA,SACA,uCACA,EAEA,CACA,CACA,wBACA,WACA,kBACA,uBACA,qCAEA,6DACA,mDACA,8DACA,eAJA,yDAIA,yDACA,kDACA,oCACA,oFAEA,iFACA,KACA,IACA,CAAS,UAAY,GAAK,GAAG,cAAc,iDAC3C,GACA,QACA,0CACA,GAEA,CACA,CACA,MACA,2BACA,UACA,QACA,eACA,8CACA,SAA+B,EAAY,EAAE,EAAa,EAAE,EAAE,EAC9D,uBACA,KAEA,cACA,IAEA,CAAa,EACb,qBACA,CAEA,GACA,CACA,EAAM,mDACN,eACA,wCACM,CACN,SACA,KACA,6CACA,uBACA,kDACA,wDACA,UACA,CAAO,KACP,qEACA,sBAA2E,6BAA6B,yBAAiC,EAAmB,qBAA6B,EAAkC,oBAC3N,2BACA,KACA,KAEA,wBACA,KACA,KAGA,OADA,gFACA,WACA,uCACA,YAEA,GADA,wDACA,GACA,sBACA,KACA,eACA,CAAW,EACX,6MACA,CACA,SACA,qFACA,oDACA,YAA0B,WAAyB,IACnD,iBAEU,mCACV,8DAEA,6BAEA,gBACA,kBACA,gCACA,4CACY,0DACZ,+CAEA,+BACA,CACA,4BACA,mCACA,cACA,2CACA,oBAAkE,6BAA6B,QAA2D,EAA3D,aAA8B,6BAA6B,QAC1J,UAAiC,6BAA6B,OAE9D,cACA,2BAAsE,EAAO,MAC7E,CAAe,CACf,CAAa,EAEb,SAGA,CACA,oCACA,0DAAuF,EAAU,GAAG,GAAI,EACxG,8CAEA,EADA,qCACA,gFAAkG,EAAU,GAAG,EAAI,gBAEnH,uCAGA,QACA,GACA,QACA,0CACA,GAEA,CACA,CACA,6BACA,WACA,0CACA,2BACA,+CACA,KACO,qDACP,UACA,CAAO,OACD,6BAWN,CAVA,0CACA,KAEA,eACA,8BACA,kBACA,CAEA,CAAO,EACP,oKAEA,MACA,+CACA,cAEA,wDAMA,GALA,iDACA,+CACA,KACA,EACA,4DACA,GACA,+CAEA,EADA,eACA,WACA,CACA,0EACA,oDACA,0CAA4E,IAAa,IACzF,yBAEA,4BACA,2DAAyE,MAAS,UAAU,KAAO,GACnG,MAEA,mBACA,CAAO,KACP,0CACA,CACA,8CACA,2BAUA,aATA,2CACA,sEACA,cACA,KACA,uCACA,CAAS,CACT,MACQ,SAER,CACA,CACA,WACA,IACA,EACA,EACA,EACA,EACA,EALA,4DAqEA,MA/DA,4BACA,cACA,gCACA,+BACA,QACA,IACA,mBACA,+DACA,iDACA,qEACA,+FACA,0FACA,cACA,wBACA,IACA,MAAiC,KAAS,GAAG,EAAG,mFAChD,KAA8B,KAAS,GAAG,EAAG,MAC7C,yBAAmC,EAAQ,mBAAmB,aAAiB,qCAAqC,EAAO,mPAE3H,kBAkCA,EAjCA,gCACA,IACA,UACA,kDACA,6CACY,KACZ,EACA,kDACA,SAAkC,6BAA6B,MAC/D,KAAqC,6BAA6B,SAAS,6BAA6B,EAUxG,GATA,IACA,YACA,6BACA,oDAEA,GACA,aAGA,GACA,SAAoC,EAAI,EAAE,8BAA8B,EAAE,UAAgB,EAC1F,UACA,IACA,YACA,6BACA,oDAEA,GACA,YAGA,CACA,CAEA,gBACA,wBACA,IACA,4BAGA,CAAS,EACT,CAAO,CACP,CAAK,EACL,CACA,MACA,UACA,eACA,UACA,QACA,CACA,CACA,iBACA,oGACA,CACA,mBACA,uEACA,kFACA,uCACA,CACA,uBACA,gEAEA,wCACA,gBAUA,GATA,qBACA,kBAEA,6CACA,IACA,+CACA,KACA,EAEA,GAIA,aAHA,GACA,MAdA,wLAiBA,YAGA,QACA,CACA,0BACA,qBACA,eACA,yFACA,SAGA,QACA,CACA,CAEA,cACA,2CACA,CACA,QACA,eACA,eACA,kDACA,qCACA,CACA,yBAEA,IADA,UACA,6BACA,0BACA,mBACA,QACA,wCACA,oCACA,CACA,2BAEA,IADA,UACA,0BACA,mBACA,oCACA,CACA,sBACA,0CACA,yDACA,eAcA,OAbA,0BACA,4BACQ,cACR,wBACA,wBACA,gEACQ,eACR,wBACA,2CACA,yDACA,+DACA,gEAEA,WACA,CACA,0EACA,CACA,mBAIA,MAHA,6EACA,oCAEA,iFACA,CACA,6BAEA,SADA,GAEA,cACA,YACA,iCACA,6DACA,CAAK,EACL,gCACA,cACA,YACA,sCACA,sCACA,sCACA,WACA,sCACA,iBAFA,QAGA,CAAS,CACT,CAAO,EAEP,0DACA,GApBA,IAqBA,CACA,sBACA,eAGA,GAFA,+BACA,4BACA,+DACA,2BACA,WAKA,OAJA,wCACA,qCACA,0CACA,iBACA,MAEA,wBACA,+DACA,KACA,MACA,IACA,wBACA,UAEA,wEAAgF,EAAE,GAElF,EAWA,MAVA,4DACA,kEACA,wGACA,uEACM,oBACN,8BAEA,cACA,6CACA,CAAK,EACL,CACA,CACA,CAEA,QACA,mHACA,SACA,IACA,CAAC,EACD,gVACA,SACA,IACA,CAAC,EACD,wHACA,OACA,IACA,CAAC,EACD,gDACA,WACA,IACA,CAAC,EACD,YACA,oBACA,IACA,CAAC,EACD,iBACA,WACA,IACA,CAAC,EACD,kBACA,WACA,IACA,CAAC,EACD,YACA,aACA,IACA,CAAC,EACD,YACA,SACA,IACA,CAAC,EACD,YACA,gBACA,KACA,CAAC,EACD,YACA,cACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,YACA,aACA,KACA,CAAC,EACD,YACA,YACA,KACA,CAAC,EACD,YACA,WACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,aACA,WACA,KACA,CAAC,EACD,YACA,eACA,KACA,CAAC,EACD,YACA,SACA,IACA,CAAC,EACD,YACA,YACA,KACA,CAAC,EACD,YACA,aACA,KACA,CAAC,EACD,iBACA,eACA,KACA,CAAC,EACD,GACA,cACA,kBACA,CAAG,CACH,cACA,mBACA,CAAG,CACH,cACA,QACA,CAAG,CACH,cACA,+EACA,CAAG,CACH,cACA,uEACA,CAAG,CACH,cACA,oCACA,CAAG,CACH,cACA,iEACA,CAAG,CACH,cACA,4CACA,CAAG,CACH,cACA,mBACA,CAAG,CACH,eACA,2CACA,CAAG,CACH,eACA,wDACA,CAAG,CACH,eACA,iCACA,CAAG,CACH,eACA,oBACA,CAAG,CACH,eACA,qCACA,CAAG,CACH,eACA,sEACA,CAAG,CACH,eACA,6CACA,CAAG,CACH,eACA,2CACA,CAAG,CACH,eACA,8BACA,CAAG,CACH,eACA,sEACA,CAAG,CACH,eACA,iDACA,CAAG,CACH,eACA,2DACA,CAAG,CACH,eACA,qDACA,CACA,EACA,mBACA,SACA,GACA,OACA,MACA,MACA,MACA,OACA,OACA,CAaA,SACA,eACA,+DACA,sBACA,eACA,uCACA,+HACA,oCACA,yKAEA,sBArBA,SASA,OARA,cACA,mBACA,MACA,aACA,gBAEA,CAAK,CACL,CAAG,EACH,CACA,GAYA,CACA,aACA,eACA,CACA,WACA,gEACA,2BACA,IACA,iDACA,mCACA,CAAS,CACT,CAAQ,SACR,MACA,CAEA,gFAEA,eACA,gEACA,2BACA,wBACA,iDAEA,qBACA,CACA,yBACA,gEACA,uCAA4D,EAAI,EAAE,EAAO,EACzE,CACA,eACA,gEACA,2BACA,EAGA,wBACA,sEAA0L,qBAAqB,EAAE,oBAA4B,qBAAqB,KAAO,EAAE,EAAe,GAE1R,wCALA,EAMA,CACA,eACA,gEACA,2BACA,EACA,wBACA,GAAkB,qBAAqB,EAAE,oBAA4B,qBAAqB,KAAO,EAAE,YAAmB,EAEtH,oCAEA,8CAAkD,EAAK,GACvD,GACA,CACA,8BACA,kDACA,eACA,4EACA,MACA,WACQ,OACR,QAGA,kGACA,sCACA,SACA,8BAAwD,aAAkB,EAC1E,IACM,uCAEA,0EADN,IAIA,iFACA,CACA,mBACA,iDACA,CACA,CAEA,kBACA,iEACA,6DACA,WAtiCA,OACA,oBACA,WACA,EAEA,MACA,EAgiCA,OAKA,MAJA,2BAEA,SADA,cACA,aAEA,CACA,CACA,SACA,cACA,+DACA,sCACA,eACA,4DACA,YACA,CACA,OACA,+DACA,oCACA,cACA,GACA,sBACA,uCAA8D,EAC9D,YADoE,IACpE,uCACA,+EACA,qDAAuF,EACvF,qDAAuF,EACvF,gFACA,8DACA,gEACA,uFACA,qFACA,gHACA,iDACA,0DACA,kBACA,CACA,QACA,qCACA,CACA,cACA,aACA,iBACA,cACA,GAEA,aAEA,8BAAmD,YAAY,OAAO,YAAY,GAClF,6CAAmE,YAAY,EAAE,oBAAoB,OAAO,oBAAoB,EAAE,YAAY,GAC9I,2CAAiE,mBAAmB,OAAO,mBAAmB,EAC9G,CACA,yBACA,EACA,EACA,EACA,gGACA,cACA,8BACA,CACA,UACA,sCACA,0EACA,iDACA,KACA,KACA,kBACA,CAAS,GACT,CACA,oCACA,mBACA,sCACA,4FACA,KACA,KACA,kBACA,CAAO,CACP,EACA,mBACA,iFACA,0IA2CA,MAnCA,CAPA,CACA,0BACA,iBACA,CAAK,EACL,kBACA,oDACA,CAAK,EACL,YAEA,IADA,IACA,oBACA,kBAEA,YADA,UAEA,yBACA,eACA,yBACA,EAAY,oDACZ,UACY,MACZ,OACA,QACA,EAAY,IACZ,+CAA2D,GAAY,oBAAoB,EAAI,GAC/F,SAEU,8CACV,SAEA,qBASA,GARA,oBACA,GACA,4BACA,gCAEA,oBAGA,sBACA,KAEA,CACA,CAAK,EACL,CACA,CACA,UACA,IACA,EACA,EACA,EAHA,4DAIA,gBACA,mCACA,2BACA,wBAAwC,EAAI,KAAK,IACjD,IAA4B,EAAE,KAAK,EACnC,OAEA,MADA,0BACA,YACA,gBACA,uCACA,wBAEA,IACA,gBACA,OACA,KACA,KACA,CACA,CAAQ,SAER,OADA,qEAA6E,EAAI,KACjF,GAAkB,EAAI,EAAE,EAAI,EAAE,EAAc,EAG5C,OADA,sBACA,CACA,CACA,oCACA,SAIA,GAHA,IACA,KACA,EACA,iDACA,sBACA,sBACA,SACA,+CAA8D,GAAG,cACjE,uDACA,gBACA,IACA,IACA,CAEA,IADA,oCACA,qCACA,8BACA,IACA,sCAA8C,MAAU,cAAc,EAAI,GAC1E,MAEA,GACA,0CACA,KACA,4BACA,CAAS,aAET,oBACA,uBACA,CACA,QACA,CACA,CA+BA,eACA,SACA,uBACA,0BACA,OAKA,OAJA,IACA,YACA,QAEA,IACA,CACA,CACA,SACA,cACA,+DACA,mCACA,eACA,cACA,kBACA,+BACA,KACS,EACT,qBACA,CAAO,EACP,oBACA,+BACA,KACA,gBACA,CAAS,EACT,qBACA,CAAO,EACP,oBACA,iCACA,KACS,EACT,qBACA,CAAO,EACP,wBACA,qCACA,KACS,EACT,oCACA,CAAO,EACP,gBACA,6BACA,KACS,EACT,qBACA,CAAO,CACP,EACA,YACA,CACA,QACA,8DACA,gBACA,EACA,kBACA,+EACA,CACA,SACA,sCACA,CACA,eACA,0CACA,CACA,cACA,gEA0BA,OAzBA,8BACA,eACA,IACA,aACA,gBACA,CArGA,YACA,6BACA,KACA,sBACA,mBACA,4BACA,qCACA,kCACA,kCACM,qCACN,4BAEA,UAAkC,GAClC,YACA,aACA,yBACA,2CACA,8BACA,8BACA,6BACA,sCACA,CAAO,CAEP,CACA,OACA,aACA,eACA,CACA,EAyEQ,GACR,oBACA,QACA,IACA,gEACA,sCACA,uBACA,KACA,KACA,IACA,CAAW,CACX,CAAU,SACV,mBACA,CACA,QACA,EAAQ,MACR,qDAA6D,EAAW,GAExE,CACA,CAAK,GAEL,CACA,CAQA,mBACA,mBACA,gEACA,QACA,eACA,aACA,gBACA,mCACA,eACA,yCACA,qBACA,6CACA,oBACA,+CACA,uDACA,cACA,cACA,iCACA,gCAEA,CACA,mBACA,SACA,KACA,KACA,KA4BA,OA3BA,cACA,SACA,cACA,SAAwB,EAAI,GAAG,EAAG,GAClC,4CACA,gBACU,kBAAiC,kBAC3C,0BAEA,gBACA,KACA,yBACA,yBACA,0BAEA,CAAO,EACP,YACA,CAAK,EACL,gDACA,iBACA,UACA,mCACA,SAAkB,CAClB,UACA,UACA,CAAO,EAEP,CACA,sBACA,uBACA,+BACA,+BACA,CACA,CACA,cACA,mBACA,OACA,OACA,oCACA,GACA,kDACA,WACA,CAAO,EAEP,qBACA,SACA,uBACA,CAh8CA,kBACA,IACA,MACA,IACA,CAAI,aACJ,eAEA,aACA,EAw7CA,gBA9EA,SA+EA,EA/EA,QA+EA,EA/EA,GACA,iBA8EA,EA9EA,CA8EA,EA7EA,gBA8EA,oBACA,6BACA,kCACA,gBACA,iBACA,WACA,cACA,8BACA,CAAa,CAEb,CAAS,EACT,UACA,gBACA,qBAEA,aAGA,CAAK,EACL,sBACA,wCACA,CACA,YACA,+DACA,2EACA,yCACA,6BAA6C,EAC7C,6CACA,wBACA,MACA,KACA,SACA,QACA,OACA,UACA,CAAO,EACP,MACA,CACA,oBACA,cAEA,GADA,oBACA,4BACA,gCACA,wDACA,CACA,4BACA,gBACA,oCACA,CAAS,IACT,MACA,CACA,MACA,EACA,qCACA,iBACA,IACA,YACA,8BACA,8BAEA,SAEA,CAAQ,SACR,IACA,CACA,MACA,CACA,eACA,CACA,oBACA,gEACA,yCACA,iBAEA,OADA,mFACA,MAEA,kEACA,4BACA,8BACA,oBAEA,OADA,sBACA,KAEA,qBACA,eACA,CAAK,CACL,CACA,YACA,0BAAiD,GACjD,CACA,cACA,yBACA,SACA,CAAK,GACL,CACA,WACA,gEACA,eACA,OACA,OACA,2CACA,uBAAmC,EAAO,oBAAoB,GAAI,eAAe,GAAK,WACtF,0BAA2C,EAAO,mBAAmB,GAAI,eAAe,EAAI,KAC5F,kBACA,CAAK,CACL,CACA,uBACA,gEACA,gEACA,4GACA,sCAA4C,EAAI,sBAAsB,EAAU,kPAChF,MACA,CACA,oBACA,sCACA,OACA,KACA,UACA,EACA,yCACA,cACA,IACA,KAMA,EAJA,EADA,aACA,aAEA,aAEA,0BACA,8BAEA,SAEA,CAAU,SACV,IACA,MAEA,cAEA,CACA,SACA,mCACA,CACA,CAEA,cACA,OACA,SACA,iBACA,mBACA,0BACA,oBACA,cACA,iBACA,4BACA,WACA,WACA,wBACA,iBACA,gBACA,oBACA,qBACA,2BACA,eACA,iBACA,yBACA,sBACA,qBACA,+BACA,eACA,2BACA,cACA,qBACA,iBACA,cACA,yBACA,0BACA,+BACA,2BACA,6CACA,SAIA,GAHA,gCACA,6CACA,6CACA,8CACA,iBACA,2BACA,UACS,CACT,CACA,QACA,CAAK,CACL,eACA,eACA,YACA,UAAiB,EACjB,UAAiB,EACjB,oBACA,mBACA,oBACA,kBACA,4BACA,gBACA,kBACA,CACA,CACA,CACA,eAOA,MANA,qCACA,gEACA,6DACA,sDACA,qDAEA,CACA,CAEA,eASA,mBACA,cACA,gEACA,yCASA,GARA,QACA,mBACA,iBACA,cACA,cACA,WACA,GACA,SAnBA,GAEA,OADA,8CACA,YACA,yBACA,mBAEA,CAAG,CACH,EAYA,MACA,oCACA,+BAEA,OADA,eACA,KAEA,gBACA,cACA,CAAO,GACP,CACA,CACA,OACA,WACA,gEACA,wCACA,wBACA,IACA,MAEA,uCACA,sBACA,iBACQ,+BACR,uBAGA,WAkBA,qBACA,EACA,2BACA,EAFA,IAGA,CACA,GAtBA,cACA,KACA,gBACA,UAEA,sCACA,6BACA,mBACA,8BACA,EAEA,yBACA,sDAEA,wBACA,oDAOA,2BAMA,CALA,qBACA,4CAEA,0BAGA,uBACA,yBACQ,0BACR,OAEA,yBACA,uDACA,oBACA,WACA,2BACA,kBACA,0BACA,qCACA,iDACA,sDACA,CAAO,EACP,sGACA,iBACA,iCACA,wEAEA,oCACA,SACA,qDACA,EACA,kFACA,sCACA,kDAA+F,IAAa,IAC5G,oBAEA,cACA,CAAO,EACP,gCACA,oDACA,yFAEA,0BACA,wCACA,4CAEA,kDACA,mCACA,kDAAmG,IAAe,IAClH,oBAEA,cACA,CAAO,EACP,kCACA,oBACA,CAAO,CACP,CAGA,GAFA,8CACA,UACA,8EACA,4EACA,kDACA,CACA,kDACA,4EAEA,4EACA,YACA,mBACA,+BACA,CACA,CAAK,EACL,0EACA,YACA,mBAEA,OADA,yBACA,CACA,CACA,CAAK,EACL,UACA,OACA,cACA,0IACA,sBACA,kEACA,sCACA,aACA,MACA,EACA,8GACA,uCACA,EAMA,OALA,oDACA,IAEA,gBAEA,CACA,CACA,iBACA,gEACA,IACA,qCAEA,GADA,4BACA,+DACA,sGACA,SACA,MACA,GACA,cAEA,IADA,8CACA,YACA,cACA,yBACA,CAAS,CACT,EACA,EAIA,KAHA,uEACA,iBAIA,sBACA,sCAEA,0DACA,kFACA,IACA,CAAO,CACP,EAAM,IACN,OAEA,CACA,uBACA,UAQA,OAPA,sBACA,uBACA,UACA,8CACA,YACA,IACA,CAAK,EACL,CACA,CACA,OACA,mHACA,mHAsBA,MArBA,oBACA,yBAEA,6CACA,wBAEA,6BACA,kCAEA,uBACA,4BAEA,0BACA,sBAEA,sBACA,2BAEA,qBACA,8BAEA,KAEA,uBACA,uBACA,iCACA,YAAqB,wBAA4B,KACjD,wBACA,sCACA,2CACA,wBACA,KACA,CACA,CACA,CACA,oBACA,WACA,4BACA,UACA,gCACA,UACA,gBACA,iEACA,6BACA,2BACA,EACA,UACA,GACA,KACA,kCACA,iCACA,+BACA,sCAEA,iCAEA,qBACA,wBACA,CAAO,EACP,kBACA,wBACA,CAAO,CACP,EACA,MACA,8CACA,gFACA,IACA,eACA,KAEA,4DACA,uIAEA,yBACA,MACA,CAAO,CACP,EAYA,OAXA,yEAEM,yEACN,iDACA,gDAEA,yCAGA,KARA,2CAUA,CACA,CACA,iBACA,WACA,wBACA,EAgBA,EAfA,uBACA,kDAAmG,IAAe,IAClH,oBAEA,6DACA,EAAQ,IACR,GACA,KAGA,oBACA,sBACA,gBACA,wCACA,kCAOA,OAJA,EADA,8BACA,YAAoC,YAAkB,EAAE,EAAa,EAAE,EAAE,GAEzE,eAA2C,YAAkB,EAAE,EAAa,EAAE,EAAI,IAElF,QACA,EAQA,MAPA,mBACA,QAEA,SAEA,OACA,cACA,CACA,CACA,IACA,+DACA,CACA,SACA,4DACA,CACA,uBACA,wBACA,CACA,sBACA,gEACA,uBAEA,OADA,mFACA,GAEA,2CAEA,OADA,8FACA,GAEA,sDACA,2CACA,0CACA,uCACA,cACA,8CAAgE,EAAE,GAAG,EAAE,GACvE,oBACA,EACA,eACA,yBACA,sBACA,UACA,6BACA,wGACA,qBAEA,CACA,oBACA,iBACA,iBAIA,4BACA,cACA,qDACA,CAAK,EACL,uBACA,YACA,OACA,CAAK,EACL,IAXA,OACA,kBAWA,CACA,mBACA,SACA,6BACA,+BACA,qCACA,UAIA,iCACA,uBACA,YACA,OACA,CAAK,EACL,IARA,OACA,kBAQA,CACA,aAEA,CADA,wGACA,GAGA,CAFA,2WAEA,SADA,yDACA,+EAHA,KAIA,CACA,wBACA,gEACA,yCACA,kBACA,CACA,g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ACsB,SAAG,CAC9B,MACA,CACA,kBACA,uCACA,OACA,KACA,8CAEA,uBACA,SACA,mCACA,qBACA,qBACA,WAIA,6BACA,oBACA,oBACA,EACS,CACT,UACA,SAAkC,SAAG,CACrC,GACA,CACA,QACA,aACA,gBACA,SACA,SACA,kBACA,SAAsC,SAAG,CAC3B,IAAS,KACvB,CACA,cACA,eACA,KACA,MACA,OACA,WAGA,yBACA,CACA,EAEA,EAEA,EAEA,GAEA,kBACA,qBACA,IACA,aACA,aACA,aACA,YACA,EACA,GAAkB,YAAgB,eAClC,kBAAU,QAA+B,EACzC,WACA,mBACA,MAIoB,SAAG,CACvB,OACA,CACA,oBACA,OACA,oBACA,cACA,aACA,MACA,iBACA,OACA,YACA,kBACA,aACA,CAAW,eACX,WACA,uBACA,uDACA,wBACA,qDACA,CAAW,eACX,4CACA,CAAS,CACT,SAAkC,SAAG,CDjNrC,ECmNA,CACA,KACA,MACA,OACA,WAEA,eACA,CACA,EAEA,EAGA,CAAC,EAED,eACA,eACA,CAHA,kBAIA,YACA,uBACA,UACA,MACA,cAAY,4BAAmC,EAC/C,4BAEA,mBACA,EAFA,EAEA,gBACA,YACA,GAA2B,mCAAyC,IACpE,sBACA,sBACA,KACA,KAcA,MAbA,cACA,EAVA,EAUA,KAA4C,EAAa,IACzD,KAAa,GAAa,KACpB,WACN,EAbA,EAaA,KAA4C,EAAa,IACzD,KAAa,oBAAoC,KAC3C,aACN,KAAa,GAAa,IAC1B,SAA4C,EAAa,KACnD,aACN,KAAa,mBAAmC,IAChD,EApBA,EAoBA,KAA4C,EAAa,KAEzD,CAAa,QAAQ,OACrB,CACA,CAAC,EACD,eACA,+BACA,WACA,6BC9QA,mCACA,IAAsB,0BACtB,sBACA,WAAyD,OAAgB,KACzE,QAAmE,OAAkB,CACrF,GACA,MAEA,eACA,GAAuB,YAAgB,CACvC,OAC2B,SAAG,cAAwB,yCAAgE,SAAG,UAAoB,yCAAgE,SAAG,KAAyB,WAA6B,EAAG,EAAG,EAG5Q,mBACA,OAA2B,YAAgB,SAC3C,IACA,0BACA,cACA,UACA,MACA,mBACA,0BACA,2BACA,eACA,+BACA,KACA,CAAI,EACJ,EAAc,QAAY,OAC1B,EAAuB,OAAe,MACtC,EAAoB,QAAY,IAChC,WAAyD,OAAoB,EAC7E,OACA,cACA,UACA,CAAG,EACH,MAAkD,UAAc,KAChE,EAA2B,OAAc,IACzC,QACA,EAA0B,QAAY,KACtC,MAAwD,UAAc,IAQtE,OAPE,WAAe,MACjB,gBACA,KAEA,OADA,yBACA,+BAEA,CAAG,MACsB,SAAG,CAC5B,GACA,CACA,QACA,cACA,MACA,OACA,mBACA,YAAmB,aAAiB,CACpC,QACA,KAEA,eAAsB,aAAiB,eACvC,mBAA0B,aAAiB,CAC3C,cACA,IAEA,sBAA6B,aAAiB,CAC9C,cACA,IAEA,SAAgC,SAAG,CAC3B,IAAS,KACjB,CACA,uBACA,qBACA,KACA,MACA,OAAmB,0BAAiC,CACpD,YAAuB,OAAoB,oBAC3C,YACA,CAAW,EACX,QAAmB,OAAoB,eACvC,iBACA,sCACA,6BAEA,GADA,iCACA,qBACA,iCAOA,GAJA,CAFA,oBACA,uBACA,UACA,SAEA,sBACA,EACA,CACA,CACA,YACA,CAAW,EACX,OAAkB,OAAoB,oBACtC,EAEA,EAEA,CAAC,EACD,0BACA,GAA2B,YAAgB,CAC3C,QACA,IACA,0BACA,eACA,YACA,YACA,KACA,CAAM,EACN,EAAmB,OAAK,GACxB,OACA,WACA,yBACA,QACA,oBAAY,2BAA4C,EAOxD,OANI,WAAe,MACnB,KAEA,OADA,IACA,OAEA,CAAK,UACsB,SAAG,CAC9B,YACA,CACA,QACA,KACA,YACA,SACA,SAAkC,SAAG,CAC3B,IAAS,MACnB,CACA,gBACA,iCACA,KACA,MACA,YAAyB,OAAoB,mBAC7C,EACA,iBADA,kBAEA,CAAa,EACb,QAAqB,OAAoB,iCACzC,UAAuB,OAAoB,iBAC3C,8BACA,mBACA,MACA,CACA,qCACA,MAoCA,oBAJA,EAKA,OALA,EAKA,MAJA,QAIA,EAJA,EACA,6DAIA,+DACA,wDACA,YACA,EAzCA,uBACA,eACA,qDACA,mBAEA,MADA,2BACA,sBACA,+BACA,2BACA,wBACA,i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ACA,oDACA,CAAO,IACP,GACA,yBAEA,EACI,WAAe,KACnB,mCACK,IACD,QAAc,GAClB,MAAqC,aAAiB,IAEtD,EADA,2BACA,SA6kBA,WACA,KAdA,cACA,MAAU,OAAO,EACjB,KACA,yBAA0C,WAAoB,OAC9D,aACA,SACA,SACA,SACA,iCACA,MACA,CACA,QACA,EAGA,CAAsB,yBACtB,EACA,EAjlBA,mBACK,IACL,MAA2B,SAAG,CAC9B,GACA,CACA,QACA,YACA,YAAqB,aAAiB,CACtC,IACA,wBACA,CAAW,CACX,KAEA,YAAqB,aAAiB,CACtC,IACA,OACA,mBACA,QACA,CAAW,CACX,KAEA,eAAwB,aAAiB,CACzC,IACA,wBACA,CAAW,CACX,KAEA,uBACA,2BAAoC,aAAiB,KACrD,WACA,CAAS,KACT,SAAkC,SAAG,IAAsB,cAAqD,SAAG,CACzG,GAAU,CACpB,CACA,WACA,UACA,iBAA8B,OAAoB,OAClD,mBACA,kBAA0C,iBAAqB,CAC/D,CAAa,EACb,qBACA,SAAsC,SAAG,CAC3B,IAAgB,CAC9B,CACA,WACA,8BACA,kBACA,uBACA,iBACA,oBACA,YACA,SAA0C,SAAG,CDrDrC,GCuDR,CACA,WACA,KACA,UACA,uBACA,OACA,mBACA,2BACA,aAAkC,OAAoB,OACtD,gDACA,CAAqB,EACrB,6BACA,SAA8C,SAAG,CFEjD,GEAA,CACA,YACA,8BACA,wBACA,6BACA,UACA,KACA,KACA,MACA,OAAiC,0BAAwC,CACzE,UAAmC,OAAoB,iBAEvD,MADA,SACA,uDACA,iCACA,mBACA,IACA,kCACA,iBAEA,gBACA,iBACA,oBADA,OAEA,mBAEA,MADA,2BACA,sBACA,gCA6cA,SAAS,CAAU,EACnB,GA7coC,CA6cpC,QADmB,GACnB,cACA,eACA,WACA,UACA,4BAFA,MAIA,EAndoC,EACpC,CAAyB,EACzB,OAAgC,OAAoB,cACpD,qCACA,+BACA,aAEA,CAAyB,EACzB,cAAuC,OAAoB,CAC3D,gBACA,OACA,eACA,wBACA,mCACA,wCACA,aACA,oBAEA,CAA2B,EAE3B,EAEA,EAEA,EAEA,EACA,CAAW,CACX,EAEA,GAEA,eAA0B,GAE1B,OAAgB,OAFsB,KAEN,CAChC,QACA,gBAAY,QAA6B,EACzC,MAA2B,SAAG,CAAC,IAAS,MAAQ,wBAAiD,CACjG,EAEA,gBAPc,EAOU,UAExB,KAFkC,EAElB,YAAgB,CAChC,QACA,gBAAY,QAA6B,EACzC,MAA2B,SAAG,CAAC,IAAS,MAAQ,WAAkC,CAClF,GAEA,eAPA,YAQA,IAAI,GAAS,cACb,kBACA,GAAe,YAAgB,CAC/B,QACA,IAAY,+BAA2C,EACvD,EAAgB,QAAY,OAC5B,KAA2C,GAAS,eACpD,KAAiD,GAAS,eAC1D,EAAyB,OAAe,MACxC,EAA6B,QAAY,KAczC,MAA2B,SAAG,CAC9B,GACA,CACA,KACA,MACA,WACA,QAAiB,OAAoB,WAnBrC,KACA,gBACA,UACA,0BAA+D,yBAAiC,EAChG,iCAA+E,QAAY,EACnF,QAA2B,MACnC,mBACA,aAEA,WAEA,CACA,GAQA,kBACA,qBACA,YACA,CAAS,CACT,YAAqB,OAAoB,mBACzC,mCACA,CAAS,EACT,UAAmB,OAAoB,iBACvC,gCACA,sBACA,qBACA,wBACA,mBAEA,CAAS,CACT,EAEA,GAEA,eAAuB,GACvB,OAAmB,IADa,QACG,CACnC,QACA,gBAAY,kCAAyD,EACrE,KAAiD,GAAS,GAC1D,QAD0D,EAE1C,QAAY,OAC5B,EAAyB,OAAe,MACxC,MAAsC,UAAc,KACpD,MAA0C,UAAc,KAOxD,OANI,WAAe,MACnB,gBACA,GACA,6BAEA,CAAK,eACsB,SAAG,CACxB,GAAU,SAChB,CACA,EAFgB,IAEhB,EACA,WACA,eACA,SAAkC,SAAG,CAAC,GAAqB,SAAI,8BAAyF,SAAG,CACjJ,IAAS,KACnB,CACA,gBACA,+BACA,0BACA,4BACA,KACA,MACA,cAA2B,OAAoB,CAC/C,gBACA,OACA,EACA,kBAEA,iBACA,oBAEA,EADA,cACA,OAAiC,iBAAqB,EAGtD,CAAe,GAEf,eAA4B,OAAoB,CAChD,iBACA,yBAEA,QAAqB,OAAoB,sBACzC,OAAoB,OAAoB,oBACxC,EACA,CAAW,CACX,EAEA,GAGA,GAAuB,YAAgB,CACvC,QACA,IAAY,qCAAyD,EACrE,MAA2B,SAAG,KAA0B,uCAA6D,SAAG,CACxH,GACA,CACA,wBACA,+BACA,KACA,MACA,mBACA,SAAkB,OAAoB,CACtC,WACA,qBACA,CAAY,6BAEZ,EACA,CAAO,CACP,GAEA,eArBA,mBAsBA,wBACA,WACA,GACA,CAAI,gCACJ,IAEA,GAAqB,YAAgB,CACrC,QACA,UAAY,wBAAsC,EAClD,EAA8B,OAAc,IAC5C,MAA2B,SAAG,KAAuB,qDAA6F,SAAG,KAAc,WAAkC,EAAG,CACxM,GAEA,kBACA,uBACA,GAAoB,YAAgB,CACpC,QACA,UAAY,QAA2B,EACvC,uBACA,cACA,MAA2B,SAAG,KAA0B,uCAA6D,SAAG,CACxH,GACA,CACA,qBACA,iBACA,KACA,MACA,mBACA,SAAkB,OAAoB,CACtC,WACA,yBACA,CAAY,6BAEZ,EACA,CAAO,CACP,GAEA,kBACA,2BACA,WACA,GACA,CAAI,aAEJ,GAAwB,YAAgB,CACxC,QACA,gBAAY,qBAAiD,EAC7D,WACA,MAA2B,SAAG,CACxB,IAAQ,CACd,CACA,yCACA,SAAkC,SAAG,CAC3B,IAAS,MACnB,CACA,KACA,MACA,0BACA,EAEA,EAEA,GAEA,kBAEA,OAAoB,YAAgB,CACpC,QACA,gBAAY,QAAiC,EAC7C,MAA2B,SAAG,CACxB,IAAS,KACf,CACA,iBACA,gCACA,KACA,KACA,EAEA,GAEA,eAfA,gBAiBA,OAAgB,YAAgB,CAChC,QACA,gBAAY,QAA6B,EACzC,QACA,MAA2B,SAAG,CF/RrB,GE+R2C,CAAI,MAAJ,EAAI,QAAkD,CAC1G,GAEA,eARc,EAQU,UACxB,GACA,EAFkC,EAElC,OADA,WAoCA,oBACA,GAAqB,YAAgB,CACrC,QACA,2BACA,uBACA,uBACA,uBACA,EAAyB,QAAY,OACrC,CAAY,qDAAmD,EAC/D,GAAoB,2BACpB,EAA2B,aAAiB,MAC5C,0CACA,cACA,CAAK,KASL,OARI,WAAe,YACf,WAAe,MACnB,gBACA,WACA,uBACA,OACA,CACA,CAAK,QACsB,SAAG,KAAe,yBAAmD,SAAG,CACnG,GACA,CACA,eACA,uBACA,uBACA,4BACA,wBACA,KACA,IAAa,OAAW,sBACxB,YACA,eACA,iCACA,wBACA,2BACA,CAAS,CACT,cAAuB,OAAoB,CAC3C,gBACA,OACA,iBACA,oBACA,gCACA,mCACA,iCACA,mBACA,GACA,CAAe,MAEf,CAAW,GAEX,eAAwB,OAAoB,CAC5C,iBACA,OACA,IACA,yCACA,MACA,8BACA,cAEA,sBACA,sBACA,8BACA,MAGA,CAAoB,YAPpB,SAOoB,YAA4C,CAChE,CAAoB,YAAwC,CAC5D,CAAoB,YAAuC,CAC3D,CAAoB,eAA0C,CAC9D,CAAoB,gBACpB,CACA,MACA,CAAe,EACf,+BACA,4BACA,uCACA,IAEA,EAAc,IAEd,GADA,oBACA,0BACA,kCACA,CACA,CAAW,GAEX,UAAmB,OAAoB,iBACvC,gCACA,+BACA,4BACA,mBACA,mBACA,mBAEA,CAAS,CACT,EACA,CAAO,CACP,GAEA,kBACA,wBACA,GAAqB,YAAgB,CACrC,QACA,SAA2C,GAAY,eACvD,YAAY,qBAA4D,EACxE,KAAmC,GAAY,eAC/C,KAA2C,GAAY,eACvD,uBACA,EAAgB,QAAY,OAC5B,EAAyB,OAAe,MACxC,MAA2B,SAAG,CAAC,GAAU,UAAa,EAAb,IAAa,uBAAoD,SAAG,CAAC,IAAQ,EAAI,2BAA+D,SAAG,CAAC,GAAU,MAAS,6BAAoD,SAAG,CACvQ,GACA,CACA,eACA,8BACA,KACA,MACA,cACA,kCACA,+BACA,wBACA,aACA,oBACA,iDACA,kBACA,CAAS,CACT,uCACA,eAAwB,OAAoB,sBAC5C,wCACA,CAAS,EACT,gBAAyB,OAAoB,uBAC7C,YACA,kBACA,CAAS,EACT,UAAmB,OAAoB,iBACvC,yCACA,4BACA,OACA,mBACA,mBACA,mBAEA,CAAS,CACT,EACA,CAAO,EAAG,EAAG,CACb,GAGA,eACA,wBACA,CACA,eACA,yBACA,CACA,eACA,oDACA,CA0CA,eACA,6CACA,CArDA,kBC9uBA,sBACA,QAA2D,OAAkB,CAC7E,GACA,CAAG,GAAe,EAElB,GAAmB,KACnB,EAHkB,EAGlB,MADkC,CAClC,IACA,OACA,IACA,sBACA,WACA,MACA,OACA,cACA,eACA,WACA,CAAI,EACJ,QACA,EAAqB,QAAY,OACjC,SAAkC,OAAoB,EACtD,OACA,cACA,UACA,CAAG,EACH,MAAyB,SAAG,CAC5B,GACA,CACA,QACA,UAAiB,OAAK,GACtB,aACA,UAAiB,OAAK,GACtB,OACA,eACA,aAAoB,aAAiB,mBACrC,QACA,SAAgC,SAAG,CAAC,GAAkB,CAAI,CAAJ,EAAI,iDAAiE,CAC3H,EAEA,EACA,kBACA,6BACA,GAA0B,YAAgB,CAC1C,QACA,wBAAY,sBAAyD,EACrE,WACA,QACA,MAA2B,SAAG,CDuvB9B,GCvvBmD,CAAI,GAAJ,KAAI,iBAAuD,SAAG,CAC3G,IAAS,QACf,CACA,cACA,eACA,uBACA,uBACA,0CACA,oCACA,4BACA,WACA,KACA,IAAa,OAAW,iBACxB,cAAuB,OAAoB,qBAC3C,kCACA,iBACA,2BAEA,CAAS,EACT,UAAmB,OAAoB,kBACvC,IACA,gDACA,wCACA,8DACA,CAAS,CACT,EACA,CAAO,CACP,GAEA,kBAEA,WACA,wBAAU,QAAsC,EAChD,QACA,MAAyB,SAAG,CAAC,GAAoB,CAAI,EAAJ,CAAI,OAA8B,CACnF,EACA,eANe,EAMkB,gBAAW,GAC5C,IAAI,GAAY,sBAChB,GAA0B,SADV,GAC0B,CAC1C,QACA,wBAAY,QAAuC,EACnD,KAA2C,GAAY,GACvD,QACA,EAAoC,QAAY,KAChD,MAA2B,EAH4B,CAG5B,MAAG,CD6sB9B,GC3sBA,CACA,eACA,8BACA,KACA,KACA,MACA,iBAA0B,OAAoB,wBAC9C,yCACA,aACA,kBACA,CAAS,EACT,kBAA2B,OAAoB,yBAC/C,6BACA,+BACA,kBACA,6BACA,CAAS,EACT,OACA,WAGA,wFACA,sFACA,wFACA,yEACA,0EAEA,CACA,EAEA,GAEA,eAAkC,GAEV,YAAgB,CACxC,QACA,IAAY,SAJkC,YAIlC,OAAqC,EACjD,QACA,MAA2B,SAAG,CAAC,GAAmB,CAAI,CAAJ,EAAI,aAAgD,CACtG,GAEA,YARc,EAQkB,kBAER,YAAgB,CACxC,IAH0C,IAI1C,wBAAY,QAAqC,EACjD,QACA,MAA2B,SAAG,CAAC,GAAmB,CAAI,CAAJ,EAAI,aAAgD,CACtG,GAEA,YARc,EAQkB,eAAU,GAE1C,OAAuB,YAAgB,CACvC,QACA,wBAAY,QAAoC,EAChD,QACA,MAA2B,SAAG,CAAC,GAAkB,CAAI,CAAJ,EAAI,aAA+C,CACpG,EAEA,gBARa,EAQkB,iBAEA,YAAgB,KAFP,IAGxC,wBAAU,QAA4C,EACtD,QACA,MAAyB,SAAG,CAAC,GAA0B,CAAI,QAAJ,CAAI,OAAuD,CAClH,CAAC,EACD,YANsB,EAMiB,uBAAkB,EAE5B,YAAgB,SAC7C,wBAAU,QAA0C,EACpD,QACA,MAAyB,SAAG,CAAC,GAAwB,CAAI,MAAJ,EAAI,QAAqD,CAC9G,CAAC,EACD,YANoB,EAMiB,qBAAgB,EAEzB,YAAgB,SAC5C,wBAAU,QAAyC,EACnD,QACA,MAAyB,SAAG,CAAC,GAAuB,CAAI,KAAJ,GAAI,QAAoD,CAC5G,CAAC,EACD,YANmB,EAMiB,oBAAe,EAEnB,YAAgB,SAChD,wBAAU,QAA6C,EACvD,QACA,MAAyB,SAAG,CAAC,GAA2B,CAAI,SAAJ,CAAI,MAAwD,CACpH,CAAC,EACD,YANA,4BAaA,EAL4B,UAAgB,SAC5C,wBAAU,QAAyC,EACnD,QACA,MAAyB,SAAG,CAAC,GAAuB,CAAI,gBAAoD,CAC5G,CAAC,EACD,YANkB,EAMkB,mBAAc,GAE1B,YAAgB,CACxC,QACA,IAAY,4BAAqC,EACjD,QACA,MAA2B,SAAG,CAAC,GAAmB,CAAI,EAAJ,CAAI,aAAgD,CACtG,GAEA,YARc,EAQkB,kBAYH,YAAgB,KAZH,IAa1C,wBAAU,QAA0C,EACpD,QACA,MAAyB,SAAG,CAAC,GAAwB,CAAI,MAAJ,EAAI,QAAqD,CAC9G,CAAC,EACD,YANoB,EAMiB,qBAAgB,EAyBrD,EAvB6B,UAAgB,SAC7C,wBAAU,QAA0C,EACpD,QACA,MAAyB,SAAG,CD0lB5B,GCxlBA,CACA,KACA,KACA,MACA,OACA,WAGA,wFACA,sFACA,wFACA,yEACA,0EAEA,CACA,EAEA,CAAC,EACD,YAxBoB,EAwBiB,qBAAgB,sDChPxC+R,GAA2C,CACtDC,cAAe,iBACfC,gBAAkB,mHAMlBC,eAAgB,kCAClB,EAAE,GA2BkD,CAClDF,cAAe,QACfC,gBAAkB,wNAYlBC,eAAgB,8BAClB,EE7DaC,IDSXC,GAAqCF,cAAc,CAAC,GAEXA,cAAc,CAAC,CCVxDG,GAAI,UACJC,GAAI,KDSoCP,OCRxCQ,GAAI,QACJC,GAAI,QACJC,GAAI,UACJC,GAAI,UACJC,GAAI,aACJC,GAAI,QACJC,GAAI,cACJ7F,GAAI,mBACJ8F,GAAI,WACJC,GAAI,MACJC,GAAI,MACJC,GAAI,aACJC,GAAI,QACJC,GAAI,SACJC,GAAI,eACJC,GAAI,YACJC,GAAI,UACJC,GAAI,UACJC,GAAI,MACJC,GAAI,eACJC,GAAI,aACJ,UAAW,OACX,UAAW,MACb,EAAW,yBCuKJ,SAASC,GAAyBC,CAAwB,EAC/D,OAAOA,EAAUtS,MAAM,CAAC,SAACuS,CAAAA,EAOvB,OANKA,EAAKjV,KAAK,EACbkV,CAAAA,EAAAA,EAAAA,EAAAA,CAAUA,CACR,+BACA,uCAAkD,OAAXD,EAAK7W,KAAK,GAG9C6W,EAAKjV,KAAK,EAErB,CAEO,SAASmV,GAAoBC,CAAY,EAC9C,GAAa,SAAS,CAAlBA,EACF,MAAO,UAET,GAAIA,SAAkB,GACpB,MAAO,UAET,IACOC,EADDA,EAAeD,EAAK9O,KAAK,CAAC,IAAI,CAAC,EAAE,CACvC,OAAgC,OAAzB+O,SAAAA,EAAAA,KAAAA,EAAAA,EAAc7O,WAAW,GAAzB6O,EAAAA,KAAAA,IAAAA,EAAAA,EAA+B,IACxC,CAEO,SAASC,GAAgBC,CAAiB,CAAEC,CAAyB,EAC1E,IAAMC,EAAcC,GAAAA,CAASA,CACzBlO,OAAO5J,QAAQ,CAACwS,IAAI,CAACuF,OAAO,CAC1BC,OAAO,IAA2C,OAAvCpO,OAAO5J,QAAQ,CAACE,QAAQ,CAACwI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAClD,IAAc,OAAViP,EAAU,MAEhB,GACJ,OAAOC,EAAkBC,EAAYnP,KAAK,CAAC,IAAI,CAAC,EAAE,CAAGmP,CACvD,CAEO,SAASI,GAAab,CAAwB,EACnD,IAAMc,EAAWd,EAAUtS,MAAM,CAAC,SAACuS,CAAAA,QAASc,CAAAA,EAAAA,GAAAA,CAAAA,CAAKA,CAACd,EAAK7W,KAAK,IACtD4X,EAAWhB,EAAUtS,MAAM,CAAC,SAACuS,CAAAA,QAAS,CAACc,CAAAA,EAAAA,GAAAA,CAAAA,CAAKA,CAACd,EAAK7W,KAAK,IAC7D,MAAO,QAAI0X,GAAAA,MAAAA,CAAU,QAAGE,GAC1B,4ECtLO,SAASC,GAAiB,OD3BY,EAwBGC,EAAAA,CAd/C,CAqBsBC,EAgCAC,EAAAA,EACjBA,EAAAA,EAgBeC,EAKRC,cA1EuBC,EHkClCC,IGhC0DC,KHgCC,OGdrDC,MAkBAC,EACAC,EACAC,EAGAC,EACA5S,EAQA6S,EAeAC,EACAC,EACAX,EACAY,EA2BAC,EA/FoDV,EA4GpDW,EAeAC,IAiBAC,GAGAC,GCpFiBC,MA7CQ,EAC/B3S,OAAAA,CACA4S,CADA5S,EAD+B,EAE/B4S,CDhB8FhB,YCgB9FgB,CAAAA,GAF+B,EAG/BC,OAAAA,CAAU,CAAVA,EAH+B,EAI/B3M,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,GAAS,QACT4M,GAL+B,EAK/BA,YAAAA,CACAC,GAN+B,EAM/BA,YAAAA,CACAC,GAP+B,EAO/BA,gBAAAA,CACAxB,GAR+B,EAQ/BA,YAAAA,CACAtI,GAT+B,EAS/BA,KAAAA,CACA+J,GAV+B,EAU/BA,mBAAAA,CACG9J,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAX4B,GAC/BnJ,UACA4S,gBACAC,UACA3M,SACA4M,eACAC,eACAC,mBACAxB,eACAtI,QACA+J,wBAGgDxK,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,MAAvDyK,GAAyCzK,EAAAA,CAAAA,EAAAA,CAAvB0K,GAAuB1K,EAAAA,CAAAA,EAAAA,CAIVA,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,EAAC,MAA9C2K,GAA+B3K,EAAAA,CAAAA,EAAAA,CAAlB4K,GAAkB5K,EAAAA,CAAAA,EAAAA,CAChC,GAAQY,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,yBAArBC,CAAAA,CACFgK,GAAiBzN,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAuB,MAC9C8M,GAAoB9M,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAoB,MAElD0N,IDhDFvT,EAD2C,GCiDZ,CAC3BA,QAtBJA,CAsBIA,IAtBJA,IAAAA,GAAU,EAqBRuT,CArBQ,GAuBNV,QArBJA,CAqBIA,IArBJA,IAAAA,GAAU,IAmBoBU,EAG1B5C,eAAe,CAAEoC,SAAAA,KAAAA,EAAAA,GAAcpC,MAAdoC,SAA6B,CAC9CvB,aAAAA,EACF,GDrDFxR,OAAAA,CACA6S,EAF2C,EAE3CA,OAAAA,CACAlC,EAH2C,EAG3CA,eAAAA,CACAa,EAJ2C,EAI3CA,YAAAA,CAOQrK,EACNqM,CAAAA,EHHKC,CAAAA,EAAAA,GAAAA,CAAAA,CAAQA,CAA6D,SAC1EC,SAAU,CAACpF,QAPbqD,EAOiE,GAC5DzP,CGCHsR,GHT8D,KGQxDrM,EHJP,EGIOA,GACNqM,EADgC9B,UAAAA,CAE1BvK,EAAkDyK,GACxD,CACEiB,MAHsCW,EAG7BX,EAAQc,WAAW,EAC9B,EH8BFzR,EG7BE,CACE0R,IH+BH,IG/BY,CAAC,CAACf,CACb,IHgCKY,CAAAA,EAAAA,GAAAA,CAAAA,CAAQA,CAAyD,SACtEC,SAAU,CAAC/E,GAAsCgD,EAAU,EACxDzP,KGxCGiF,IAAAA,CAAiBuK,EAAiCE,EAAjCF,UAAAA,CAQnBtQ,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,GAGtBiQ,QAAwCD,EAAAA,KAAAA,EAAkC,OAAlCA,GAAAA,EAAoBwC,UAApBxC,IAAkC,GAAlCA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAoC7T,IAAI,CACpF,SAACsW,CAAAA,QAAmB,gCAAZA,EAAGlP,IAAI,KAD6ByM,KAAAA,MAAAA,KAAAA,EAAAA,EAE3C1R,MAAM,CAELoU,EAA6B,EAAE,SAGdzC,EAAAA,KAAAA,EAAiC,QAAjCA,EAAAA,EAAwB0C,SAAAA,GAAxB1C,EAAAA,GAAAA,IAAAA,EAAAA,KAAAA,EAAAA,CAAmC,CAACtR,EAAQ,CAC3DiU,QAAe3C,EAAAA,KAAAA,EAAAA,EAAwBnB,SAAS,CAChD+D,EAAqBrC,EACvB,OAAQsC,GAFS7C,CAEL,CAACO,GAAgDhU,MAAM,CACjE,SAACrF,CAAAA,MAAcqZ,QAAD,QAACA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAAc,CAACrZ,EAAAA,EAAfqZ,CAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0BnU,QAAQ,CAACmV,EAAQc,WAAW,OAEvE,EAAE,CAC+B3T,GAAaiU,IAEhDF,EAAmBlU,EAF2B,CAAC,IAErBuU,OAAO,CAACH,GAC/BpW,MAAM,CACL,+BAAEuS,EAAAA,CAAAA,CAAAA,EAAAA,CAAMiE,EAAAA,CAAAA,CAAAA,EAAAA,OAAeA,OAAAA,EAAAA,KAAAA,EAAAA,EAAW3W,QAAQ,CAACsC,EAAAA,GAAY,CAACkU,EAAmBxW,QAAQ,CAAC0S,KAErFtR,GAAG,CAAC,kBAAEsR,CAAUA,WAAVA,CAAAA,CAAAA,CAAAA,YAKQkB,EAAAA,KAAAA,EAAAA,EAAwBQ,UAAU,GAC1BR,QAAAA,GADRA,EACQA,EAAAA,EAAwBS,kBAAkB,GAClDD,EACf,IAAIwC,GAAAA,UAAUA,CAAC,CAAE1P,KAAM,4BAA6BkN,WAAAA,CAAW,GAC/D,OAC6B,CAAC,CAAC9R,GAAW,CAAC,CAAC8R,GAAc,CAAC,CAACC,GAAsBC,IAC1EnB,GAAAA,CAASA,CAAGlO,OAAO5J,QAAQ,CAACwS,IAAI,CAAG,GAC3C0G,IACF8B,EAAmBhC,EAAmBlU,MAAM,CAAC,SAACrF,CAAAA,CADlB,QAE1BwZ,EAAWuC,GAAG,CAAC,CAAEvU,QAAAA,EAASxH,SAAAA,EAAU6G,IAAAA,CAAI,QAoBf6S,GAfRX,SAAAA,KAAAA,EAAgB,MAAhBA,EAAAA,EAAAA,EAAWiD,KAAAA,GAAXjD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAkBkD,YAAAA,GAAlBlD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgCmD,eAAAA,QACjDnD,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWiD,CAAXjD,IAAWiD,GAAXjD,KAAAA,IAAAA,EAAAA,KAAAA,EAA8B,QAA9BA,EAAAA,EAAkBkD,YAAY,GAA9BlD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgCmD,eAAe,CAACC,MAAM,CAAC,SAACC,CAAAA,CAAKpc,CAAAA,EAU3D,aARGub,EAAAA,KAAAA,EAAAA,EAAkBrW,QAAQ,CAAC4S,GAAoB9X,MAA/Cub,CAA+Cvb,EAAAA,KAAAA,EAAAA,EAAU+X,IAAAA,GAAQ,GAAlB/X,CAAkB,GACpB,MAC9C,CADA8X,GAAoB9X,OAAAA,EAAAA,KAAAA,EAAAA,EAAU+X,IAAI,GAAI,GAAlB/X,EAEpBoc,EAAIpP,IAAI,CAAC,mBACJhN,GAAAA,CACH+X,KAAMD,GAAoB9X,OAAAA,EAAAA,KAAAA,EAAAA,EAAU+X,IAAAA,GAAQ,GAAlB/X,IAGvBoc,CACT,EAAG,EAAE,EACJ,EAAE,EAEmC/W,MAAM,CAAC,SAACuS,CAAAA,SAASA,QAAAA,KAAAA,EAAAA,EAAAA,OAAa,KAC5C8B,EAAarU,MAAM,CAAC,SAACuS,CAAAA,eAASA,EAAAA,KAAAA,EAAAA,EAAMyE,MAANzE,IAAgB,WACvDoB,EAAAA,KAAAA,EAAsB,QAAtBA,EAAAA,EAAcsD,IAAdtD,IAAcsD,GAAdtD,KAAAA,MAAAA,KAAAA,EAAAA,EAAyB,EAAK,GACR,CACvC,CACErW,MAAOuT,GAAoB,EAAK,CAChCnV,CAJuC,KAIhC,KACPgS,EAF0B,GAEpB,QAACkG,EAAAA,GAAchB,GAAgB,KAAME,EAAAA,GAApCc,KAAAA,IAAAA,EAAAA,EAAyD,GAChEsD,YAAa,CAAC,CAACtD,CACjB,EAoBD,CA1BwC,OAOvC,QAAGsC,EAAiBjV,GAAG,CAAC,SAACsR,CAAAA,EACvB,IAAiBoB,EAKRwD,EALHA,QAAWxD,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAcsD,IAAdtD,IAAcsD,GAAdtD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,CAAwB,CAACpB,EAAyC,CAEnF,MAAO,CACLjV,MAAOuT,EAAmB,CAAC0B,EAAyC,CACpE7W,MAAO6W,EACP7E,KAAM,OAACyJ,GAAAA,GAAYvE,GAAgBL,EAAMO,EAAAA,GAAlCqE,KAAAA,IAAAA,EAAAA,EAAuD,GAC9DD,YALkB,CAAC,CAACC,CAMtB,CACF,IACA,QAAG7C,EAAqBrT,GAAG,CAAC,SAACsR,CAAAA,MAIzBoB,QAJmC,CACrCrW,MAAOuT,EAAmB,OAAC0B,EAAAA,KAAAA,EAAAA,EAAMG,IAAI,CAAqC,CAA/CH,CAAmDA,EAAKjV,KAAK,CACxF5B,MAAO6W,OAAAA,EAAAA,KAAAA,EAAAA,EAAMG,IAAAA,EAANH,CAAc,GACrB7E,KACEiG,SAAAA,KAAAA,EAAAA,QAAAA,CAAAA,CAAAA,EAAcsD,QAAAA,GAAdtD,KAAAA,MAAAA,KAAAA,EAAAA,CAAwB,OAACpB,EAAAA,KAAAA,EAAAA,EAAMG,KAAyC,CAA/CH,SACzBA,EAAAA,KAAAA,EAAAA,EAAM6E,MAAN7E,CAAM6E,GACN,GACFF,aAAa,CACf,QAGA,QAAG3C,EAAoBtT,GAAG,CAAC,SAACsR,CAAAA,MAIxBoB,QAJkC,CACpCrW,MAAOuT,EAAmB,OAAC0B,EAAAA,KAAAA,EAAAA,EAAMG,IAAI,CAAqC,CAA/CH,CAAmDA,EAAKjV,KAAK,CACxF5B,MAAO6W,OAAAA,EAAAA,KAAAA,EAAAA,EAAMG,IAAI,EAAVH,CAAc,GACrB7E,KACEiG,CAAAA,QAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAc0D,OAAAA,GAAd1D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,CAAuB,CAACpB,EAAKG,KAAI,UACjCH,EAAAA,KAAAA,EAAAA,EAAMyE,MAANzE,IAAMyE,GACN,GACFE,YAAa,EACf,OAGiC1C,EAAkBvT,GAAG,CAAC,SAACsR,CAAAA,SAASA,EAAK7W,KAAK,GAKzEgZ,GAJ4B1S,OAAOsU,IAAI,CAAC3C,OAAAA,EAAAA,KAAAA,EAAAA,EAAcsD,QAAAA,GAAY,CAAC,EAA3BtD,CAA8B3T,MAAM,CAC9E,SAACuS,CAAAA,QAAS,CAAC+E,EAA2BzX,QAAQ,CAAC0S,MAGrBvR,MAAM,EAAE,CAClCwT,CAAkB7M,IAAI,OAAtB6M,EACE,QAAGE,EAAwBzT,GAAG,CAAC,SAACsR,CAAAA,MAGxBoB,QAHkC,CACxCrW,MAAOuT,EAAmB,CAAC0B,EAAyC,CACpE7W,MAAO6W,EACP7E,KAAMiG,OAAAA,EAAAA,KAAAA,EAAsB,QAAtBA,EAAAA,EAAcsD,IAAdtD,IAAcsD,GAAdtD,KAAAA,MAAAA,KAAAA,EAAAA,CAAwB,CAACpB,EAAAA,GAA6C,GAC5E2E,aAAa,CACf,QAI8BzC,EAAiBxT,GAAG,CAAC,SAACsR,CAAAA,SAASA,EAAK7W,KAAK,GAMvE6b,CALEA,EAAyBvV,OAAOsU,IAAI,CAAC3C,OAAAA,EAAAA,KAAAA,EAAAA,EAAc0D,OAAAA,GAAW,CAAC,GAA1B1D,MAAmC,CAC5E,SAACpB,CAAAA,QACC,CAACoC,EAA0B9U,QAAQ,CAAC0S,IAAS,CAAC+E,EAA2BzX,QAAQ,CAAC0S,MAG3DvR,MAAM,EAAE,CACjCyT,CAAiB9M,IAAI,OAArB8M,EACE,QAAG8C,EAAuBtW,GAAG,CAAC,SAACsR,CAAAA,MAGvBoB,QAHiC,CACvCrW,MAAOuT,EAAmB,CAAC0B,EAAyC,CACpE7W,MAAO6W,EACP7E,KAAMiG,SAAAA,KAAAA,EAAAA,QAAAA,CAAAA,CAAAA,EAAc0D,OAAAA,GAAd1D,KAAAA,MAAAA,KAAAA,EAAAA,CAAuB,CAACpB,EAAAA,GAA6C,GAC3E2E,aAAa,CACf,SAI4B/D,GAC9Bd,GAAyBmC,GAAmBgD,IAAI,CAAC,SAAC/J,CAAAA,CAAGgK,CAAAA,SAAMhK,EAAEnQ,KAAK,CAACoa,aAAa,CAACD,EAAEna,KAAK,QAE3D6V,GAC7Bd,GAAyBoC,GAAkB+C,IAAI,CAAC,SAAC/J,CAAAA,CAAGgK,CAAAA,SAAMhK,EAAEnQ,KAAK,CAACoa,aAAa,CAACD,EAAEna,KAAK,KAOlF,CACLqa,aANmBlU,CAMnBkU,EANmBlU,EAAAA,OAAAA,CAAOA,CAC1B,iBAAM,QAAImR,IAAAA,MAAAA,CAAyB,QAAGC,MACtC,CAACD,GAAyBC,GAAuB,EAKjD+C,QAhJc,CAACrU,GAAYsU,GAAyBC,EAiJpDlD,wBAAAA,GACAC,uBAAAA,EACF,GCzHQ+C,GACNlC,GADMkC,OAAAA,CAASD,GACfjC,GADeiC,YAAAA,CAAc/C,GAC7Bc,GAD6Bd,uBAAAA,CAAyBC,GACtDa,GADsDb,sBAAAA,CAQxDlU,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACR,GAAI,CAACiX,IAAW,QAACvC,GAAAA,KAAAA,EAAAA,GAAkB3C,IAAAA,EAAM,KAMCqF,IAHhCJ,CAHOtC,CAMfC,GALiD,CAC/C5C,IAAAA,CAD2BrK,CACrBA,CAIgC0P,QAAAA,CAApBC,CAAoBD,CAAAA,EAAAA,GAAAA,EAAAA,CAAeA,CAAC1P,GAAAA,GAAhB0P,KAAAA,MAAAA,EAA2B,GAHjErK,KAAMiK,CAAAA,QAAAA,EAAAA,GAAahY,IAAI,CAAC,SAAC4S,CAAAA,SAASA,EAAK7W,KAAK,GAAK2M,MAA3CsP,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoDjK,IAAAA,GAAQ,EACpE,EAGF,CACF,EAAG,CAACiK,GAAcC,GAASvP,SAAQgN,GAAAA,KAAAA,EAAAA,GAAkB3C,IAAI,CAAC,EAE1D,IAAMuF,GAAiBrN,EAAAA,WAAiB,CAAC,eACvCkK,EAAAA,CAAyB,SAAzBA,EAAAA,GAAkB5P,OAAO,GAAzB4P,KAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAA2BoD,aAAa,CAAC,OAAzCpD,KAAAA,IAAAA,GAAAA,EAA+CqD,KAAK,EACtD,EAAG,EAAE,EAECC,GAAoBC,CAAAA,EAAAA,GAAAA,EAAAA,CAAoBA,CAAC,CAC7CC,SAAU1c,MAAM2c,IAAI,CAACzD,CAAAA,QAAAA,GAAAA,GAAkB5P,OAAAA,GAAlB4P,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA2B0D,gBAAgB,CAAC,OAAQ,EAAE,EAC3EC,cAAehD,EACjB,GAEMiD,GAAiB9N,EAAAA,WAAiB,CAAC,SAACjQ,CAAAA,MACpCmK,EAAuBA,EAGzBA,EAAAA,CAHEA,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQnM,WAAAA,GAAW,CAAImM,QAAAA,EAAAA,MAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ6T,UAAAA,GAAY,KACzC7T,OAAOnM,CAARsK,UAAmB,CAAE,iBAAkB,kBAC1CA,KAAI6B,OAAOnM,CAARsK,UAAmB,CAAE,yBAA0BtI,GACjC,QAAjBmK,EAAAA,OAAO6T,UAAAA,GAAP7T,KAAAA,IAAAA,GAAwB,QAAxBA,EAAAA,EAAmBnH,KAAAA,GAAnBmH,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAA2B,iBAE3B8T,QAAQC,IAAI,CAAC,sCAEjB,EAFyD,EAEpD,EAEL,MACE,UAACtO,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAIL,UAAW4O,IAAW,gBAADA,kBAAoC3D,KAAuB7J,IAAAA,UACnF,UAACyN,GAAAA,EAAKA,CAAAA,UACJ,UAACC,GAAAA,UACE,gBAAGC,EAAAA,EAAAA,MAAAA,OACF,iCACE,WAAC1O,MAAAA,CAAIL,UAAU,sCACb,UAACkD,OAAAA,CACClD,UAAW4O,IAAW,gBAADA,WAAuB7D,GAAAA,KAAAA,EAAAA,GAAc/K,SAAS,CAAE,CACnE,CAD0C+K,mBACX,SAAV5J,EACvB,GACA6N,KAAK,OAAEjE,GAAAA,KAAAA,EAAAA,GAAckE,MAAM,CAC3BC,KADOnE,SACK,gBAEXxJ,GAAE,cAEJmM,GACC,UAACrN,MAAAA,CAAIL,UAAU,iDAEf,WAACmP,GAAAA,EAAWA,CAAAA,CACVjV,IAAKqR,GACLvL,UAAW4O,IAAW,gBAADA,iBAA6B/D,GAAAA,KAAAA,EAAAA,GAAe7K,SAAS,CAAE,CAC1E,EADgD6K,kBACjB,SAAV1J,EACvB,GACAkE,QAAS,iBAAM+J,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,8BAC1BC,oBAAqBtB,GACrBiB,MAAO,iBACFnE,GAAAA,KAAAA,EAAAA,GAAeoE,MAAM,CACpB5D,MADDR,GACeA,GAAAA,KAAAA,EAAAA,GAAeyE,WAAW,CAAG,CAA7BzE,KAEpB0E,aAAc,kBAAMjE,IAAe,IACnCkE,aAAc,kBAAMlE,IAAe,cAEnC,UAACpI,OAAAA,CAAKlD,UAAU,mBAAWuB,GAAE,cAC5B4J,UAAAA,KAAAA,EAAAA,GAAkB3C,IAAAA,EACf7B,EAAmB,CADtBwE,GAEsB3C,IAAI,CACtB,CACD,KAAM,IACV,UAACiH,GAAAA,CACCzP,UAAW4O,IAAW,gBAADA,QAA0B,CAC7C,eAAgBG,EAChB,oBAA+B,SAAV5N,EACvB,WAKPuM,GAAU,KACT,UAACgC,GAAAA,EAAYA,CAAAA,CAACC,YAAa,CAAEC,UAAW,MAAOC,UAAW,MAAO,WAC/D,WAACxP,MAAAA,CACCnG,IAAK0Q,GACL5K,UAAU,+DAET0K,GAAwB5T,MAAM,CAC7B,WAACuJ,MAAAA,WACE2K,OAAAA,GAAAA,KAAAA,EAAAA,GAAc8E,YAAd9E,CAAc8E,EACb,UAAC3M,IAAAA,CAAEnD,UAAU,sDACVuB,GAAE,eAEH,KACJ,UAAC6B,KAAAA,CAAGpD,UAAU,kCACX0K,GAAwB3T,GAAG,CAAC,SAACsR,CAAAA,QAC5B,UAAC0H,GAAAA,CAEC3c,MAAOiV,EAAKjV,KAAK,CACjB3C,SAAU4X,EAAK7W,KAAK,CACpBwe,UAAW,CACT3K,QAAS,WACPmJ,GAAenG,EAAK7W,KAAK,QACzB0Z,IAAAA,GAAsB7C,EAAK7W,KAAK,CAClC,EACAye,UAAW/B,GACX/N,EAHE+K,UAGW7C,EAAK2E,WAAW,CAC7B1V,IAAK+Q,EAAK7E,IAAI,GAVX6E,EAAK7W,KAAK,SAgBrB,KACHmZ,GAAuB7T,MAAM,CAC5B,WAACuJ,MAAAA,WACE2K,OAAAA,GAAAA,KAAAA,EAAAA,GAAc8E,YAAd9E,CAAc8E,EACb,UAAC3M,IAAAA,CAAEnD,UAAU,sDACVuB,GAAE,iBAEH,KACJ,UAAC6B,KAAAA,UACEuH,GAAuB5T,GAAG,CAAC,SAACsR,CAAAA,QAC3B,UAAC0H,GAAAA,CAEC3c,MAAOiV,EAAKjV,KAAK,CACjB3C,SAAU4X,EAAK7W,KAAK,CACpBwe,UAAW,CACT3K,QAAS,kBAAMmJ,GAAenG,EAAK7W,KAAK,GACxCye,UAAW/B,GACX/N,YAAakI,EAAK2E,WAAW,CAC7B1V,IAAK+Q,EAAK7E,IAAI,GAPX6E,EAAK7W,KAAK,SAarB,oBAUxB,CAEA,SAASue,GAAS,CAQjB,MAPC3c,EADgB,EAChBA,KAAAA,CACA3C,EAFgB,EAEhBA,QAAAA,CACAuf,EAHgB,EAGhBA,SAAAA,CAMA,MACE,UAAC1M,KAAAA,CAECtD,UAAW4O,IAAW,YAAa,CACjC,GADmBA,WACJzF,CAAAA,EAAAA,GAAAA,CAAAA,CAAKA,CAAC1Y,EACvB,GACA4X,KAAM5X,WAEN,UAACyf,MAAAA,UACC,WAACjQ,EAAAA,EAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAACyD,IAAI,uBAA0BsM,GAAAA,WACjC5c,EAAO,WARP,SAAkB,OAAT3C,GAapB,CAEA,SAASqe,GAAkB,CAAoE,EAE7F,MAFyB,KAAE9Y,IAEXma,IAFWna,EACXoa,CAAAA,EAAAA,GAAAA,EAAAA,CAAQA,GAE1B,CAEA,SAASX,GAAcjf,CAAkC,EACvD,MACE,UAAC6f,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAIC,QAAQ,YAAYC,QAAQ,OAAU/f,GAAAA,UACzC,UAACggB,IAAAA,CAAEC,OAAO,OAAOC,YAAY,IAAIC,KAAK,cAAcC,SAAS,mBAC3D,UAACJ,IAAAA,CAAEK,UAAU,kBAAkBH,YAAY,IAAID,OAAO,wBACpD,UAACK,WAAAA,CAASC,cAAc,QAAQC,OAAO,6BAKjD,iBEhPaC,GAAc,gBACzBlC,EAAAA,EAAAA,MAAAA,CACA/Y,EAAAA,EAAAA,QAAAA,CACAkb,EAAAA,EAAAA,SAAAA,CACAC,EAAAA,EAAAA,YAAAA,CACAC,EAAAA,EAAAA,2BAAAA,CACAC,EAAAA,EAAAA,UAAAA,CACAC,EAAAA,EAAAA,WAAAA,CAEsDjX,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAAxDkX,EAA+ClX,CAAAA,CAAAA,EAAAA,CAA1BmX,EAA0BnX,CAAAA,CAAAA,EAAAA,CACtD5D,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACR,GAAKsY,CAAD,CASG,CACLle,KAVW,IAUF4gB,IAAI,CAACzC,KAAK,CAAC0C,QAAQ,CAAG,SAC/B,IAA4B7gB,EAYQA,EAZ9B8gB,EAAAA,QAAsB9gB,EAAAA,QAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAUyd,gBAAgB,CAEnD,IAA0B8C,MAAAA,CAAvBD,EAAa,YAA2CC,MAAAA,CAAjCA,EAA4B,OAAiC,OAA5BA,EAA4B,kCAE1FO,EAAoBC,OAAO,CAAC,EAHsE,OAGrEC,CAAAA,EACvBA,GACFA,EAAsBC,YAAY,CAAC,KADV,SACyB,OAEtD,GAQA,IAJA,IAAIC,EAAAA,QAAgClhB,EAAAA,QAAAA,GAAAA,KAAAA,MAAAA,KAAAA,EAAAA,EAAUmd,aAAa,CACzD,IAAgC,OAA5BoD,IAEAY,EAAiB,EAAE,CAClBD,GACLC,EAAIvU,IAAI,CAACsU,GACTA,CAFoB,CAEJA,EAAc1P,aAAa,OAE7C2P,GAAAA,EAAKJ,OAAO,CAAC,GAAbI,MAAcC,CAAAA,EACRA,GACFA,EAAiB3P,aADG,EACY,CAAC,cAErC,GACA4P,EAAuBlX,OAAO,CAAG2W,CACnC,KApCoB,UAAdT,GAAuBM,GAAuB,GAClD3gB,SAAS4gB,IAAI,CAACzC,KAAK,CAAC0C,QAAQ,CAAG,OAC3BQ,EAAuBlX,OAAO,EAChCkX,EAAuBlX,OAAO,CAAC4W,OAAO,CAAC,SAACC,CAAAA,EAClCA,GACFA,EAAsBvP,eAAe,CAAC,EADb,YAG7B,EA8BN,EAAG,CAACyM,EAAQmC,EAAWC,EAAcC,EAA4B,EAEjE,IAAMc,EAAyBpU,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,GAErC,MACE,UAACqU,GAAAA,EAASA,CAAAA,CAACC,SAAU,CAACrD,EAAQuC,aAAaA,GAAcA,WACvD,UAACjR,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCL,UAAW4C,IACT,gBADWA,wGAEX,CACE,2EACEmM,GAAwB,SAAdmC,EACZ,2EACEnC,GAAwB,UAAdmC,EACZ,QAAuB,UAAdA,EACT,2BAA4B,CAACnC,CAC/B,GAEFsD,eAAgB,WACI,UAAdnB,GAAuBM,GAAuB,EACpD,EACAc,OAAQ,CAACvD,EACTlM,cAAa,eAAyB,OAAVqO,IACxBG,GAAAA,UAGW,UAAdH,EACCK,GAAwBgB,CAAAA,EAAAA,GAAAA,EAAAA,CAAkBA,IAAMxD,EAC9C,UAAC1O,MAAAA,CAAIL,UAAU,0BAAkBhK,IAC/B,KAEJA,MAKV,EG9Fawc,GAAwB,WACnCpD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAHsB,eAIlC,EAMO,SAASqD,GAA0Brf,CAAa,CAAEsf,CAAsB,EAG7EC,GANOC,MAIkFxf,KAE3E5B,CAF2E4B,CAA3Csf,EAAgB,GAAiB,OAAdA,EAAc,KAAK,IAAW,OAANtf,GAJ9E2V,OAAO,CAAC,SAAU,IAAInP,WAAW,GAO9C,CAEO,SAAS+Y,GAAcnhB,CAAa,MACrCoJ,EAAuBA,EAEzBA,EAAAA,EAFEA,CAAAA,QAAAA,EAAAA,MAAAA,GAAAA,KAAAA,MAAAA,KAAAA,EAAAA,EAAQnM,WAAAA,GAAW,SAAImM,EAAAA,MAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ6T,UAAAA,GAAcjd,IAC/CuH,GADsD,EAClD6B,OAAOnM,CAARsK,UAAmB,CAAE,gBAAiBvH,GACxB,OAAjBoJ,GAAAA,OAAO6T,UAAAA,GAAP7T,KAAAA,IAAAA,GAAAA,OAAAA,GAAAA,EAAmBnH,KAAAA,GAAnBmH,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAA2B,gBAE/B,CAEA,IAAMiY,GAAc,SAACC,CAAAA,CAAqBzK,CAAAA,eAAiByK,EAAAA,KAAAA,EAAAA,EAAa/J,OAAO,CAAC,KAArB+J,MAAiCzK,ICjC/E0K,GAAuD,gBAAGhX,EAAAA,EAAAA,KAAAA,CAAOoF,EAAAA,EAAAA,KAAAA,CACtE,EAAQG,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAArBC,CAAAA,CACFyR,EACW,SAATxK,IAAI,CACNjH,EAAE,oBACFxF,SAAMyM,IAAI,CACV,GAA6BzM,MAAAA,CAA1BwF,EAAE,oBAAoB,MAAe,OAAXxF,EAAMc,IAAI,EACvCd,SAAMyM,IAAI,CACV,GAAyB,OAAtBjH,EAAE,oBAAoB,SACzBxF,EAAMc,IAAI,CAEhB,MACE,UAAC+G,MAAAA,CACCE,IACY,SAAV3C,EACI,8BAAyC,OAAXpF,EAAMyM,IAAI,CAAC,iBACzC,8BAAyC,OAAXzM,EAAMyM,IAAI,CAAC,QAG/C3E,IAAKmP,EACLhT,UAAU,eAGhB,EAEaiT,GAET,gBAAGlX,EAAAA,EAAAA,KAAAA,CAAOiE,EAAAA,EAAAA,SAAAA,CAAWmB,EAAAA,EAAAA,KAAAA,CAAO+R,EAAAA,EAAAA,OAAAA,CACxB,EAAQ5R,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAArBC,CAAAA,CAIR,MACE,UAAC4R,EAHuB,KAAO,OAG9BA,CAAQxP,aAAYuP,GAAoBE,OAAVF,UAAgClT,WAC7D,WAACuD,IAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCV,cAAY,kBACZW,KAAMzH,EAAMzE,GAAG,CACf0I,UAAU,8EACL,CAAC,CAACjE,EAAMsJ,OAAO,EAAI,CAAEA,QAAStJ,EAAMsJ,OAAO,EAC3C,CAAC,CAACtJ,EAAM0H,MAAM,EAAI,CAAEA,OAAQ1H,EAAM0H,MAAM,EACxC1H,OAAAA,EAAAA,KAAAA,EAAAA,EAAO0H,MAAAA,CAAP1H,GAAkB,UAAY,CAAE2H,IAAK,YAAa,cAEvD,UAACqP,GAAAA,CAAK5R,MAAOA,EAAOpF,MAAOA,IAC3B,UAACmH,OAAAA,CAAKlD,UAAU,mBAAWjE,OAAAA,EAAAA,KAAAA,EAAAA,EAAO0H,MAAM,CAAb1H,GAAkB,SAAW,KAAiB,OAAZwF,EAAE,WAAc,UAIrF,EAAE,YC3BK,SAAS8R,GAAQ,OAAErd,EAAF,EAAEA,QAAAA,CAAUmL,EAAZ,EAAYA,KAAAA,CAAAA,EAAZ,EAAmB4N,MAAAA,CAAAA,EAAAA,KAAAA,IAAAA,GAAS,EAAUuE,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAtC,GAAEtd,WAAUmL,QAAO4N,WACnC/M,EAASb,WAEToS,EAAc7S,EAAAA,YAAkB,CAAC1K,EAAU,CAC/CgK,UAAW4C,IAAG5M,EAASxF,KAAK,CAACwP,QAAhB4C,CAAyB,CAAE,sBAC1C,GAEA,MACE,UAACU,KAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACKgQ,GAAAA,CACJtT,UAAW4C,IAAG,gBAADA,mCAAqD,CAChE,gBAAiB,CAACzB,EAClB,qBAAsBa,EACtB,uBAAwB+M,GAAU,CAAC5N,EACnC,4BAA6B4N,GAAU/M,CACzC,YAECuR,IAGP,CAEO,SAASC,GAAc,CAc7B,MAbCpgB,EAD4B,EAC5BA,KAAAA,CACAqgB,EAF4B,EAE5BA,IAAAA,CACAC,EAH4B,EAG5BA,SAAAA,CACAC,EAJ4B,EAI5BA,mBAAAA,CACAxS,EAL4B,EAK5BA,KAAAA,CACAyS,EAN4B,EAM5BA,OAAAA,CASM5R,EAAmB,SAAVb,EAEf,MACE,iCACE,UAAC+B,OAAAA,CAAKlD,UAAW4C,IAAG,gBAA6B,SAAZgR,EAAqB,gBAAkB,eACzExgB,IAGFqgB,EACC,WAACpT,MAAAA,CAAIL,UAAW4C,IAAG,gBAADA,EAChB,UAACiR,GAAAA,EAAIA,CAAAA,CACHhX,KAAM4W,EACNzT,UAAW4C,IACTZ,EAAS,cADEY,EACgB,WAC3B,gDAEFkR,QAAQ,SAEV,UAACD,GAAAA,EAAIA,CAAAA,CACHhX,KAAM4W,EACNM,QAAQ,QACR/T,UAAW4C,IACTZ,EAAS,cADEY,SACuB,kBAClC,qDAEFkR,QAAQ,YAGV,KAEHJ,EACC,WAACrT,MAAAA,WACC,UAACwT,GAAAA,EAAIA,CAAAA,CACHhX,KAAM6W,EACN1T,UAAW4C,IACT+Q,EAAsB,aAAe,CAD1B/Q,IAEX,gDAEFkR,QAAQ,SAEV,UAACD,GAAAA,EAAIA,CAAAA,CACHhX,KAAM6W,EACN1T,UAAW4C,IACT+Q,EAAsB,aAAe,CAD1B/Q,IAEX,qDAEFkR,QAAQ,YAGV,OAGV,CAaO,IAAME,GAAkD,gBAC7D7S,EAAAA,EAAAA,KAAAA,CACA8S,EAAAA,EAAAA,SAAAA,CACAL,EAAAA,EAAAA,OAAAA,CACAxgB,EAAAA,EAAAA,KAAAA,CACA8gB,EAAAA,EAAAA,MAAAA,CACAnQ,EAAAA,EAAAA,4BAAAA,CACG3C,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CANHD,QACA8S,YACAL,UACAxgB,QACA8gB,SACAnQ,iCAGA,MACE,UAACsP,GAAAA,CAAQlS,MAAOA,EAAO0B,cAAY,qBACjC,UAAC5C,EAAAA,EAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACHgD,WAAW,GACP7B,GAAAA,CACJ8C,uBAAqB,OAAEH,EAAAA,KAAAA,EAAAA,EAA8BI,IAAI,CACzDC,wBAAsB,CADCL,MACCA,EAAAA,KAAAA,EAAAA,EAA8BvS,KAAK,CAC3DwO,UAAW4C,IAAG,UADUmB,MACXnB,sBAAwCsR,EAAS,MAAQ,MAAO,CAC3E,gBAA6B,eAAZN,CACnB,YAEA,UAACJ,GAAAA,CAAcI,QAASA,EAASzS,MAAOA,EAAO/N,MAAOA,EAAOqgB,KAAMQ,QAI3E,EAAE,GAiBoF,gBACpF9S,EAAAA,EAAAA,KAAAA,CACAyS,EAAAA,EAAAA,OAAAA,CACAO,EAAAA,EAAAA,WAAAA,CACAC,EAAAA,EAAAA,UAAAA,CACA/O,EAAAA,EAAAA,OAAAA,CACAvU,EAAAA,EAAAA,KAAAA,CACAujB,EAAAA,EAAAA,cAAAA,CACAre,EAAAA,EAAAA,QAAAA,CAEoC0K,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,EAAU,MAArD4T,EAA6B5T,CAAAA,CAAAA,EAAAA,CAAjB6T,EAAiB7T,CAAAA,CAAAA,EAAAA,CAM9B8T,EAAQ,kBAAMD,GAAc,IAE5BE,EAAc,SAACC,CAAAA,EACnBL,SAAAA,EAAiBK,GACZA,EAASpV,KAAK,EACjBkV,GAEJ,CAJEH,CAMIM,EAAgBjU,EAAAA,QAAc,CAACkU,OAAO,CAAC5e,GAEtCuL,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,eAAfA,CAAAA,EAAAA,CAEZ,MACE,iCACE,UAAC+R,GAAAA,CAAQlS,MAAOA,EAAO0B,cAAY,sBACjC,UAACgS,SAAAA,CACChS,cAAY,aACZtP,KAAK,SACLyM,UAAU,gEACVqF,QAzBK,CAyBIyP,UAxBftC,WACAnN,GAAAA,IACAkP,GAAc,EAChB,QAFElP,GAyBM,UAACmO,GAAAA,CACCpgB,YAAO+gB,EAAAA,EAAe5S,EAAE,UACxBkS,KAAMW,EACNjT,CAFOgT,KAEAhT,EACPyS,QAASA,QAIf,UAACmB,GAAAA,EAAMA,CAAAA,CAAChG,OAAQuF,EAAYU,UAAWR,EAAOS,KAAK,KAAKnkB,MAAOA,WAC5D4P,EAAAA,QAAc,CAAC3J,GAAG,CAAC4d,EAAe,SAACO,CAAAA,SAClC,EAAIxU,cAAoB,CAACwU,IAAUA,EAAM3hB,IAAI,GAAK4hB,GAAAA,EAAWA,CACpDzU,CADsD,CACtDA,YAAkB,CACvBwU,EACA,CACEb,eAAgBI,EAChBtP,QAASqP,CACX,GAGGU,CACT,OAIR,EAAE,GAcoF,gBACpFlf,EAAAA,EAAAA,QAAAA,CACA5C,EAAAA,EAAAA,KAAAA,CACAqgB,EAAAA,EAAAA,IAAAA,CACA2B,EAAAA,EAAAA,YAAAA,CACA/P,EAAAA,EAAAA,OAAAA,CACAlE,EAAAA,EAAAA,KAAAA,CACAoK,EAAAA,EAAAA,cAAAA,CACAqI,EAAAA,EAAAA,OAAAA,CACAF,EAAAA,EAAAA,SAAAA,CACA3P,EAAAA,EAAAA,4BAAAA,CAEM,EAAaqM,CAAAA,EAAAA,GAAAA,EAAAA,CAAQA,GAAnBrB,MAAAA,CAER,MACE,iCACE,UAACsE,GAAAA,CAAQlS,MAAOA,EAAO4N,OAAQA,EAAQlM,cAAY,sBACjD,UAACsM,GAAAA,EAAWA,CAAAA,CACVjV,IAAKqR,EACLrH,uBAAqB,OAAEH,EAAAA,KAAAA,EAAAA,EAA8BI,IAAI,CACzDC,wBAAsB,CADCL,MACCA,EAAAA,KAAAA,EAAAA,EAA8BvS,KAAK,CAC3D6T,QAAS,WACPmN,KAFsBzO,MAGtBsB,GAAAA,GACF,EACArF,EAHuBwS,QAGZ5P,EAFTyC,EAEY,gBAADzC,0BAA4C,CACvD,gBAA6B,eAAZgR,CACnB,YAEA,UAACJ,GAAAA,CACCrS,MAAOA,EACP/N,MAAOA,EACPwgB,QAASA,EACTF,UAAWA,EACXD,KAAMA,EACNE,oBAAqB,CAAC5E,GAAUqG,QAItC,UAAC1F,GAAAA,EAAYA,CAAAA,CACX1P,UAAU,0DACV2P,YAAa,CAAE0F,KAAM,CAAE,WAEtBrf,MAIT,EAAE,SCvRcsf,GAAwB,CAMvC,MALCC,EADsC,EACtCA,OAAAA,CACAniB,EAFsC,EAEtCA,KAAAA,CAKmCiD,EAATA,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAA3B8H,MAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAS,OAEjB,MACE,UAACkC,MAAAA,CAAIL,UAAU,iCACb,UAACwV,GAAAA,UACED,EAAQxe,GAAG,CACV,gBAAG3D,EAAAA,EAAAA,KAAAA,CAAqBuM,EAAAA,EAAAA,IAAAA,CAAQoE,4BAAAA,CAAyCsB,EAAAA,EAAAA,OAAAA,CAAR1F,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAzCA,IAAAA,CAAAA,CAAQoE,uCAC9B,UAAC0R,GAAAA,UACC,UAACxV,EAAAA,EAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACCN,GAAAA,CACJrI,IAAKub,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,OAAClT,EAAAA,KAAAA,EAAAA,EAAMrI,GAAG,CAAE6G,EAAXwB,CACjBuE,uBAAqB,CAAEH,QAAAA,KAAAA,EAAAA,EAA8BI,IAAI,CACzDC,mBADuBL,KACD,OAAEA,EAAAA,KAAAA,EAAAA,EAA8BvS,KAAK,CAC3DyR,WAAW,EACXjD,UAAU,CAFc+D,sBAGxBE,gBAAgB,yMAChBoB,QAAS,SAAC3W,CAAAA,MAGRiR,EAFA8S,GAA0BiD,EAActiB,SACxCiS,GAAAA,QADyBoN,EAEzB9S,GAAAA,IADA0F,IACA1F,EAAAA,EAAM0F,EAAN1F,KAAM0F,GAAN1F,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAAgBjR,EAClB,WAECgnB,MAfcA,QAuB/B,CAYe,SAASC,GAAkB,CAMjB,MAyDdC,EAYAA,EAYAA,EAYAA,EAYAA,EAYAA,EA1HTjnB,EADwC,EACxCA,IAAAA,CACAinB,EAFwC,EAExCA,SAAAA,CACAC,EAHwC,EAGxCA,iCAAAA,CACAC,EAJwC,EAIxCA,gCAAAA,CACAC,EALwC,EAKxCA,SAAAA,CAEmC1f,EAATA,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAA3B8H,MAAAA,CACDoD,CADCpD,CACImD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,gBAAfA,CAAAA,EAAAA,CAEN0U,EAA6BC,CAAAA,EAAAA,EAAAA,EAAAA,CAAwBA,OAACtnB,EAAAA,KAAAA,EAAAA,EAAMunB,MAANvnB,MAAkB,CAAE,CAAEwP,OAH1EA,CAG0EA,IAH1EA,IAAAA,EAAS,MAGwE,GAEzF,MACE,WAACkC,MAAAA,CAAIL,UAAU,gCACb,WAACK,MAAAA,CAAIL,UAAU,8BACb,UAACK,MAAAA,CAAIL,UAAU,wFACb,UAAC6T,GAAAA,EAAIA,CAAAA,CAAChX,KAAK,OAAOoY,KAAK,UAEzB,WAAC5U,MAAAA,CAAIL,UAAU,iBACb,UAACmD,IAAAA,CAAEnD,UAAU,uDACVuB,EAAE,YAAa,CAAE4U,SAAUxnB,EAAKkO,IAAI,KAEvC,WAACsG,IAAAA,CAAEnD,UAAU,4BACX,UAACkD,OAAAA,CAAKlD,UAAU,4DACbrR,EAAKynB,UAAU,GACV,IACP7U,EAAE,aAEL,UAAC4B,IAAAA,CAAEnD,UAAU,6CACVuB,EAAE,oBAAqB,CAAE8U,kBAAmBL,CAA2B,KAEzErnB,EAAKqI,aAAa,CACjB,UAACmM,IAAAA,CAAEnD,UAAU,6CACVuB,EAAE,qBAAsB,CAAEvK,cAAerI,EAAKqI,aAAa,KAE5D,WAGR,UAACqJ,MAAAA,CAAIL,UAAU,gCACb,WAACwV,GAAAA,WACEI,OAAAA,EAAAA,KAAAA,EAAAA,EAAWU,WAAXV,EACC,UAACW,GAAAA,CACCjf,GAAG,OAAEse,EAAAA,KAAAA,EAAAA,EAAWU,WAAXV,CAAuBte,GAAG,CAC/B+N,QAAS,WACPsN,GAAc,UAADA,uBACf,EACAxS,YAAa0V,WAEZtU,EAAE,sBAEH,KACHqU,OAAAA,EAAAA,KAAAA,EAAAA,EAAWY,WAAXZ,OAAWY,GAAsB,CAACV,EACjC,UAACS,GAAAA,CACCjf,GAAG,OAAEse,EAAAA,KAAAA,EAAAA,EAAWY,WAAXZ,OAA6B,CAACte,GAAG,CACtC+N,QAAS,WACPsN,GAAc,UAADA,2BACf,EACAxS,YAAa0V,WAEZtU,EAAE,cAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAA2B,QAA3BA,EAAAA,EAAWa,CAAXb,eAAWa,GAAXb,KAAAA,MAAAA,KAAAA,EAAAA,EAA6Bte,GAAAA,GAAO,CAACwe,EACpC,UAACS,GAAAA,CACCjf,IAAKse,EAAUa,gBAAgB,CAACnf,GAAG,CACnC+N,QAAS,WACPsN,GAAc,UAADA,yBACf,EACAxS,YAAa0V,WAEZtU,EAAE,iBAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWc,CAAXd,gBAAWc,GAAXd,KAAAA,MAAAA,KAAAA,EAAAA,EAA8Bte,GAAAA,GAAO,CAACwe,EACrC,UAACS,GAAAA,CACCjf,IAAKse,EAAUc,iBAAiB,CAACpf,GAAG,CACpC+N,QAAS,WACPsN,GAAc,UAADA,0BACf,EACAxS,YAAa0V,WAEZtU,EAAE,aAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWe,CAAXf,WAAuB,GAAvBA,KAAAA,MAAAA,KAAAA,EAAAA,EAAyBte,GAAAA,EACxB,UAACif,GAAAA,CACCjf,IAAKse,EAAUe,YAAY,CAACrf,GAAG,CAC/B+N,QAAS,WACPsN,GAAc,UAADA,6BACf,EACAxS,YAAa0V,WAEZtU,EAAE,4BAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWgB,CAAXhB,mBAAWgB,GAAXhB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiCte,GAAG,EACnC,UAACif,GAAAA,CACCjf,IAAKse,EAAUgB,oBAAoB,CAACtf,GAAG,CACvC+N,QAAS,WACPsN,GAAc,UAADA,6BACf,EACAxS,YAAa0V,WAEZtU,EAAE,4BAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWiB,CAAXjB,SAAWiB,GAAXjB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuBte,GAAAA,EACtB,UAACif,GAAAA,CACCjf,IAAKse,EAAUiB,UAAU,CAACvf,GAAG,CAC7B+N,QAAS,WACPsN,GAAc,UAADA,wBACf,EACAxS,YAAa0V,WAEZtU,EAAE,uBAEH,KAEHqU,CAAAA,QAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAWkB,aAAAA,GAAXlB,KAAAA,MAAAA,KAAAA,EAAAA,EAA0Bte,GAAAA,EACzB,UAACif,GAAAA,CACCjf,IAAKse,EAAUkB,aAAa,CAACxf,GAAG,CAChC+N,QAAS,WACPsN,GAAc,UAADA,8BACf,EACAxS,YAAa0V,WAEZtU,EAAE,6BAEH,KACJ,UAACkU,GAAAA,UACC,UAACZ,SAAAA,CACC7U,UAAU,kOACVqF,OAAO,SAAE,kEAEP,OADAsN,GAAc,UAADA,eACb,GAAMoD,mBAAN,eACF,GACAxiB,KAAK,kBAEJgO,EAAE,sBAOjB,CAEA,SAASiU,GAAS,OAAExf,EAAF,EAAEA,QAAAA,CAAa+gB,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAf,GAAE/gB,aAClB,MACE,UAACoN,KAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAO2T,GAAAA,CAAW/W,UAAW4C,IAAG,gBAADA,EAAoBmU,EAAU/W,SAAS,WACpEhK,IAGP,CAEA,SAASyf,GAAa,OAAEzf,EAAF,EAAEA,QAAAA,CAAasd,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAf,GAAEtd,aACtB,MACE,UAACsN,KAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAOgQ,GAAAA,CAAezQ,cAAY,iBAAiB7C,UAAU,gBAC5D,UAACkD,OAAAA,CAAKlD,UAAU,oOACbhK,MAIT,CAEA,SAASugB,GAAa,CAUrB,MATCjf,EADoB,EACpBA,GAAAA,CACA+N,EAFoB,EAEpBA,OAAAA,CACArP,EAHoB,EAGpBA,QAAAA,CACAmK,EAJoB,EAIpBA,WAAAA,CAOA,MACE,UAACsV,GAAAA,UACC,UAACxV,EAAAA,EAAIA,CAAAA,CACH3I,IAAKA,EACL2L,WAAW,EACXjD,UAAU,yCACViE,gBAAgB,0KAChBoB,QAASA,EACTlF,YAAaA,WAEZnK,KAIT,CC/HA,SAASghB,GAAQ,CAaF,MAIDpB,EAhBZqB,EADe,EACfA,YAAAA,CACAC,EAFe,EAEfA,eAAAA,CACAnB,EAHe,EAGfA,SAAAA,CACApnB,EAJe,EAIfA,IAAAA,CACAwoB,EALe,EAKfA,uBAAAA,CACAvB,EANe,EAMfA,SAAAA,CACAzU,EAPe,EAOfA,KAAAA,CACA2U,EARe,EAQfA,gCAAAA,CACAsB,EATe,EASfA,sBAAAA,CACAC,EAVe,EAUfA,2BAAAA,CACAxB,EAXe,EAWfA,iCAAAA,CACAyB,EAZe,EAYfA,eAAAA,CAEO/V,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,CAAC,aAAc,YAAY,IAA1CA,CAAAA,EAAAA,CAENxH,EAA2D,CAC/Dyd,SAAU3B,OAAAA,EAAAA,KAAAA,EAAqB,QAArBA,EAAAA,EAAW4B,CAAX5B,SAAW4B,GAAX5B,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuBte,GAAAA,GAAO,GACxCxG,MAAOyQ,EAAE,oBACT8S,eAAgB6C,CAClB,EAEMO,EAAoB3Z,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAoB,MAE9CkE,EAASb,WAEf,MACE,UAACuW,MAAAA,CAAI1X,UAAU,uCAAuC2D,aAAYpC,EAAE,yBAClE,WAAC6B,KAAAA,CAAGpD,UAAU,iBACXmX,EACC,UAAC7T,KAAAA,CAAGtD,UAAU,4CACZ,UAACqJ,GAAgBA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAClI,IAADkI,EAAQlI,GAAWgW,MAEpC,KACHvB,CAAAA,QAAAA,KAAAA,EAAAA,EAAW+B,KAAX/B,OAAW+B,GAAgB,CAACP,EAC3B,UAACpD,GAAeA,CACd3O,QAAS,GADK2O,QAEZxB,KACApD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,MADUoD,aAErBG,GAAc,UAADA,IACf,EACArb,GAAG,CAAEse,QAAAA,KAAAA,EAAAA,EAAW+B,KAAX/B,OAAuB,CAACte,GAAG,CAChC6I,YAAa0V,EACb+B,mBAAmB,EACnBzW,MAAOA,EACPyS,QAAQ,OACRM,MAAM,IACND,UAAU,WACV7gB,MAAOmO,EAAE,cAET,KACH5S,EACC,UAACkgB,GAAAA,EAAKA,CAAAA,UACJ,UAACgJ,GAAgBA,CACfjE,QAAQ,IADOiE,GAEf1W,MAAOA,EACPoK,eAAgBkM,EAChBpS,QAAS,WACPsN,GAAc,UAADA,OACbvD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,qBACb,EACAhc,MAAOmO,EAAE,YAAa,CAAE4U,SAAUxnB,EAAKkO,IAAI,GAC3C4W,KAAK,uBAEL,UAACkC,GAAiBA,CAChBhnB,KAAMA,EACNinB,MAFgBD,IAELC,EACXC,kCAAmCA,EACnCC,iCAAkCA,EAClCC,UAAWA,QAIf,CAACH,OAAAA,EAAAA,KAAAA,EAAAA,EAAW4B,UAAAA,CAAX5B,SAAyBA,EAAAA,KAAAA,EAAAA,EAAWkC,UAAAA,CAAXlC,EAAyB0B,CAAAA,CAAc,EACnE,CAACD,EACD,iCACGzB,OAAAA,EAAAA,KAAAA,EAAAA,EAAWkC,UAAAA,CAAXlC,EAAyB0B,EACxBA,EACE,UAACA,EAAAA,CACCS,kBAAmBN,EACnBzX,UAAU,8BAETuB,EAAE,YAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,EAAWkC,UAAAA,CAAXlC,CACF,UAAC5B,GAAeA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdJ,QAAQ,QACJgC,EAAUkC,UAAU,GACxB7U,WAAW,EACX2U,mBAAmB,EACnBxkB,MAAOmO,EAAE,UACTJ,MAAOA,EACPkE,QAAS,WACPmN,KACApD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,MADUoD,YAErBG,GAAc,UAADA,OACf,KAEA,KACF,KAEFiD,CAAAA,OAAAA,EAAAA,KAAAA,EAAAA,EAAWkC,UAAAA,CAAXlC,SAAyBA,EAAAA,KAAAA,EAAAA,EAAWoC,WAAXpC,IAAWoC,CAAe,CAAD,SAAMpC,EAAAA,KAAAA,EAAAA,EAAW4B,UAAAA,CAAX5B,CACxD,UAACvV,MAAAA,CACC6O,eAAa,EACblP,UAAU,kFAEV,UAACK,MAAAA,CAAIL,UAAWgC,EAAS,wBAA0B,uBAEnD,KAEH4T,OAAAA,EAAAA,KAAAA,EAAAA,EAAW4B,UAAAA,CAAX5B,CACC,UAACqC,GAAgBA,CACfrE,QAAQ,IADOqE,GAEf9W,MAAOA,EACPkT,eAAgBva,EAAeua,cAAc,CAC7CvjB,MAAOgJ,EAAehJ,KAAK,CAC3BuU,QAAS,WACPsN,GAAc,UAADA,QACbvD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,oBACb,EACAgF,WAAW,cACXD,YAAa5S,EAAE,6BAEf,UAAC4T,GAAAA,EAAWA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAC+C,WAAS,eAAkBpe,EAAoBmd,MAE5D,QAEJ,SAIZ,CAMA,SAASkB,GAAQ,CAAqC,MAAnCC,EAAF,EAAEA,YAAAA,CAAcjX,EAAhB,EAAgBA,KAAAA,CACI9K,EAATA,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAA3B8H,MAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAS,OAEjB,MACE,UAACkC,MAAAA,CAAIL,UAAU,4CACb,UAACK,MAAAA,CAAIL,UAAU,wCACb,UAACoD,KAAAA,CAAGpD,UAAU,wDACXoY,EAAarhB,GAAG,CAAC,gBAAG3D,EAAAA,EAAAA,KAAAA,CAAOmiB,EAAAA,EAAAA,OAAAA,CAAS5V,EAAAA,EAAAA,IAAAA,CAAM0F,EAAAA,EAAAA,OAAAA,OACzC,EAAKkQ,QAAAA,KAAAA,EAAAA,EAASze,GAATye,GAASze,UAAU6I,EAAAA,KAAAA,EAAAA,EAAMrI,GAAAA,EAE1B,CAFoBqI,EAEpB,iBAACqU,GAAeA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACVrU,GAAAA,CACJrI,IAAKub,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,CAAClT,QAAAA,KAAAA,EAAAA,EAAMrI,GAAG,CAAE6G,GAC5ByV,QAAQ,aACRxgB,MAAOA,EACP8gB,MAAM,IACNziB,IAAK2B,EACL+N,MAAOA,EACPkE,QAAS,SAAC3W,CAAAA,MAIRiR,EAHA6S,KACAC,GAA0Brf,SAC1BiS,GAAAA,CAFqBmN,SACIC,GAEZ,IADbpN,IACA1F,EAAAA,EAAM0F,EAAN1F,KAAM0F,GAAN1F,KAAAA,OAAAA,EAAAA,IAAAA,CAAAA,EAAgBjR,EAClB,MAIF6mB,QAAAA,KAAAA,EAAAA,EAASze,GAATye,GAAe,EAAE,CAEjB,SAAC1G,GAAAA,EAAKA,CAAAA,UACJ,UAACgJ,GAAgBA,CACfjE,QAAQ,IADOiE,SAEfzkB,MAAOA,EACPsgB,UAAU,qBACV0B,YAAY,IACZjU,MAAOA,EACPkE,QAAS,WACPoN,GAA0Brf,EAC5B,EACA2Q,kBAF2B0O,UAEC,OAAE9S,EAAAA,KAAAA,EAAAA,EAAMoE,MAANpE,sBAAkC,UAEhE,UAAC2V,GAAuBA,CAACC,QAASA,EAASniB,MAAOA,GAA1BkiB,IAZhBliB,GAiBT,IACT,QAKV,CAEA,OA1SO,SAASilB,CA0SDA,MAzSbxX,EADuB,EACvBA,OAAAA,CAAAA,EADuB,EAEvByX,YAAAA,CACAxC,CADAwC,CAFuB,EAGvBxC,gCAAAA,CACAsB,EAJuB,EAIvBA,sBAAAA,CACAC,EALuB,EAKvBA,2BAAAA,CACAxB,EANuB,EAMvBA,iCAAAA,CACA9Z,EAPuB,EAOvBA,KAAAA,CACAqc,EARuB,EAQvBA,YAAAA,CACAzpB,EATuB,EASvBA,IAAAA,CACAwoB,EAVuB,EAUvBA,uBAAAA,CACAF,EAXuB,EAWvBA,YAAAA,CACAC,EAZuB,EAYvBA,eAAAA,CACAtB,EAbuB,EAavBA,SAAAA,CACAG,EAduB,EAcvBA,SAAAA,CACA7C,EAfuB,EAevBA,OAAAA,CACA/R,EAhBuB,EAgBvBA,KAAAA,CACAmW,EAjBuB,EAiBvBA,eAAAA,CAgBMtV,EAAmB,SAAVb,EASf,MACE,WAACd,MAAAA,CAAIL,UAAU,2BACb,UAACK,MAAAA,CACCL,UAAW4C,IAAG,CACZ,eADWA,GACQ/B,EACnBiC,UAAW,CAACjC,CACd,YAEA,WAACR,MAAAA,CAAIL,UAAU,oCACZsY,KAjDTA,IAAAA,GAAe,EAiDS,KACd,UAACjY,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAIL,UAAU,oCAlBCkT,CAkBsCqF,CAjB5D,CACEC,KAAM,UACN,aAAc,EACd,aAActF,CAChB,EACA,CAAC,GAY2DqF,UACpD,UAACtY,EAAAA,EAAIA,CAAAA,CACH3I,IAAKyE,EAAMzE,GAAG,CACdmM,OAAQ1H,EAAM0H,MAAM,CACpB4B,QAASmN,GAETvO,gBAAgB,EAFcuO,gEAG9BoF,mBAAmB,WAEnB,UAAC7E,GAAIA,CAAAA,MAAQ5R,EAAOpF,MAAOA,SAIjC,UAACsE,MAAAA,CAAIL,UAAU,gCACb,UAACgX,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EA/CU,CACnBroB,KAAAA,EACAinB,UAAAA,EACAsB,gBAAAA,EACAnB,UAAAA,EACAkB,aAAAA,EACAE,wBAAAA,EACAhW,MAAAA,EACA2U,iCAAAA,EACAsB,uBAAAA,EACAC,4BAAAA,EACAxB,kCAAAA,EACAyB,gBAAAA,CACF,WAsCI,UAACjX,MAAAA,CACCL,UAAW4C,IAAG,CACZ,eADWA,QACa,CAACZ,EACzB,4BAA6BA,CAC/B,YAEA,UAAC3B,MAAAA,CACCL,UAAW4C,IAAG,CACZ,eADWA,GACQ/B,EACnBiC,UAAW,CAACjC,CACd,YAEA,UAACR,MAAAA,CAAIL,UAAU,qBAAqB6C,cAAY,kCAC7CuV,OAAAA,EAAAA,KAAAA,EAAAA,EAActhB,MAAM,EAAG,MAAvBshB,EAAuB,EAACD,GAAAA,CAAQhX,MAAOA,EAAOiX,aAAcA,IAAmB,aAM5F,ECnGO,IAAMK,GAAa,gBA6EfC,EA7EkBC,EAAAA,EAAAA,SAAAA,CAAW5J,EAAAA,EAAAA,MAAAA,CAAQ5J,EAAAA,EAAAA,OAAAA,CACd9K,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,GAAAA,GAAjCue,EAAyBve,CAAAA,CAAAA,EAAAA,CAAfwe,EAAexe,CAAAA,CAAAA,EAAAA,CACUA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,GAAAA,GAA3Cye,EAAmCze,CAAAA,CAAAA,EAAAA,CAApB0e,EAAoB1e,CAAAA,CAAAA,EAAAA,CACFA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,GAAAA,GAAzCqe,EAAiCre,CAAAA,CAAAA,EAAAA,CAAnB2e,EAAmB3e,CAAAA,CAAAA,EAAAA,CACUA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,GAAAA,GAAnD4e,EAA2C5e,CAAAA,CAAAA,EAAAA,CAAxB6e,EAAwB7e,CAAAA,CAAAA,EAAAA,CAC5C8e,EAAgBrb,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAoB,MACVzD,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAAxC+e,EAA+B/e,CAAAA,CAAAA,EAAAA,CAAlBgf,EAAkBhf,CAAAA,CAAAA,EAAAA,CAChCif,EAAqBxb,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAoB,MAC/C,EAAQwD,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAArBC,CAAAA,CAC2BlL,EAATA,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAA3B8H,MAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAS,OAEjB1H,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACHsY,GAAQiK,OAAgB5F,EAC/B,EAAG,CAACrE,EAAO,EAUX,IAAMwK,EAAc,WAClBC,WAAW,eACTL,QAAAA,GAAAA,QAAAA,EAAAA,EAAene,OAAAA,GAAfme,CAAAA,IAAAA,IAAAA,GAAAA,EAAwBlL,KAAK,EAC/B,EAAG,GACL,EAEMwL,EAAe,SAACC,CAAAA,CAAuBC,CAAAA,EAC3CN,GAAe,GACfR,EAAYa,GACZX,EAAiBY,EACnB,EAEA,MACE,WAACtZ,MAAAA,CACCL,UAAWoZ,EAAc,4BAA8B,iBACvD/G,eAAgB,WACV+G,IACFC,GAAe,GACfL,EAAgBJ,CAFD,EAGfM,EAAqBJ,GACrBS,IAEJ,YAEA,UAAClZ,MAAAA,CAAIL,UAAU,6GACb,WAAC6U,SAAAA,CAAOxP,QAASF,EAAS5R,KAAK,SAASyM,UAAU,iBAChD,UAAC6T,GAAAA,EAAIA,CAAAA,CAAChX,KAAK,QAAQmD,UAAU,WAC7B,WAACkD,OAAAA,CAAKlD,UAAU,4EACbuB,EAAE,SACH,UAAC2B,OAAAA,CAAKlD,UAAU,mBAAWuB,EAAE,kBAIlCmX,EACC,WAAC7D,SAAAA,CACC3a,IAAKif,EACL9T,QA5CO,CA4CEuU,UA3CfP,GAAe,GACfR,OAAYzF,GACZoG,WAAW,eACTF,QAAAA,GAA2B,QAA3BA,EAAAA,EAAoBte,OAAAA,GAApBse,KAAAA,CAAAA,GAAAA,GAAAA,EAA6BrL,KAAK,EACpC,EAAG,IACL,EAuCQjO,UAAW4C,IACT,gBADWA,sFAEX,2EACA,+BACA,uBACA,oEAEFiX,gBAAc,OACdtmB,KAAK,mBAEL,UAACsgB,GAAAA,EAAIA,CAAAA,CAAChX,KAAK,wBAAwBmD,UAAU,iCAC7C,UAACkD,OAAAA,UAAMwV,EAAatlB,KAAK,MAEzB,KAEHslB,EACC,UAACtV,KAAAA,UACsB,QAApBsV,EAAAA,EAAanD,OAAO,GAApBmD,KAAAA,MAAAA,KAAAA,EAAAA,EAAsB3hB,GAAG,CAAC,SAAC2iB,CAAAA,MAC1BA,EAmB6BA,EACCA,QApB9BA,CAAAA,QAAAA,EAAAA,EAAS/Z,IAAAA,GAAT+Z,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAepiB,GAAG,EAChB,UAACgM,KAAAA,UACC,UAACrD,EAAAA,EAAIA,CAAAA,CACHgE,gBAAgB,6GAChBhB,UAAW,GACXjD,UAAW4C,IACT,gBADWA,qCAEX,+DACA,wEACA,6BACA,wDAEFtL,IAAKub,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,CAAC6G,EAAS/Z,IAAI,CAACrI,GAAG,CAAE6G,GACpCgC,YAAauZ,EAAS/Z,IAAI,CAACQ,WAAW,CACtCkF,QAAS,SAAC3W,CAAAA,MAERgrB,EACAA,EAAAA,EAFAjH,GAA0BiH,EAAStmB,KAAK,CAAEslB,EAAatlB,KAAK,EAC5C,KADSqf,GACzBiH,EAAAA,EAASrU,OAAO,GAAhBqU,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,GACa,QAAbA,EAAAA,EAAS/Z,IAAAA,GAAT+Z,KAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAerU,OAAAA,GAAfqU,KAAAA,OAAAA,EAAAA,IAAAA,CAAAA,EAAyBhrB,EAC3B,EACAwV,uBAAqB,CAA4C,QAA1CwV,EAAAA,EAAS/Z,IAAI,CAACoE,4BAAAA,GAAd2V,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4CvV,IAAI,CACvEC,wBAAsB,SAAEsV,EAAAA,EAAS/Z,IAAI,CAACoE,4BAA4B,GAA1C2V,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4CloB,KAAK,UAExEkoB,EAAStmB,KAAK,IArBVsmB,EAAStmB,KAAK,EAwBrB,SAKR,EADA,CACA,OAACgQ,KAAAA,UACEuV,EAAU5hB,GAAG,CAAC,SAAC2iB,CAAAA,CAAUC,CAAAA,MACpBD,EA0BOA,EARoBA,EAAAA,EACCA,EAAAA,EA0BDA,EACCA,MAjD+B,EAG/D,CAAIA,QAAAA,KAAAA,EAAiB,MAAjBA,EAAAA,EAAAA,EAAUnE,OAAAA,GAAVmE,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB5iB,MAAAA,EAEnB,UAACwM,KAAAA,UACC,WAACuR,SAAAA,CACC3a,IAAK+e,IAAsBU,EAAQL,EAAqB,KACxDjU,QAAS,WACPoU,EAAaC,EAAUC,GACvBlH,GAA0BiH,EAAStmB,KAAK,CAC1C,EACA4M,UAAW4C,EAFgB6P,EAGzB,gBADW7P,mGAEX,8FACA,wEACA,wDACA,mFAEFiX,gBAAc,QACdtmB,KAAK,SACL2Q,uBAAqB,QAAEwV,GAAAA,EAAS/Z,IAAAA,GAAT+Z,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAe3V,4BAAAA,GAAf2V,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6CvV,IAAI,CACxEC,wBAAsB,CAAe,QAAbsV,EAAAA,EAAS/Z,IAAAA,GAAT+Z,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAe3V,4BAAAA,GAAf2V,KAAAA,MAAAA,KAAAA,EAAAA,EAA6CloB,KAAK,WAE1E,UAAC0R,OAAAA,UAAMwW,EAAStmB,KAAK,GACrB,UAACygB,GAAAA,EAAIA,CAAAA,CAAChX,KAAK,wBAAwBmD,UAAU,oCApBxC0Z,EAAStmB,KAAK,EAwBpB,CAAiB,QAAbsmB,EAAAA,EAAS/Z,IAAAA,GAAT+Z,KAAAA,MAAAA,KAAAA,EAAAA,EAAepiB,GAAAA,EAEtB,UAACgM,KAAAA,UACC,UAACrD,EAAAA,EAAIA,CAAAA,CACHgE,gBAAgB,kEAChBhB,WAAW,EACXjD,UAAW4C,IACT,gBADWA,mDAEX,+DACA,wEACA,wDAEFtL,IAAKub,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,CAAC6G,EAAS/Z,IAAI,CAACrI,GAAG,CAAE6G,GACpCgC,YAAauZ,EAAS/Z,IAAI,CAACQ,WAAW,CACtCkF,QAAS,SAAC3W,CAAAA,MAERgrB,EACAA,EAAAA,EAFAjH,GAA0BiH,EAAStmB,KAAK,EACxB,QAAhBsmB,EAAAA,EAASrU,CADgBoN,MAChBpN,GAATqU,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,GACa,QAAbA,EAAAA,EAAS/Z,IAAAA,GAAT+Z,KAAAA,OAAAA,QAAAA,EAAAA,EAAerU,OAAAA,GAAfqU,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAAyBhrB,EAC3B,EACAwV,uBAAqB,SAAEwV,EAAAA,EAAS/Z,IAAI,CAACoE,4BAAAA,GAAd2V,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4CvV,IAAI,CACvEC,wBAAsB,SAAEsV,EAAAA,EAAS/Z,IAAI,CAACoE,4BAAAA,GAAd2V,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4CloB,KAAK,UAExEkoB,EAAStmB,KAAK,IApBVsmB,EAAStmB,KAAK,EAyBpB,IACT,OAKV,EAAE,GC9KgC,WAChC,INmCqCiV,EAC/ByR,EAD2C,EAAEvjB,EM9B/BlB,EACKA,EAGvBA,EACAA,EACAA,EAGAA,EACAA,CNoByE,CMnBzEA,EACAA,EAjBqCiB,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,GAAtCjB,EAA+BiB,EAA/BjB,SAAAA,CAAWkB,EAAoBD,EAApBC,eAAAA,CACQF,EAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAA5B8H,EAAmB9H,EAAnB8H,MAAAA,CAAQ4b,EAAW1jB,EAAX0jB,MAAAA,CAEVC,KAAkC7b,GAAU,GAAjC8b,INiCCpH,GAChBpe,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,MMlCiCwlB,ONkCnB,sDAClB5R,GAGI6R,EAAYrH,GAChB,GAA4DsH,MAAAA,CAAzD1lB,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,gBAAgB,uCAAmD,OAAd0lB,SAC5D9R,GAEI+R,EAAqB3lB,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,eAAgB,2BAExC,CACL+iB,WAAY,CAAElgB,IAAKwiB,CAAU,EAC7BhC,WAAY,CAAExgB,IAAK4iB,CAAU,EAC7B5D,YAAa,CAAEhf,IAAK,GAAwB+Q,MAAAA,CAArB+R,GAA0B,OAAL/R,EAAK,mCAAkC,EACnFmO,mBAAoB,CAAElf,IAAK,GAAwB+Q,MAAAA,CAArB+R,GAA0B,OAAL/R,EAAK,iCAAgC,EACxFyO,cAAe,CAAExf,IAAK,GAAwB+Q,MAAAA,CAArB+R,GAA0B,OAAL/R,EAAK,oBAAmB,EACtEoO,iBAAkB,CAAEnf,IAAK,GAAwB+Q,MAAAA,CAArB+R,GAA0B,OAAL/R,EAAK,+BAA8B,EACpFqO,kBAAmB,CAAEpf,IAAK,GAAwB+Q,MAAAA,CAArB+R,GAA0B,OAAL/R,EAAK,gCAA+B,EACtFuO,qBAAsB,CACpBtf,IAAK7C,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,sCAAuC,yCAClD,EACAoiB,WAAY,CACVvf,IAAK7C,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CACN,mCACA,iDAEJ,EACAkiB,aAAc,CACZrf,IAAK7C,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CACN,oCACA,2EAEJ,EACAkjB,aAAc,CACZrgB,IMpEoDf,ENqEhD,GAAwB8R,MAAAA,CAArB+R,GAA0B,OAAL/R,EAAK,kCAC7B,GAAwBA,MAAAA,CAArB+R,GAA0B,OAAL/R,EAAK,0BACnC,CACF,GMtEMgS,QAAchlB,EAAAA,KAAAA,EAAkB,QAAlBA,EAAAA,EAAWE,CAAXF,MAAWE,GAAXF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoBglB,WAAW,CAC7CC,GAAW9lB,QAAQa,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWE,CAAXF,MAAWE,GAAXF,KAAAA,MAAAA,KAAAA,EAAAA,EAAoBklB,aAAa,GAAKR,EAAOpkB,QAAQ,CAAC,WAEzE6kB,EACJnlB,SAAAA,KAAAA,EAAAA,MAAAA,EAAAA,EAAAA,EAAWE,OAAAA,GAAXF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB8H,OAAAA,IACpB9H,QAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAWE,OAAO,GAAlBF,KAAAA,MAAAA,KAAAA,EAAAA,EAAoB6H,YAAAA,UACpB7H,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWE,CAAXF,MAAWE,GAAXF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB+H,UAAAA,EAEhBqd,EACJplB,OAAAA,EAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAWE,CAAXF,MAAWE,GAAXF,KAAAA,MAAAA,KAAAA,EAAAA,EAAoBqlB,kBAAAA,UACpBrlB,EAAAA,KAAAA,EAAkB,QAAlBA,EAAAA,EAAWE,CAAXF,MAAkB,GAAlBA,KAAAA,MAAAA,KAAAA,EAAAA,EAAoBslB,kBAAAA,IACpBtlB,QAAAA,KAAAA,EAAkB,OAAlBA,CAAAA,EAAAA,EAAWE,OAAO,GAAlBF,KAAAA,MAAAA,KAAAA,EAAAA,EAAoBgI,cAAAA,IACpBhI,QAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAWE,OAAAA,GAAXF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoBiI,cAAAA,EAEtB,MAAO,mBACF0c,GAAAA,CACHlD,cAAeuD,QAAcL,EAAAA,KAAAA,EAAAA,EAAUlD,UAAVkD,GAAuB,MAAG5G,EACvDwD,qBAAsB4D,QAAmBR,EAAAA,KAAAA,EAAAA,EAAUpD,UAAVoD,UAA8B,MAAG5G,EAC1EuD,aAAc8D,GAAuBD,QAAmBR,EAAAA,KAAAA,EAAAA,EAAUrD,UAAVqD,EAAsB,MAAG5G,EACjFyD,WAAYyD,EAAWN,QAAAA,KAAAA,EAAAA,EAAUnD,IAAVmD,MAAoB,MAAG5G,GAElD,EAAE,GCb6B,gBAiQKwH,EAhQlCjC,EAAAA,EAAAA,SAAAA,CACA5c,EAAAA,EAAAA,KAAAA,CACAkb,EAAAA,EAAAA,YAAAA,CACAtoB,EAAAA,EAAAA,IAAAA,CACA2oB,EAAAA,EAAAA,eAAAA,CACAuD,EAAAA,EAAAA,SAAAA,CACA3D,EAAAA,EAAAA,eAAAA,CACAC,EAAAA,EAAAA,uBAAAA,CACApB,EAAAA,EAAAA,SAAAA,CACAlV,EAAAA,EAAAA,OAAAA,CACAyX,EAAAA,EAAAA,YAAAA,CACAlB,EAAAA,EAAAA,sBAAAA,CACAC,EAAAA,EAAAA,2BAAAA,CACAxB,EAAAA,EAAAA,iCAAAA,CACAC,EAAAA,EAAAA,gCAAAA,CACA5C,EAAAA,EAAAA,OAAAA,CACA/R,EAAAA,EAAAA,KAAAA,CAEoC9G,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAAtCygB,EAA6BzgB,CAAAA,CAAAA,EAAAA,CAAjB0gB,EAAiB1gB,CAAAA,CAAAA,EAAAA,CACMA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAA5C2gB,EAAmC3gB,CAAAA,CAAAA,EAAAA,CAApB4gB,EAAoB5gB,CAAAA,CAAAA,EAAAA,CACpC,EAAQiH,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,CAAC,aAAc,YAAY,EAAhDC,CAAAA,CACF2Z,EAAwBpd,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAoB,MAElD8c,EAAkBO,KAElBC,EAAa,WAFuBD,GAG1B,GACdF,GAAiB,GACjBpqB,SAASsK,mBAAmB,CAAC,UAAWkgB,EAC1C,EAEMA,EAAgB,SAACC,CAAAA,EACP,UAAU,CAApBA,EAAE7pB,GAAG,EACP2pB,GAEJ,EAEMG,EAAuB,WAC3B1qB,SAASqK,gBAAgB,CAAC,UAAWmgB,EACvC,EAEMG,EAA0B,WAC9B3qB,SAASsK,mBAAmB,CAAC,UAAWkgB,EAC1C,EAcMI,EAAiB,WACrBjJ,KACApD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,MADUoD,gBAErBuI,GAAc,GACVC,GACFC,GAAiB,GACjBO,MAFiB,GAIA,GACjBD,IAEJ,EAUMvZ,EAAmB,SAAVb,EAETua,EAAoB9Y,IACxB,gBAD0BA,0HAE1B,CACE,oBAAqBZ,CACvB,GAEF,MACE,iCACE,WAAC0V,MAAAA,CACClW,GAAG,aACHxB,UAAW4C,IAAG,gBAADA,OAAyB,CACpC,8BAA+B,CAACzB,EAChC,aAAca,CAChB,aAEA,WAAC3B,MAAAA,CACCL,UAAW4C,IAAG,gBAADA,wCAA0D,CACrE,UAAW,CAAC,CAACuU,EACb,kBAAmB,CAACA,CACtB,aAECwB,GAAaA,EAAU7hB,MAAM,CAAG,EAC/B,WAAC+d,SAAAA,CACC7U,UAAW4C,IAAG,YAAa,CACzB,GADWA,uBACgB,CAAC,CAACuU,CAC/B,GACA9R,QA7DQ,CA6DCsW,UA5DnBnJ,KACIwI,GAAeC,GAAiB,GAChCH,GACFC,GAAc,CAHKvI,EAInBgJ,GAFc,GAIdD,IACAR,GAAc,GAElB,EAoDYxnB,KAAK,SACLsmB,gBAAeiB,EACftZ,GAAG,6BAEH,UAACqS,GAAAA,EAAIA,CAAAA,CACHhX,KAAK,OACLoY,KAAK,KACLjV,UAAW4C,IAAG,eAAgB,CAAjBA,oBACUZ,CACvB,KAEF,WAACkB,OAAAA,CACClD,UAAW4C,IAAG,gBAADA,kDAAoE,CAC/E,oBAAqBZ,CACvB,aAEA,UAACkB,OAAAA,CAAKlD,UAAU,mBAAWuB,EAAE,UAC5BA,EAAE,cAGL,KACH,EASG,KARF,UAAC0R,GAAcA,CACb9R,MAAOA,EACPpF,EAFakX,IAENlX,EACPiE,UAAW4C,IAAG,CACZ,eADWA,WACgB,CAAC,CAACuU,CAC/B,GACAjE,QAASA,IAGb,WAAC7S,MAAAA,CAAIL,UAAU,mEACZmX,EACC,UAAC9W,MAAAA,CAAIL,UAAU,wBACb,UAACqJ,GAAgBA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAClI,IAADkI,EAAQlI,GAAWgW,MAEpC,KACJ,WAAC9W,MAAAA,CAAIL,UAAU,8CACZ4a,SAAAA,KAAAA,EAAAA,EAAiBjD,UAAjBiD,EAAiBjD,GAAgB,CAACP,EACjC,WAACnX,EAAAA,EAAIA,CAAAA,CACHD,UAAU,OACViE,gBAAgB,0CAChBhB,WAAW,EACX3L,GAAG,OAAEsjB,EAAAA,KAAAA,EAAAA,EAAiBjD,YAAY,CAACrgB,GAAG,CACtC6I,YAAa0V,EACb+B,mBAAmB,EACnBvS,QAAS,WACPmN,KACApD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,MADUoD,aAErBG,GAAc,UAADA,IACf,YAEA,UAACkB,GAAAA,EAAIA,CAAAA,CACHhX,KAAK,WACLoY,KAAK,KACLjV,UAAW4C,IAAG,eAAgB,CAAjBA,WACC,CAACzB,EACb,oBAAqBa,CACvB,KAEF,UAACkB,OAAAA,CACClD,UAAW4C,IACT,gBADWA,+DAEX,CACE,oBAAqBZ,CACvB,YAGDT,EAAE,iBAGL,KACH5S,EACC,WAACkmB,SAAAA,CACC7U,UAAU,eACVqF,QAAS,WACPsN,GAAc,UAADA,OACb8I,GACF,EACA5B,gBAAemB,EACfznB,KAAK,mBAEL,UAACsgB,GAAAA,EAAIA,CAAAA,CACHhX,KAAK,cACLoY,KAAK,KACLjV,UAAW4C,IAAG,eAAgB,CAAjBA,WACC,CAACzB,EACb,gBAAiBa,CACnB,KAEF,UAACkB,OAAAA,CACClD,UAAW4C,IACT,gBADWA,4DAEX,CACE,oBAAqBZ,CACvB,YAGDT,EAAE,YAAa,CAAE4U,SAAUxnB,EAAKkO,IAAI,QAGvC,CAAC+d,OAAAA,EAAAA,KAAAA,EAAAA,EAAiBpD,UAAAA,OAAjBoD,GAA+BA,EAAAA,KAAAA,EAAAA,EAAiB9C,UAAAA,CAAU,CAAD,EAC5D,CAACT,EACD,UAAChX,MAAAA,CAAIL,UAAU,8BACb,WAACK,MAAAA,CAAIL,UAAU,8BACZ4a,OAAAA,EAAAA,KAAAA,EAAAA,EAAiB9C,UAAAA,GAAc,CAACR,EAC/B,CADDsD,EACC,OAACva,MAAAA,CAAIL,UAAU,iBACb,UAACC,EAAAA,EAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACC2a,EAAgB9C,UAAU,GAC9BF,mBAAmB,EACnB3U,WAAW,EACXjD,UAAW0b,EACXrW,QAAS,WACPmN,KACApD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,MADUoD,YAErBG,GAAc,UAADA,OACf,WAECpR,EAAE,eAGL,KACH+V,EACC,UAACjX,MAAAA,CAAIL,UAAU,iBACb,UAACsX,EAAAA,CACCtX,UAAW0b,EACX3D,kBAAmBmD,WAElB3Z,EAAE,cAGL,KACHqZ,EAAgBpD,UAAU,CACzB,WAACnX,MAAAA,CACCL,UAAU,OACVqF,QAAS,WACPmN,KACAG,GAAc,UAADA,GADQH,IAEvB,YAEA,UAACqB,GAAAA,EAAIA,CAAAA,CACHhX,KAAK,cACLoY,KAAK,KACLjV,UAAW4C,IAAG,gBAADA,SAA2B,CACtC,WAAY,CAACzB,EACb,gBAAiBa,CACnB,KAEF,UAAC4Z,GAAAA,EAAKA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACJrE,SAAUqD,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAiBpD,OAAjBoD,GAA2B,GAA3BA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6BtjB,GAAAA,GAAO,GAC9CxG,MAAOyQ,EAAE,oBACT8S,eAAgB6C,EAChB2E,UAAU,EACVC,OAAQ,WACNf,GAAc,GACdE,GAAiB,EACnB,EACAc,gBAAiBnZ,IACf,gBADiBA,mDAEjB,CACE,oBAAqBZ,CACvB,IAEEiV,OAGN,UAGN,cAIR6D,CAAAA,GAAcE,CAAAA,CAAY,EAC1B,UAAC3a,MAAAA,CACCL,UAAU,oGACV6C,cAAY,oBACZwC,QAAS+V,IAGZzC,GAAaA,EAAU7hB,MAAM,CAAG,EAC/B,UAACuJ,MAAAA,CACCwC,cAAY,aACZ7C,UAAW4C,IAAG,CAAEoZ,QAASlB,EAAYmB,KAAxBrZ,KAAmC,CAACkY,CAAW,YAE5D,UAAC7J,GAAWA,CACVlC,OADUkC,EAEVC,UAAU,OACVC,aAAc0J,EACdzJ,4BAA4B,aAC5BE,YAAa,eACXzgB,EACA,OADwB,QAAxBA,EAAAA,SAASqrB,cAAc,CAAC,sBAAxBrrB,KAAAA,IAAAA,GAAAA,EAA6Cod,KAAK,IAC3C,CACT,WAEA,UAACwK,GAAUA,CAAC1J,MAAD0J,CAASqC,EAAYnC,UAAWA,EAAWxT,QAxO5C,CAwOqDgX,UAvOzEpB,GAAc,EAChB,QAyOU,KACJ,UAAC9J,GAAWA,CACVlC,OADUkC,EAEVC,UAAU,QACVC,aAAc0J,EACdzJ,4BAA4B,sBAE3BziB,GAAQqsB,EACP,UAACoB,GAAAA,CACCztB,KAAMA,EACNinB,UAAWgF,EACXzV,QAlPS,CAkPAkX,UAjPnBpB,GAAiB,EACnB,EAiPYlF,UAAWA,EACXD,iCAAkCA,EAClCD,kCAAmCA,IAEnC,UAIR,UAAC6B,MAAAA,CAAI1X,UAAU,2BACb,UAACqY,GAAQA,CACPxX,KADOwX,GACExX,EACTyX,aAAcA,EACdxC,iCAAkCA,EAClCsB,uBAAwBA,EACxBC,4BAA6BA,EAC7BxB,kCAAmCA,EACnC9Z,MAAOA,EACPmb,gBAAiBA,EACjBnB,UAAWA,EACXpnB,KAAMA,EACNinB,UAAWgF,EACXxC,aAAcO,EACdxB,wBAAyBA,EACzBF,aAAcA,EACd/D,QAASA,EACT/R,MAAOA,EACPmW,gBAAiBA,QAK3B,EAAE,GAasB,gBACtBhgB,EAAAA,EAAAA,GAAAA,CACA+N,EAAAA,EAAAA,OAAAA,CACArP,EAAAA,EAAAA,QAAAA,CACAmK,EAAAA,EAAAA,WAAAA,CAOA,MACE,UAACF,EAAAA,EAAIA,CAAAA,CACHgE,gBAAiBrB,IACf,gBADiBA,gBAEjB,4FACA,wEACA,wDACA,iFAEF5C,UAAU,wJACViD,WAAW,EACX3L,IAAKA,EACL+N,QAASA,EACTlF,YAAaA,WAEZnK,GAGP,EAEMomB,GAAiB,gBA0CdxG,EAWAA,EAYAA,EAYAA,EAYAA,EAYAA,EAYAA,EAYAA,EA5HPjnB,EAAAA,EAAAA,IAAAA,CACAinB,EAAAA,EAAAA,SAAAA,CACAzQ,EAAAA,EAAAA,OAAAA,CACA4Q,EAAAA,EAAAA,SAAAA,CACAD,EAAAA,EAAAA,gCAAAA,CACAD,EAAAA,EAAAA,iCAAAA,CAEmCxf,EAATA,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAA3B8H,MAAAA,CAEF,CAFEA,CAEMmD,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAArBC,CAAAA,CACFyU,EAA6BC,CAAAA,EAAAA,EAAAA,EAAAA,CAAwBA,CAACtnB,EAAKunB,YAAY,CAAE,CAAE/X,OAHzEA,CAGyEA,IAHzEA,IAAAA,EAAS,MAGuE,GAExF,MACE,WAACgU,GAAAA,EAASA,CAAAA,CAACb,WAAW,cACpB,UAACjR,MAAAA,CAAIL,UAAU,8GACb,WAAC6U,SAAAA,CAAOxP,QAASF,EAAS5R,KAAK,SAASyM,UAAU,iBAChD,UAAC6T,GAAAA,EAAIA,CAAAA,CAAChX,KAAK,QAAQoY,KAAK,KAAKjV,UAAU,WACvC,WAACkD,OAAAA,CAAKlD,UAAU,4EACbuB,EAAE,SACH,UAAC2B,OAAAA,CAAKlD,UAAU,mBAAWuB,EAAE,iCAInC,WAAClB,MAAAA,CAAIL,UAAU,iBACb,UAACK,MAAAA,CAAIL,UAAU,gBACb,UAACK,MAAAA,CAAIL,UAAU,mFACb,UAAC6T,GAAAA,EAAIA,CAAAA,CAAChX,KAAK,OAAOoY,KAAK,WAG3B,WAAC5U,MAAAA,CAAIL,UAAU,wJACb,UAACkD,OAAAA,UAAM3B,EAAE,YAAa,CAAE4U,SAAUxnB,EAAKkO,IAAI,KAC3C,WAACwD,MAAAA,CAAIL,UAAU,uBACb,UAACkD,OAAAA,CAAKlD,UAAU,qBAAarR,EAAKynB,UAAU,GAAQ,IAAE7U,EAAE,aAE1D,UAAClB,MAAAA,UAAKkB,EAAE,oBAAqB,CAAE8U,kBAAmBL,CAA2B,KAC5ErnB,EAAKqI,aAAa,CACjB,UAACqJ,MAAAA,UAAKkB,EAAE,qBAAsB,CAAEvK,cAAerI,EAAKqI,aAAa,KAC/D,WAGR,WAACqJ,MAAAA,CAAIL,UAAU,kHACZ4V,OAAAA,EAAAA,KAAAA,EAAsB,QAAtBA,EAAAA,EAAWU,CAAXV,UAAsB,GAAtBA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwBte,GAAAA,EACvB,UAACglB,GAAAA,CACChlB,IAAKse,EAAUU,WAAW,CAAChf,GAAG,CAC9B+N,QAAS,WACPsN,GAAc,UAADA,uBACf,EACAxS,YAAa0V,WAEZtU,EAAE,sBAEH,KACHqU,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWc,CAAXd,gBAAWc,GAAXd,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA8Bte,GAAG,EAChC,UAACglB,GAAAA,CACChlB,IAAKse,EAAUc,iBAAiB,CAACpf,GAAG,CACpC+N,QAAS,WACPsN,GAAc,UAADA,0BACf,EACAxS,YAAa0V,WAEZtU,EAAE,aAEH,KAEHqU,SAAAA,KAAAA,EAAAA,MAAAA,EAAAA,EAAAA,EAAWY,kBAAAA,GAAXZ,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA+Bte,GAAG,GAAI,CAACwe,EACtC,UAACwG,GAAAA,CACChlB,IAAKse,EAAUY,kBAAkB,CAAClf,GAAG,CACrC+N,QAAS,WACPsN,GAAc,UAADA,2BACf,EACAxS,YAAa0V,WAEZtU,EAAE,cAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAWa,CAAXb,eAAWa,GAAXb,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6Bte,GAAAA,GAAO,CAACwe,EACpC,UAACwG,GAAAA,CACChlB,IAAKse,EAAUa,gBAAgB,CAACnf,GAAG,CACnC+N,QAAS,WACPsN,GAAc,UAADA,yBACf,EACAxS,YAAa0V,WAEZtU,EAAE,iBAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAAuB,QAAvBA,EAAAA,EAAWe,CAAXf,WAAuB,GAAvBA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBte,GAAAA,EACxB,UAACglB,GAAAA,CACChlB,IAAKse,EAAUe,YAAY,CAACrf,GAAG,CAC/B+N,QAAS,WACPsN,GAAc,UAADA,6BACf,EACAxS,YAAa0V,WAEZtU,EAAE,4BAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWgB,CAAXhB,mBAAWgB,GAAXhB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiCte,GAAAA,EAChC,UAACglB,GAAAA,CACChlB,IAAKse,EAAUgB,oBAAoB,CAACtf,GAAG,CACvC+N,QAAS,WACPsN,GAAc,UAADA,6BACf,EACAxS,YAAa0V,WAEZtU,EAAE,4BAEH,KAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAWiB,CAAXjB,SAAWiB,GAAXjB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuBte,GAAAA,EACtB,UAACglB,GAAAA,CACChlB,IAAKse,EAAUiB,UAAU,CAACvf,GAAG,CAC7B+N,QAAS,WACPsN,GAAc,UAADA,wBACf,EACAxS,YAAa0V,WAEZtU,EAAE,uBAEH,KAEHqU,SAAAA,KAAAA,EAAAA,MAAAA,EAAAA,EAAAA,EAAWkB,aAAAA,GAAXlB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0Bte,GAAAA,EACzB,UAACglB,GAAAA,CACChlB,IAAKse,EAAUkB,aAAa,CAACxf,GAAG,CAChC+N,QAAS,WACPsN,GAAc,UAADA,8BACf,EACAxS,YAAa0V,WAEZtU,EAAE,6BAEH,KAEJ,UAACsT,SAAAA,CACC7U,UAAW4C,IACT,gBADWA,oEAEX,iHACA,0CACA,qGACA,wDACA,0CACA,iFAEFyC,OAAO,SAAE,kEAGP,OAFAsN,GAAc,UAADA,eACbxN,IACA,GAAM4Q,mBAAN,eACF,GACAxiB,KAAK,kBAEJgO,EAAE,kBAKb,0BChjBO,SAASgb,GAAgB,CAwB/B,YAvBCvmB,EAD8B,EAC9BA,QAAAA,CACAgK,EAF8B,EAE9BA,SAAAA,CACAvP,EAH8B,EAG9BA,QAAAA,CACA+rB,EAJ8B,EAI9BA,cAAAA,CACAxnB,EAL8B,EAK9BA,OAAAA,CACA0K,EAN8B,EAM9BA,QAAAA,CAAAA,EAN8B,EAO9B+c,KAAAA,CACAC,CADAD,CAP8B,EAQ9BC,iBAAAA,CACAC,EAT8B,EAS9BA,gBAAAA,CACAtX,EAV8B,EAU9BA,OAAAA,CAesChL,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAAxCuiB,EAA+BviB,CAAAA,CAAAA,EAAAA,CAAlBwiB,EAAkBxiB,CAAAA,CAAAA,EAAAA,CACgBA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAAxDyiB,EAA+CziB,CAAAA,CAAAA,EAAAA,CAA1B0iB,EAA0B1iB,CAAAA,CAAAA,EAAAA,CACRA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAAhD2iB,EAAuC3iB,CAAAA,CAAAA,EAAAA,CAAtB4iB,EAAsB5iB,CAAAA,CAAAA,EAAAA,CACAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAC,OAAhD6iB,EAAuC7iB,CAAAA,CAAAA,EAAAA,CAAtB8iB,EAAsB9iB,CAAAA,CAAAA,EAAAA,CACxC,EAAY/D,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,GAAjB8mB,KAAAA,CACFC,EAAYvf,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAoB,MACtCwf,EAAoBxf,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAuB,MACjD,EAAQwD,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,yBAArBC,CAAAA,CACFtQ,GA0FCA,EAAqBoJ,CAAAA,EAAAA,CA1FbkjB,EA0FaljB,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAC,6BAATA,CAAAA,EAAAA,CAAbmjB,EAAanjB,CAAAA,CAAAA,EAAAA,CAC5B5D,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACR,GAAIqS,GAAAA,CAASA,EAAIlO,OAAO5J,QAAQ,CAAE,CAChC,IAAqC4J,EAAAA,OAAO5J,QAAQ,CAA5CysB,EAA6B7iB,EAA7B6iB,QAAAA,CAAUC,EAAmB9iB,EAAnB8iB,QAAAA,CAAUC,EAAS/iB,EAAT+iB,IAAAA,CAE5BH,EADe,GAAgBE,KACrBzsB,CADqBysB,CAAbD,EAAS,MAAeE,MAAAA,CAAXD,GAAkC,OAAvBC,EAAO,IAAS,OAALA,GAAS,IAEhE,CACF,EAAG,EAAE,EACE1sB,GA1FD2sB,EAAwB,WAC5BX,GAAmB,EACrB,EAEMY,EAAmB,WACvBhB,GAAe,GACfI,GAAmB,EACrB,EAEA,MACE,WAAClI,GAAAA,EAAMA,CAAAA,CACLC,UAAW6I,EACX9O,OAAQ6N,EACR3H,KAAM+H,EAAkB,KAAO,MAC/BlsB,KAAAA,CAAyByQ,EAAlByb,WAAkC,CAAFzb,cACvCuc,cACE,UAACjJ,SAAAA,CAAOthB,KAAK,SAASyM,UAAWA,EAAWqF,QAtB1B,CAsBmC0Y,UArBzDlB,GAAe,GACfE,GAAuB,SACvB1X,GAAAA,GACF,EAkB4EnL,IAAKmjB,QAnB/EhY,GAoBOrP,cAIJ8mB,EACC,UAACkB,GAAAA,CAAQA,CAAAA,CACPvtB,SAAUA,EACVgsB,MA1DRA,CA0DeA,IA1DfA,IAAAA,EAAQ,UA2DAxrB,OAAQA,EACRyO,SACEA,GACE,UAACue,KAAAA,CAAGje,UAAU,mDAA2CuB,EAAE,sBAG/D2c,UAAW,SAAC9e,CAAAA,EACV,IAAqBA,EAAAA,EAAf+e,EAAe/e,QAAAA,KAAAA,EAAAA,EAAAA,MAAAA,EAAAA,EAAMgf,WAAAA,GAANhf,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAmBA,IAAAA,GAAnBA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBpI,aAAa,CACvDmnB,UACFxB,GAAAA,CADgB,GAEhBQ,EAAmBgB,GACnBpB,EAAuB,IACvBa,IAEJ,EACA5oB,KANI2nB,GAMK3nB,IAET,KACHgoB,EACC,iCACE,WAAC3c,MAAAA,CAAInG,IAAKojB,EAAmBtd,UAAU,sDACrC,UAAC6T,GAAAA,EAAIA,CAAAA,CAAChX,KAAK,eAAekX,QAAQ,UAClC,UAAC5Q,IAAAA,CAAEnD,UAAU,gBAAQuB,EAAE,uBAExB2b,EACC,UAAC/H,GAAAA,EAAWA,CAAAA,CACVoC,SAAUiF,EACV1rB,MAAOyQ,EAAE,UACTpH,QAAS,CACPgc,SAAU+G,CACZ,EACA7I,eAAgB,SAACgK,CAAAA,EACXA,EAAOjf,IAAI,EACbge,EAAMiB,GACHC,IAAI,CAAC,WACJT,IACAZ,GAAmB,SACnBP,GAAAA,GACF,EACC6B,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EACNiB,CAAAA,EAHAmc,EAGAnc,EAAAA,CAAQA,CACN,wBACAjB,EACA,yCAEJ,EAEN,IAEA,QAEJ,OAGV,CE5GA,IAAMkf,GAEF,SAAC7e,CAAAA,EACH,IAc6BA,EACCA,EAfvB4B,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,gBAAfA,CAAAA,EAAAA,CACZ,MACE,UpBqOK,GoBrOa,CAACmd,MAAD,GAAU,WAC1B,WAAClb,IAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCC,KAAM7D,EAAKrI,GAAG,CACd+N,QAAS1F,EAAK0F,OAAO,CACrBrF,UAAW4C,IACT,gBADWA,sDAEXjD,EAAKK,SAAS,GAEXL,EAAKO,cAAc,EAAI,CAC1B,aAAc,GAAyBP,MAAAA,CAAtBA,EAAKO,cAAc,EAA8C,OAA3CP,EAAKQ,WAAW,CAAG,KAAiB,OAAZoB,EAAE,WAAc,GACjF,EACK5B,EAAKQ,WAAW,EAAI,CAAEsD,OAAQ,SAAUC,IAAK,qBAAsB,IACxEQ,uBAAqB,SAAEvE,EAAAA,EAAKoE,4BAAAA,GAALpE,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmCwE,IAAI,CAC9DC,wBAAsB,SAAEzE,EAAAA,EAAKoE,4BAAAA,GAALpE,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmCnO,KAAK,WAE/DmO,EAAKvM,KAAK,CACVuM,EAAKQ,WAAW,EAAI,CAACR,EAAKO,cAAc,CACvC,WAACgD,OAAAA,CAAKlD,UAAU,oBAAU,KACtB,UAACkD,OAAAA,UAAM3B,EAAE,eAEX,UAIZ,EAEMmd,GAAgC,iBACtC,SAASC,KACFC,CAAAA,EAAAA,GAAAA,CAAAA,CAAyBA,CAACF,GACjC,CAEO,IAAMG,GAASne,EAAAA,UAAgB,CACpC,WAwBEC,CAAAA,MAoY8BpE,IAhYlBqZ,EA1BVkJ,EAAAA,EAAAA,YAAAA,CACA/iB,EAAAA,EAAAA,KAAAA,CACA8E,EAAAA,EAAAA,OAAAA,CACAuX,EAAAA,EAAAA,YAAAA,CACArC,EAAAA,EAAAA,SAAAA,CACAmB,EAAAA,EAAAA,eAAAA,CAAAA,EAAAA,EACAoB,YAAAA,CAAAA,EAAAA,KAAAA,IAAAA,GAAe,EACfxC,EAAAA,EAAAA,gCAAAA,CACAsB,EAAAA,EAAAA,sBAAAA,CACAC,EAAAA,EAAAA,2BAAAA,CACAxB,EAAAA,EAAAA,iCAAAA,CACAlnB,EAAAA,EAAAA,IAAAA,CACAinB,EAAAA,EAAAA,SAAAA,CACAqB,EAAAA,EAAAA,YAAAA,CACAjhB,EAAAA,EAAAA,QAAAA,CACAmhB,EAAAA,EAAAA,uBAAAA,CACA4H,EAAAA,EAAAA,aAAAA,CACA5d,EAAAA,EAAAA,KAAAA,CACA+R,EAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EACA2H,SAAAA,CACGzZ,CADHyZ,CACGzZ,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CApBH0d,eACA/iB,QACA8E,UACAuX,eACArC,YACAmB,kBACAoB,eACAxC,mCACAsB,yBACAC,8BACAxB,oCACAlnB,OACAinB,YACAqB,eACAjhB,WACAmhB,0BACA4H,gBACA5d,QACA+R,UACA2H,cAKKtZ,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,CAAC,aAAc,YAAY,IAA1CA,CAAAA,EAAAA,CACNxH,EAAiB,CACrByd,SAAU3B,CAAAA,QAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAW4B,UAAAA,GAAX5B,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuBte,GAAAA,GAAO,GACxCxG,MAAOyQ,EAAE,oBACT8S,eAAgB6C,CAClB,EACM8H,EAAwB,CAC5BjjB,MAAAA,EACA8E,QAAAA,EACAuX,aAAAA,EACArC,UAAAA,EACAmB,gBAAAA,EACAoB,aAAAA,EACA3pB,KAAAA,EACAinB,UAAAA,EACAqB,aAAAA,EACAjhB,SAAAA,EACAkd,QAAAA,CACF,EAGM+L,GA6WAxiB,EAAwBF,GAAAA,CAAAA,EAAAA,GAAAA,EA7WR2iB,CA6W+B3iB,CACrDmiB,GACAS,GAAAA,EAAMA,CAACC,OAAO,GAFR3iB,SAAAA,CAAwBF,CAAbC,CAAAA,QAAAA,EAIAC,CAAAA,QAAAA,KAAAA,EAAAA,EAAWE,KAAXF,CAAWE,IAAW,kBA/WnCiZ,EAAAA,KAAAA,EAAAA,EAAWkC,UAAAA,CAAXlC,CAAuB,EACzBA,EAAUkC,UAAU,CAACuH,WAAW,CAAGV,GACnC/I,EAAUkC,UAAU,CAAC7H,SAAS,CAAG,SAASA,CAAe,GACrC,UAAdvhB,EAAM+C,GAAG,EAA8B,MAAd/C,EAAM+C,GAAG,GAAU,IAGlD,GAqCA,iCACE,UAAC8R,IAAAA,CAAEC,KAAK,WAAWxD,UAAU,6DAC1BuB,EAAE,mBAEL,UAAC+d,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCtf,UAAW4C,IAAG,gBAADA,sBAAwC,CACnD,aApDiB,CAoDHZ,QApDPb,CAqDT,GACA0B,cAAY,gBACZ3I,IAAKyG,GACDS,GAAAA,UAEH0d,GAAgBC,EACf,UAACQ,GAAeA,CACd5G,UAAWmG,CADGS,CAEdxjB,MAAOA,EACPmb,gBAAiBA,EACjBnB,UAAWA,EACX8E,UAzFRA,CAyFmBA,IAzFnBA,IAAAA,EAAY,WA0FJlsB,KAAMA,EACN2oB,gBAAiB2H,EAtDH,cAsDmB3H,EAxCrB1B,EAbpB5f,EAAAA,EAAAA,QAAAA,CACAgK,EAAAA,EAAAA,SAAAA,CACA+X,EAAAA,EAAAA,iBAAAA,CAMA,MACE,UAACwE,GAAeA,CACdlX,QAASsZ,GACT3e,UAAWA,EACXvP,SAAU0mB,OAAAA,EAAAA,KAAAA,EAAAA,EAAyBhZ,MAAAA,GAAU,KAC7Cqe,WADUrF,IACMvB,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAW4B,CAAX5B,SAAW4B,GAAX5B,KAAAA,MAAAA,KAAAA,EAAAA,EAAuBte,GAAAA,GAAO,GAC9CqlB,iBAAkB,iBAAMvN,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,iBACnCsN,kBAAmB,WACjBtN,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,gBACXoK,WAAW,eAAMzB,eAAAA,EAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAmB/c,OAAAA,EAAnB+c,CAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4B9J,KAAK,IAAI,IACxD,EACAjZ,QAAS,CACPzD,YAAa,WAAO,EACpBqB,WAAY,WAAO,EACnBN,cAAe,WAAO,EACtBR,YAAa,WAAO,EACpBY,qBAAsB,WAAO,CAC/B,WAECsD,GAGP,OAuB6Dod,EACnD6D,aAAcA,EACdE,wBAAyBA,EACzBtW,QAASA,EACTyX,aAAcA,EACdxC,iCAAkCA,EAClCsB,uBAAwBA,EACxBC,4BAA6BA,EAC7BxB,kCAAmCA,EACnC3C,QAASA,EACT/R,MAAOA,IAEPgW,EACF,UAACqI,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACKR,GAAAA,CACJllB,eAAgBA,EAChBqd,wBAAyBA,KAG3B,UAACsI,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAkBT,GAAAA,CAAuBllB,eAAgBA,QAG7D9D,EACD,UAACqK,MAAAA,CAAImB,GAAG,UAAUke,SAAU,CAAC,MAGnC,GAsBF,SAASD,GAAc,CAWX,MAVV1jB,EADqB,EACrBA,KAAAA,CACA8E,EAFqB,EAErBA,OAAAA,CACAuX,EAHqB,EAGrBA,YAAAA,CACArC,EAJqB,EAIrBA,SAAAA,CACAuC,EALqB,EAKrBA,YAAAA,CACA3pB,EANqB,EAMrBA,IAAAA,CACAinB,EAPqB,EAOrBA,SAAAA,CACAqB,EARqB,EAQrBA,YAAAA,CACAnd,EATqB,EASrBA,cAAAA,CACAoZ,EAVqB,EAUrBA,OAAAA,CAEA,MACE,WAAC7S,MAAAA,CACCL,UAAW4C,IAAG,gBAADA,2BAA6C,CACxD,kBAAmB/B,EACnBiC,UAAW,CAACjC,CACd,aAECyX,EAAe,KAAO,UAACrF,GAAcA,CAAClX,MAAOA,EAAOmX,EAAfD,MAAwBC,IAC7DkF,OAAAA,EAAAA,KAAAA,EAAAA,EAActhB,MAAAA,EAAS,MAAvBshB,EAAuB,EAACD,GAAOA,CAACnX,MAAOoX,EAAcE,EAAtBH,WAAoCG,IAAmB,KACvF,UAACtB,GAAOA,CACNroB,KAAMA,EACNinB,GAFMoB,OAEKpB,EACXG,UAAWA,EACXkB,aAAcA,EACdnd,eAAgBA,MAIxB,CAEA,SAAS0lB,GAAc,CActB,MAbCzjB,EADqB,EACrBA,KAAAA,CACA8E,EAFqB,EAErBA,OAAAA,CACAuX,EAHqB,EAGrBA,YAAAA,CACArC,EAJqB,EAIrBA,SAAAA,CACAuC,EALqB,EAKrBA,YAAAA,CACA3pB,EANqB,EAMrBA,IAAAA,CACAinB,EAPqB,EAOrBA,SAAAA,CACAqB,EARqB,EAQrBA,YAAAA,CACAnd,EATqB,EASrBA,cAAAA,CACAqd,EAVqB,EAUrBA,uBAAAA,CACAjE,EAXqB,EAWrBA,OAAAA,CAIA,MACE,WAAC7S,MAAAA,CACCL,UAAW4C,IAAG,gBAADA,QAA0B,CACrC,kBAAmB/B,EACnBiC,UAAW,CAACjC,CACd,aAEA,WAACR,MAAAA,CAAIL,UAAU,uHACb,UAACqJ,GAAgBA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAK8N,EAAL9N,EACjB,UAAChJ,MAAAA,CAAIL,UAAU,kFACb,UAACgX,GAAOA,CACNroB,KAAMA,EACNinB,GAFMoB,OAEKpB,EACXG,UAAWA,EACXkB,aAAcA,EACdnd,eAAgBA,SAItB,WAACuG,MAAAA,CAAIL,UAAU,gDACZsY,EAAe,KAAO,UAACrF,GAAcA,CAAClX,MAAOA,EAAOmX,EAAfD,MAAwBC,IAC7DkF,OAAAA,EAAAA,KAAAA,EAAAA,EAActhB,MAAAA,EAAS,MAAvBshB,EAAuB,EAACD,GAAOA,CAACnX,MAAOoX,EAAcE,EAAtBH,WAAoCG,IAAmB,UAI/F,CAEA,SAAStB,GAAQ,CAMyE,MAuC3EpB,EAWAA,EAxDCoB,EAAC,EACfroB,IAAAA,CACAinB,EAFe,EAEfA,SAAAA,CACAG,EAHe,EAGfA,SAAAA,CACAkB,EAJe,EAIfA,YAAAA,CACAnd,EALe,EAKfA,cAAAA,CAEoBwH,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAA3B9C,EAAY8C,EAAZ9C,IAAAA,CAAM+C,EAAMD,EAANC,CAAAA,CACqBlL,EAATA,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAA3B8H,MAAAA,CACF6X,CADE7X,CAC2B8X,CAAAA,EAAAA,EAAAA,EAAAA,CAAwBA,OAACtnB,EAAAA,KAAAA,EAAAA,EAAMunB,MAANvnB,MAAkB,CAAE,CAAEwP,OAD1EA,CAC0EA,IAD1EA,IAAAA,EAAS,MACwE,GACzF,MACE,UAACuZ,MAAAA,CAAI/T,aAAW,gBAAgB3D,UAAU,4BACvCrR,EACC,WAACgxB,GAAiB,CAACC,IAAKphB,EAAN,GAAc,GAAIqhB,OAAO,YACzC,UpBxDV,GoBwD+B,CAACpB,GAAD,IAAQ,aAC3B,WAAC5J,SAAAA,CACCxP,QAAS,WACPmN,KACApD,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,MADUoD,eAEvB,EACAxS,UAAU,yCACVzM,KAAK,mBAEL,UAAC2P,OAAAA,CAAKlD,UAAU,gCACbuB,EAAE,YAAa,CAAE4U,SAAUxnB,EAAKkO,IAAI,KAEvC,UAACgX,GAAAA,EAAIA,CAAAA,CAAChX,KAAK,cAAcoY,KAAK,KAAKlB,QAAQ,QAAQ/T,UAAU,cAGjE,UAAC2f,GAAmB,UAClB,WpBtEA,GoBsEqB,CACnBG,MAAM,GADa,GAEnB9f,UAAU,uIAEV,UAACK,MAAAA,CAAIL,UAAU,mCACb,WAACmD,IAAAA,CAAEnD,UAAU,0BACX,UAACkD,OAAAA,CAAKlD,UAAU,2BAAmBrR,EAAKynB,UAAU,GAClD,UAAClT,OAAAA,UACE3B,EAAE,SAAU,CACXwe,MAAOpxB,EAAKunB,YAAY,CACxBlF,OAAQgF,CACV,UAILJ,OAAAA,EAAAA,KAAAA,EAAsB,QAAtBA,EAAAA,EAAWU,CAAXV,UAAWU,GAAXV,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwBte,GAAG,EAC1B,UAACknB,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCnZ,QAAS,SAACiW,CAAAA,MACR1F,EAAAA,CAAqB,SAArBA,EAAAA,EAAUU,WAAAA,GAAVV,KAAAA,IAAAA,GAA8B,QAA9BA,EAAAA,EAAuBvQ,OAAO,GAA9BuQ,KAAAA,OAAAA,EAAAA,IAAAA,CAAAA,EAAiC0F,GACjC9I,IACF,GACIoD,EAAUU,WAAW,CAFF9D,CAEE,CACzBpf,MAAOmO,EAAE,cAET,KAEHqU,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWoK,CAAXpK,cAAWoK,GAAXpK,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4B9e,MAAAA,EACzB8e,EAAUoK,eAAe,CAACjpB,GAAG,CAAC,SAAC4I,CAAAA,QAC7B,UAAC6e,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCnZ,QAAS,SAACiW,CAAAA,MACR3b,CAAY,SAAZA,EAAAA,EAAK0F,OAAAA,GAAL1F,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAAe2b,GACf9I,IACF,GAEI7S,GADCA,EAAKvM,KAAK,IAFQof,KAO/B,UAACqC,SAAAA,CACC7U,UAAW4C,IACT,gBADWA,mEAGbyC,QAAS0Q,EACTvU,GAAG,WACHjO,KAAK,kBAEJgO,EAAE,qBAKTqU,OAAAA,EAAAA,KAAAA,EAAAA,EAAW4B,UAAAA,CAAX5B,SAAyBA,EAAAA,KAAAA,EAAAA,EAAWkC,UAAAA,CAAXlC,CAC3B,WAACxS,KAAAA,CAAGpD,UAAU,4EACX4V,EAAUkC,UAAU,CACnB,UAACxU,KAAAA,CAAGtD,UAAU,6CACZ,UAACC,EAAAA,EAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACC2V,EAAUkC,UAAU,GACxBF,mBAAmB,EACnB5U,mBAAiB,qBACjBC,WAAW,EACXjD,UAAU,qFACVqF,QAAS,SAACiW,CAAAA,MACR1F,EAAAA,CAAoB,SAApBA,EAAAA,EAAUkC,UAAAA,GAAVlC,KAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAsBvQ,OAAAA,GAAtBuQ,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAAgC0F,GAChClM,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAAC,kBACXoD,IACF,WAECjR,EAAE,IAHoBiR,WAMzB,KACHoD,EAAU4B,UAAU,CACnB,UAAClU,KAAAA,CAAGtD,UAAU,6CACZ,UAAC4b,GAAAA,EAAKA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAACE,OAAQtJ,IAAgC1Y,EAAmBmd,MAElE,QAEJ,CAJwCzE,KAOlD,CAEA,SAAS2F,GAAQ,CAMhB,MALCnX,EADe,EAADmX,KACdnX,CACAsX,EAFe,EAEfA,YAAAA,CAKM2H,EAASvf,EAAAA,MAAY,CAA0B,MACTA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,EAAC,MAApDwf,EAAqCxf,CAAAA,CAAAA,EAAAA,CAApByf,EAAoBzf,CAAAA,CAAAA,EAAAA,CACFA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,EAAC,MAAlD0f,EAAmC1f,CAAAA,CAAAA,EAAAA,CAAnB2f,EAAmB3f,CAAAA,CAAAA,EAAAA,CAEpC4f,EAAW5f,EAAAA,WAAiB,CAAC,SAAC6f,CAAAA,EAClC,IAAmBN,EACCA,EADDA,EACCA,EADd1lB,EAAa0lB,QAAAA,EAAAA,QAAAA,EAAAA,EAAOjlB,OAAAA,GAAPilB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB1lB,UAAAA,GAAhB0lB,KAAAA,IAAAA,EAAAA,EAA8B,EAG3CO,EAAYC,CAF6B,QAA3BR,EAAAA,GAEYS,KAFZT,EAAAA,EAAOjlB,OAAAA,GAAPilB,KAAAA,MAAAA,KAAAA,EAAAA,EAAgBQ,WAAAA,GAAhBR,KAAAA,IAAAA,EAAAA,GAA+B,GAClCM,OAAAA,EAAAA,KAAAA,EAAAA,EAAMI,KAAAA,CAANJ,GAAe,EAIhCJ,EAFkB5lB,EAAa,GAAKimB,EAAY,GAGhDH,EAFiBG,EAAY,CACZI,EADiBJ,EAAYjmB,EAAa,EAG7D,EAAG,CADesmB,CACb,EACCC,EAAUC,CAAAA,EAAAA,GAAAA,CAAAA,CAAOA,CAAC,CAAE7mB,IAAK+lB,EAAQe,SAAUV,CAAS,GACpDW,EAAcvgB,EAAAA,WAAiB,CAAC,kBAAMogB,GAAWR,EAASQ,IAAU,CAACR,EAAUQ,EAAQ,EAC7F,MACE,UAACpJ,MAAAA,CACC1X,UAAW4C,IACT,gBADWA,gNAEX,CACE,UAAW0V,EACX,oBAAqB4H,EACrB,mBAAoBE,CACtB,YAGF,UAAC/f,MAAAA,CACCnG,IAAK+lB,EACLiB,SAAUD,EACVjhB,UAAU,uEAEV,UAACoD,KAAAA,CAAGpD,UAAU,uEACXgB,EAAMjK,GAAG,CAAC,gBAAG3D,EAAAA,EAAAA,KAAAA,CAAO2Q,EAAAA,EAAAA,4BAAAA,CAAiCiM,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAxC5c,QAAO2Q,uCACnB,UAACT,KAAAA,CAECtD,UAAU,oEAEV,UAACC,EAAAA,EAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACC+P,GAAAA,CACJ/M,WAAW,EACXjD,UAAU,6DACVqF,QAAS,SAACiW,CAAAA,MACRtL,CAAiB,SAAjBA,EAAAA,EAAU3K,OAAAA,GAAV2K,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAAoBsL,GACpB9I,IACF,EACAtO,eAFuBsO,QAEF,OAAEzO,EAAAA,KAAAA,EAAAA,EAA8BI,IAAI,CACzDC,wBAAsB,CADCL,MACCA,EAAAA,KAAAA,EAAAA,EAA8BvS,KAAK,UAE1D4B,MAdE,SAYqB2Q,QAZE,OAAN3Q,WAsBpC,CASAyrB,GAAOra,WAAW,CAAG,yEIhcc2c,GAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,GAAjCC,GAA2BD,GAA3BC,QAAAA,CAAUC,GAAiBF,GAAjBE,YAAAA,CAeZC,GAAmB,SAAC3hB,CAAAA,CAAexB,CAAAA,CAAgBojB,CAAAA,EACvD,OAAQpjB,GACN,IAAK,KAIH,OAHAwB,EAAKrI,GAAG,CAAGiqB,EACP,GAAuB,OAApB9sB,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,gBAAgB,kCACvB,+FACGkL,CACT,KAAK,KAEH,OADAA,EAAKrI,GAAG,CAAG,yCACJqI,CACT,SACE,OAAOA,CACX,CACF,EAEM6hB,GAAoB,gBAsBpBpiB,EAAAA,EAUOA,EAAAA,EAAwCA,EAAAA,EAT1CA,EAAAA,EAAAA,EAAAA,EAUAA,EAAAA,EAAAA,EAhCTzP,EAAAA,EAAAA,SAAAA,CACAc,EAAAA,EAAAA,QAAAA,CACAoU,EAAAA,EAAAA,MAAAA,CAMM,EAAW4c,CAAAA,EAAAA,EAAAA,GAAAA,CAAkBA,CAAC,CAAE9xB,UAAAA,EAAWc,SAAAA,CAAS,GAAlD2O,IAAAA,CACAA,EAA4BsiB,CAAAA,EAAAA,EAAAA,GAAAA,CAAsBA,CAAC,CAAEC,MAAOC,GAAAA,EAAa,GAAzExiB,IAAAA,CACFmiB,EAAuBM,CAAAA,EAAAA,GAAAA,EAAAA,CAAgBA,CAC3CC,OAAAA,EAAAA,KAAAA,EAAAA,EAAmBC,cAAc,GAAI,EAAE,CACvCC,GAAAA,EAAkCA,EAE9BC,EAAwB,SAACvzB,CAAAA,EACzB,CAAC,KAAM,KAAK,CAACiH,QAAQ,CAAClF,IAG1BoU,EAAOnW,EACT,GAJuC,KAMvC,OAAI0Q,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMrD,KAAAA,GAANqD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAakgB,MAAAA,GAAblgB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB8iB,QAAQ,CAACprB,MAAM,IAAK,GAAG,KACvCsI,EAAAA,KAAAA,EAAW,QAAXA,EAAAA,EAAMrD,KAAAA,GAANqD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAakgB,MAAAA,GAAblgB,KAAAA,IAAAA,EAAAA,KAAAA,EAA6B,OAA7BA,GAAAA,EAAqB8iB,QAAAA,GAArB9iB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAA+B,CAAC,KAAhCA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoC4B,KAAK,CAACjK,GAAG,CAAC,SAAC4I,CAAAA,EACpD,MAAO,CACLvM,MAAOuM,EAAKvM,KAAK,CACjBuM,KAAM,mBAAKA,GAAAA,CAAM0F,QAASR,IAC1B0Q,QAAS5V,EAAKwiB,cAAc,CAACprB,GAAG,CAAC,SAACqrB,CAAAA,EAChC,MAAO,CAAEhvB,MAAOgvB,EAAchvB,KAAK,CAAEuM,KAAM,mBAAKyiB,GAAAA,CAAe/c,QAASR,GAAS,CACnF,EACF,CACF,GACSzF,OAAAA,EAAAA,KAAAA,EAAW,QAAXA,EAAAA,EAAMrD,KAAAA,GAANqD,KAAAA,IAAAA,EAAAA,KAAAA,EAAmB,QAAnBA,EAAAA,EAAakgB,MAAAA,GAAblgB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB8iB,QAAQ,CAACprB,MAAAA,GAAUsI,OAAAA,EAAAA,KAAAA,EAAW,QAAXA,EAAAA,EAAMrD,KAAAA,GAANqD,KAAAA,IAAAA,EAAAA,KAAAA,EAAmB,QAAnBA,EAAAA,EAAakgB,MAAM,GAAnBlgB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB8iB,QAAQ,CAACprB,MAAAA,EAAS,GAAG,KACpFsI,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMrD,KAAAA,GAANqD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAakgB,MAAAA,GAAblgB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAqB8iB,QAAQ,GAA7B9iB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA+BijB,OAAO,CAAC,SAACzO,CAAAA,EAC7C,OAAOA,EAAQ5S,KAAK,CAACjK,GAAG,CAAC,SAAC4I,CAAAA,EACxB,MAAO,CACLvM,MAAOuM,EAAKvM,KAAK,CACjBuM,IAAAA,EAAMA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMrI,GAAAA,GAANqI,CACFA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMrI,GAAG,CAAC3B,EAAVgK,MAAkB,CAAC,iBACjB,mBACK2hB,GAAiB3hB,EAAMlP,EAAU8wB,IAAAA,CACpClc,QAAS4c,IAEX,mBAAKtiB,GAAAA,CAAM0F,QAASR,IAE1B0Q,EADI,MACK5V,EAAKwiB,cAAc,CAACprB,GAAG,CAAC,SAACqrB,CAAAA,EAChC,MAAO,CAAEhvB,MAAOgvB,EAAchvB,IAFvBuM,CAE4B,CAAEA,KAAM,mBAAKyiB,GAAAA,CAAe/c,QAASR,GAAS,CACnF,EACF,CACF,EACF,SAEJ,EAEaga,GAAS,SAACruB,CAAJquB,EACjB,IF3G0CC,ME2GlBpe,EAAAA,CAAAA,EAAAA,CF3GyD,CE2GzDA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,MAA/B/R,EAAiB+R,CAAAA,CAAAA,EAAAA,CAAX4hB,EAAW5hB,CAAAA,CAAAA,EAAAA,CAClBrH,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,GACajD,EAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAAAA,EAATA,EAAjC8H,MAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAS,OAAM4b,EAAkB1jB,EAAlB0jB,MAAAA,CAAQwI,EAAUlsB,EAAVksB,KAAAA,CACzB,EAAqB/xB,EAAnBgyB,cAAAA,CACDjhB,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,YAAfA,CAAAA,EAAAA,CAC0ChL,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,GAArDC,EAA8CD,EAA9CC,eAAAA,CAAiBksB,EAA6BnsB,EAA7BmsB,MAAAA,CAAQrF,EAAqB9mB,EAArB8mB,KAAAA,CAAO/nB,EAAciB,EAAdjB,SAAAA,CAEUuP,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAYA,CAACzG,EAAQijB,IAA/Drc,EAA0CH,EAA1CG,SAAAA,CAAWC,EAA+BJ,EAA/BI,UAAAA,CAAYF,EAAmBF,EAAnBE,MAAAA,CAAQD,EAAWD,EAAXC,MAAAA,CAGjC6d,GFnHAC,EAAaC,MEmHFC,GF7EVD,CAAiD,EACxD,IAAME,EAAkC,IAAlBC,EAAOjsB,MAAM,CAC7B6rB,EE2EsCE,CFnHSE,EAwClCxmB,GAAAA,EAAAA,CAAuBA,CAACwmB,GAE3C,GAAID,GAaF,CAAOtxB,KAAAA,EAAAA,GAF2BA,EAXcmxB,CAA7BK,EAW6B,YAEhD,SAAOxxB,EAAAA,CAAI,GAAM,UACP,UACV,aAAcA,GACd,UAAWA,GACX,cAAeA,EAjB8C,CAC7D,MAAgBuxB,EAAVE,QAAUF,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAAQ,CAAC,EAAE,GAAXA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAaE,OAAO,CAEpC,MACE,YAAC,GAAW,OAARA,GAAYN,EAEpB,CAEA,OAAOA,CACT,EApDiBO,SAQRA,CAA8C,EACrD,GAAI,CAACpE,EAT4BA,MAUxB,EAAE,CAGX,GAJmB,CAIbiE,EAAS,IAAII,IAEd,uBAAL,QAAK,IAAcrE,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAd,4BAA4B,CAA5B,IAAMsE,EAAN,QAKH,GAJA,QAAIA,GAAAA,EAAKzjB,IAAAA,GAALyjB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWrf,4BAA4B,GAAvCqf,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyCH,OAAAA,EAAS,CACpDF,EAAOM,GAAG,CAACD,EAAKzjB,IAAI,CAACoE,4BAA4B,CAACkf,OAAO,EAGvDvxB,MAAMC,OAAO,CAACyxB,EAAK7N,OAAO,EAAG,KAC1B,uBAAL,QALE6N,EAAAA,EAKG,IAAqBA,EAAK7N,OAAO,oBAAjC,4BAAmC,CAAnC,IACC+N,EAAAA,EADKA,EAAN,QACH,QAAIA,GAAAA,EAAY3jB,IAAAA,GAAZ2jB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAkBvf,4BAAAA,GAAlBuf,KAAAA,MAAAA,KAAAA,EAAAA,EAAgDL,OAAAA,EAAS,CAC3DF,EAAOM,GAAG,CAACC,EAAY3jB,IAAI,CAACoE,4BAA4B,CAACkf,OAAO,CAEpE,WAJK,yEAKP,CACF,WAZK,yEAcL,OAAOvxB,MAAM2c,IAAI,CAAC0U,GAAQhsB,GAAG,CAAC,SAACksB,CAAAA,QAAa,CAAEA,QAAAA,CAAQ,GACxD,IEqFyBzB,GAAkB,CAAE7xB,UAAW,KAAMc,SAAU0N,EAAQ0G,OAAAA,CAAO,KFjH9E0e,SDROA,CACyB,MACvCC,EAAAA,MCM+BD,IDN/BC,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAqD,CAAC,EAEtD,GAAK1E,CAAD,CAIJ,YAJmB,CAIZA,EAAAA,KAAAA,EAAAA,EACH/nB,GAAG,CAAC,SAACqsB,CADFtE,EAEH,GACEsE,CAAAA,QAAAA,EAAAA,EAAKzjB,IAAI,GAATyjB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAWrf,4BAAAA,GACX,CAAC0f,CAAAA,EAAAA,GAAAA,EAAAA,CAAsBA,CAACD,EAAAA,QAAuBJ,EAAAA,EAAKzjB,IAAI,GAATyjB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAWrf,4BAA4B,EAEtF,CADA,MACO,KAGT,IANEqf,EAC+CA,EAM/CA,EAAAA,EADI7N,EAUJ,QATA6N,EAAAA,QAAAA,EAAAA,EAAK7N,OAAAA,GAAL6N,KAAAA,MAAAA,KAAAA,EAAAA,EAActtB,MAAM,CAAC,SAAC4tB,CAAAA,MACfA,EAMHA,SANiB,IAAf,IAACA,EAAAA,EAAU/jB,IAAAA,GAAV+jB,KAAAA,IAAAA,IAAAA,EAAgB3f,4BAA4B,EAI1C0f,CAJ4C,EAI5CA,GAAAA,EAAAA,CAAsBA,CAC3BD,EAAAA,QACAE,EAAAA,EAAU/jB,IAAAA,GAAV+jB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB3f,4BAA4B,CAEhD,KATAqf,KAAAA,IAAAA,EAAAA,EASM,EAAE,CAEJO,EAA0B,WAC3BP,GAOL,OAJI7N,EAAQze,MAAM,EAAE,CAClB6sB,EAAWpO,OAAO,CAAGA,CAAAA,EAGhBoO,CACT,GACC7tB,MAAM,CAAC,SAACstB,CAAAA,QAAS,CAAC,CAACA,GACxB,EChCkCtE,EAAc6D,IEoHxCiB,EACJvqB,GAAY9C,EACR,IAAW,OAAP4H,EAAO,oCACX,IAAW,OAAPA,EAAO,mBAEjBuC,EAAAA,SAAe,CAAC,eAKMrL,EAAAA,EACEA,EAAAA,EACGA,EAAAA,EACFA,EAPvBitB,EACEjtB,EACI,CACEwH,KAAMgnB,CAAAA,EAAAA,EAAAA,EAAAA,CAAiBA,CAAC,CAAExuB,UAAAA,CAAU,GACpC+gB,WAAY/gB,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWE,CAAXF,MAAkB,GAAlBA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAoB4B,OAAAA,GAApB5B,KAAAA,MAAAA,KAAAA,EAAAA,EAA6B8B,QAAAA,GAAY,GACrD+e,aAAc7gB,OAAAA,EAAAA,KAAAA,EAAkB,QAAlBA,EAAAA,EAAWE,CAAXF,MAAWE,GAAXF,KAAAA,MAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAoB4B,OAAAA,GAApB5B,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6B6B,WAAW,GAAI,EAC1D4sB,gBAAiBzuB,OAAAA,EAAAA,KAAAA,EAAkB,OAAlBA,GAAAA,EAAWE,CAAXF,MAAWE,GAAXF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAoB4B,OAAAA,GAApB5B,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6B0uB,cAAAA,GAAkB,GAChE/sB,cAAe3B,OAAAA,EAAAA,KAAAA,EAAkB,QAAlBA,EAAAA,EAAWE,CAAXF,MAAWE,GAAXF,KAAAA,MAAAA,KAAAA,EAAAA,EAAoB2B,aAAAA,QAAiBoc,CACtD,OACAA,EAER,EAAG,CAAC/d,EAAU,EAEd,IAAM6hB,EAAkBxW,EAAAA,WAAiB,IACvC,iBAAOsjB,CAAAA,oEACDA,EAAAA,KAAAA,EAAAA,EAAM5kB,IAAAA,EAAN4kB,MAAU,MACZ,SAAM5G,EAAM4G,GAAMzF,EAAAA,GAAK,CAAC,SAACjf,CAAAA,EACvBiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,SAAUC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAClB,GAAQ,kBAC3C,WAFA,SAGIkjB,GAEE,CAAC3d,EADmBof,CAAAA,EAAAA,EAAAA,EAAAA,CAAqBA,CAACzB,CAD5B,KAGhBxd,IACIwd,GAAgB5nB,CAFQ,MAED5J,QAAQ,CAACkzB,MAAM,CAAC1B,iCAInD,YAbOwB,CAAAA,mCAcP,CAAC5G,EAAOoF,EAAgB3d,EAAQG,EAAW,EAGvC+Q,EAAYrV,EAAAA,WAAiB,SAAC,kEAClC,SAAM+hB,IACHnE,IAAI,CAAC,WACJ,GAAIvE,EAAOpkB,QAAQ,CAAC,WAAY,CAC9B,IAAMwuB,EAAiB,IAAmB,aAAfhmB,EAAAA,EAAU,KAAK,UAAfA,GAC3BvD,OAAO5J,QAAQ,CAACkzB,MAAM,CAACC,EACzB,CAEA,GAAIpK,EAAOpkB,QAAQ,CAAC,aAAc,CAChC,IAAMyuB,EAAsB,IAAmB,aAAfjmB,EAAAA,EAAU,KAAK,UAAfA,KAChCvD,OAAO5J,QAAQ,CAACkzB,MAAM,CAACE,EACzB,CAEA,GAAI,uBAAuB1vB,IAAI,CAACqlB,GAAS,CACvC,IAAMsK,EAAc,gBAAgB3vB,IAAI,CAACqlB,GACrC,IAAmB,aAAf5b,EAAAA,EAAU,KAAK,UAAfA,gBACJmmB,CAAAA,EAAAA,GAAAA,EAAAA,CAAmBA,CAACvK,EAAQwI,EAAOpkB,GACvCvD,OAAO5J,QAAQ,CAACkzB,MAAM,CAACG,EACzB,CACF,EACC9F,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EACNiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,SAAUC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAClB,GAAQ,mBAC3C,kBArBF,eAsBF,GAAG,CAACya,EAAQ5b,EAAQskB,EAAQF,EAAM,EAElC,MACE,iCACE,UAACgC,GAASA,CACRxF,EADQwF,YACO,GACfxoB,MAAO,CACLzE,IAAKssB,EACL/mB,KAAM0E,EAAE,gBACRiH,KAAM,KACNnD,QAASR,CACX,EACAoS,aAAc,CACZ9c,QAAS,CACPqqB,oBAAoB,EACpBC,eAAgB,CACdntB,IAAK,GAAkB6G,MAAAA,CAAfkjB,IAAsB,OAAPljB,EAAO,2CAChC,EACAumB,eAAgB,CACdptB,IAAK,GAAkB6G,MAAAA,CAAfkjB,IAAsB,OAAPljB,EAAO,+BAChC,EACAwmB,SAAU,CACRrtB,IAAK,GAAkB6G,MAAAA,CAAfkjB,IAAsB,OAAPljB,EAAO,mCAChC,CACF,CACF,EACA0C,SAAS,EACTie,aAAc4D,EACd3M,UAAWA,EACXmB,gBAAiBA,EACjBvoB,KAAMA,IAER,UAACsW,EAAAA,EAASA,CAAAA,CAACC,UAAWH,EAAWI,QAASL,EAAQE,WAAYA,MAGpE,EAAE,oCC/LI4f,GAAe,gBACnBn0B,EAAAA,EAAAA,QAAAA,CACAo0B,EAAAA,EAAAA,KAAAA,CAAAA,EAAAA,EACAC,kBAAAA,CACAT,CADAS,CACAT,EAAAA,WAAAA,CAGEQ,CAAU,2CACA,oCAAVA,CAAU,GACV,CACAE,EAAAA,GAAAA,CAAAA,CAAqBA,CAACC,GAAAA,CAAKA,CAACC,UAAU,SAEpCJ,EAAAA,KAAAA,EAAAA,EAAOlvB,OAAPkvB,CAAe,CAAC,qCAClBE,CAAAA,EAAAA,GAAAA,CAAAA,CAAqBA,CAACC,GAAAA,CAAKA,CAACE,cAAc,EAG5C,IAAI5tB,EAAM+sB,EACNA,IAdJS,KAAAA,IAciB,GAdI,IAgBjBxtB,QAAM+sB,EAAAA,KAAAA,EAAAA,EAAatb,OAAO,CAAC,IAAa,CAAlCsb,KAAkC,CAAT5zB,EAAS,KAAK,SAE3C6G,GACFsD,EADO,KACA5J,QAAQ,CAACkzB,MAAM,CAAC,IAAIvoB,IAAIrE,EAAK7C,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,kBAG9C,EAwGA,OAtGqB,WAsGN0wB,KA9EwBC,EAEAA,EAMpB/vB,EA/BjBgwB,CAqGyBF,CArGzBE,CAqG0B,CArG1BA,8BAAAA,CAIM,EAAQ/jB,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,aAArBC,CAAAA,CACF,EAAiB+jB,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,GAA1BC,UAAAA,CACF90B,EAAW0F,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,GACGG,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,GAA9BkvB,EAAuBlvB,EAAvBkvB,OAAAA,CAASnwB,EAAciB,EAAdjB,SAAAA,CACXe,EAASC,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAClBgD,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,GAM8Ce,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAA5EorB,EAAmEprB,CAAAA,CAAAA,EAAAA,CAApCqrB,EAAoCrrB,CAAAA,CAAAA,EAAAA,CAExEkC,EAAAA,CAAAA,EAAAA,GAAAA,EAAAA,CAAuBA,CALc,eAOnCkpB,EAAgCtG,GAAAA,EAAMA,CAACwG,EAAE,CAAGxG,GAAAA,EAAMA,CAACC,OAAO,EAHtD5iB,EACND,EADMC,QAAAA,CAA2CC,EACjDF,EADiDE,SAAAA,CAM7CmpB,EACJC,GAAmCT,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAA8BzoB,MAAAA,GAA9ByoB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAsCxrB,WAAW,MAAO,IACvFksB,EACJD,GAAmCT,OAAAA,EAAAA,KAAAA,EAAoC,QAApCA,EAAAA,EAA8BzoB,MAAAA,GAA9ByoB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAsCxrB,WAAW,MAAO,IAEvFmsB,EAAyC,CAC7Cp2B,UAAW,KACX4F,QAAS,yBACJF,EAAAA,KAAAA,EAAAA,EAAWE,OAAO,GACrBywB,CADG3wB,UACQ,OAAEA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWE,CAAXF,MAAWE,GAAXF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB2wB,WAAW,EAEhD,EAYMC,EAAgB5sB,EAClBuB,OAAOsrB,IAAI,CAACC,UAAUC,KAAKC,SAAS,CAACN,KACrC,cAEJ,MACE,UAAC1lB,MAAAA,CAAIL,UAAU,+BACb,WAACsmB,GAAAA,EAAQA,CAAAA,CACPC,SAjB0C,CAiBhCC,QAjBiCC,CAAAA,EAC/C,IAAoBA,EAIPrwB,EAJPiuB,EAAcoC,QAAAA,QAAAA,EAAAA,KAAAA,EAAAA,EAAUnvB,GAAAA,GAAVmvB,IAAAA,CAAAA,IAAAA,EAAAA,EAAiB,GACrC7B,GAAa,CACXn0B,SAAAA,EACAg2B,SAAAA,EACA5B,MAAO,WAAIzuB,QAAAA,QAAAA,EAAAA,KAAAA,EAAAA,EAAQ+H,MAAAA,EAAR/H,CAAAA,KAAAA,IAAAA,EAAAA,EAAkB,MAAsB,aAAfA,EAAAA,KAAAA,EAAAA,EAAQ2jB,MAAM,EAAd3jB,YACpCiuB,CACF,EACF,EAUM/D,SAAU,iBAAMyE,CAAAA,EAAAA,GAAAA,CAAAA,CAAqBA,CAACC,GAAAA,CAAKA,CAAC0B,gBAAgB,GAE5DC,cAAc,SACdC,cAAeb,EACft1B,SAAUA,EACVo2B,6BAA6B,EAC7BC,gCAAgC,EAChCC,gBAAgB,YAEhB,UAACC,GAAAA,EAAgBA,CAAAA,CACfzB,WAAYA,EACZ0B,UAAU,EACVC,UAAW,GAAY1B,EAAQ2B,QAAQ,IAAO,eAC9CC,gBAAiB3yB,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,uBACrBhE,SAAUA,IAEX,EA0BG,KAzBF,iCACE,UAAC42B,GAAAA,EAAaA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACZ52B,SAAUA,EACV62B,mBAAmB,EACnBxL,OAAQ,WAEF+J,GAAiCH,EAAiC,GACxE,GACKI,EAA+B,CAAEyB,cAAe,EAAK,EAAI,CAAC,IAC/DC,gBAAiB,WAEX5B,GAA8BxW,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAACqY,eAC/C,EACAC,aAAc,YAER9B,GAAgCE,CAAAA,GAClC1W,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,CAACuY,eACf,KAEF,UAACC,GAAAA,EAAaA,CAAAA,CACZC,SAAU,CAAEC,IAAK,EAAGC,IAAK,EAAG,EAC5BC,sBAAuBzmB,EAAE,qCAE3B,UAAC0mB,GAAAA,EAAoBA,CAAAA,CAAAA,QAvCpBhC,IA6Cb,EC/JO,IAAMiC,GAAgB,CAC3BC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,mBAAmB,EACnBC,gBAAgB,EAChBC,WAAW,EACXC,iBAAiB,EACjBjG,eAAgB,IAClB,EAAE,CAEiC,kBAC9B0F,IAAAA,CACHO,iBAAiB,IAGW,mBACzBP,IAAAA,CACHI,mBAAmB,EACnBG,iBAAiB,IACjB,CAE2B,kBACxBP,IAAAA,CACHQ,kBAAkB,EAClBD,iBAAiB,IACjB,gBGEWE,GAAmD,oBFpBtD5O,EAAQ5b,EACVyqB,EAC8BvuB,EAA7BwuB,EAAYC,EACbC,ECN0BxsB,IAAdE,ICwBlBosB,EAAAA,EAAAA,UAAAA,CACA7yB,EAAAA,EAAAA,QAAAA,CAAAA,EAAAA,EACAgzB,MAAAA,CAEMxG,CAFNwG,EFvBQjP,EAA0B1jB,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,IEyBX4yB,KFzBW5yB,CAASA,IAAnC0jB,GEyB4BkP,GFzB5BlP,GAAQ5b,KAAAA,KAAR4b,EAA0B1jB,EAAlB8H,MAAAA,EAAS,SEyBY0qB,GFxBI,IAAqB9O,MAAAA,OAAjB5b,EAAAA,EAAU,MAAc,OAAP4b,EAAjB5b,GACT9D,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAC,OAATA,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA,EAAAA,GAChBiB,CAAAA,EAAAA,GAAAA,EAAAA,CAAcA,GAElC7E,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,oBACOyyB,UAAAA,CAAAA,EAAf,uBACQC,EAOAC,oBACAC,EAPAC,mCAAqC,OADrCH,EAAyB,qBAAqBz0B,IAAI,CAACk0B,GACd,GAAMW,CAAAA,EAAAA,EAAAA,EAAAA,CAAeA,CAAC,CAC/DprB,OAAAA,EACAjK,KAAM,mCACNs1B,KAAM,0BACNT,YAAAA,CACF,kBACMK,EAAqBE,EANgB,OAMqBnrB,EAAS,KAOzE2qB,EANuBW,CAAAA,EAAAA,GAAAA,EAAAA,CAAcA,CACnCN,EACI,IAAuB,OAAnBC,EAAmB,oCACvBR,UAIR,IAhBeM,KAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,SAAAA,EAAAA,EAAAA,KAAAA,CAAAA,IAAAA,CAAAA,cAmBjB,EAAG,CAACN,EAAgBzqB,EAAQ4qB,EAAY,EAEjCF,GEDD,EAAaxyB,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAApB0jB,MAAAA,CAEFsL,EADwCqE,CD9BtCltB,EAAwBD,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,CAAuBA,CAAC,KC8BWmtB,UD9BKvK,GAAAA,EAAMA,CAACwG,EAAE,GAAzEnpB,QAAAA,GAAwBD,EAAdE,SAAAA,CACZktB,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAAC,sBACxB,CAAEC,kCAAmCrtB,GAAYC,OAAAA,EAAAA,KAAAA,EAAAA,EAAWE,MAAAA,IAAW,CAAtBF,IAA6BktB,CAAS,GC4BtFE,iCAAAA,EAE+B9P,EAAOpkB,QAAQ,CAAC,gCACK,aAAKuyB,GAPjEc,KAAAA,IAAAA,CAO8Ed,CAPrE,CAO0Ec,EAPzE,GAOFZ,EAAoD,EAApDA,QAAAA,CAAUC,EAA0C,EAA1CA,SAAAA,CAAWG,EAA+B,EAA/BA,SAAAA,CAAWC,EAAoB,EAApBA,eAAAA,CAElCqB,EAAmBppB,EAAAA,OAAa,CAAC,kBACrC,EAGO,EAHH,CAGG,MAHS,CAGRme,GAAMA,CAAC2D,SAAD3D,MAAiB2D,IAFtB,IAGX,EAAG,CAAC6F,EAAW7F,EAAe,EAE9B,MACE,iCACGsH,EACD,WAACC,OAAAA,WACEtB,GACC,UAACtD,GAAYA,CAACE,MAADF,yBAAiCE,IAE/C+C,GAAY,UAACjpB,EAAKA,CAAAA,EAAAA,CACnB,UAACkB,MAAAA,UAAKrK,OAEPwyB,GAAa,UAAC/nB,EAAMA,CAAAA,KAG3B,EAAE,eAHyBA,SEpD3B,GAAgE,WAChE,QAD0B,GAE1B,EAFgE,EAE5D,CAA2B,MCN/B,MACA,QACA,CAkDA,mBACA,gCACA,OAEA,2BACA,oBACA,yFACA,kBACA,gBACA,kBAAuB,OAA2B,IAClD,QACA,EACA,CACA,4CACA,gCACA,KACO,CACP,EAEA,CAAG,EACH,qBAAqB,uCAA2C,IAChE,eACA,mCACA,KACA,2CACA,IAAgB,oBAA4C,EAC5D,YACA,KACA,MACA,CAAS,CACT,OAEA,UACA,EACA,CACA,0CACA,8BACA,WACA,YACA,MACA,CAAS,CAGT,CACA,KACA,OACA,kBACA,GAGA,MACA,iCACA,+BAAiC,EAAgB,CACjD,CACA,CAAG,CACH,CCtGA,SACA,WACA,YAAc,CACd,QACA,cACC,IACD,MAAiB,SAAc,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,GAAO,GAAW,CAAX,OAAW,EAAqB,YAE/C,YACA,EACA,mBAGA,CACA,CAAG,UACD,WAAe,MACjB,IACM,GAAO,GAAW,CAAX,OAAW,EAAyB,YACjD,UAEA,CAAG,QACH,CACA,cC9BkC0gB,GAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,GAAhCliB,GAA0BkiB,GAA1BliB,OAAAA,CAA0BkiB,GAAAA,GAAjBE,QAAiBF,GAALE,CAAZA,CAGjB,SAAS2I,KAGP,MAFA1tB,CAAAA,EAAAA,GAAAA,CAAAA,CAAcA,GAEP,IACT,CA2JA,OAAe2tB,CAAAA,EAAAA,EAAAA,EAAAA,CAAkBA,CAzJnB,MAyJ0BC,EAAC,CAzJ3B,SAAGC,EAAAA,EAAAA,SAAAA,CAAWC,EAAAA,EAAAA,SAAAA,CAClBvB,EAA2EuB,EAA3EvB,UAAAA,CAAY7zB,EAA+Do1B,EAA/Dp1B,OAAAA,CAASg0B,EAAsDoB,EAAtDpB,MAAAA,CAAQhf,EAA8CogB,EAA9CpgB,kBAAAA,CAAoBqgB,EAA0BD,EAA1BC,qBAAAA,CACnDj0B,EAASC,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GACxBi0B,CAAAA,EAAAA,EAAAA,EAAAA,CAAmBA,CAACl0B,EAAOlF,QAAQ,CAXpB,CAWsBkwB,aAAQA,EAE7C,IAAY9f,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,YAAfA,CAAAA,EAAAA,CACNipB,EAAel0B,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,GAAG8H,MAAM,EAAI/H,EAAO+H,MAAM,EAAI,KACtDqsB,EAAajxB,CAAAA,EAAAA,EAAAA,OAAAA,CAAOA,CAAC,iBAAMkxB,CAAAA,EAAAA,GAAAA,EAAAA,CAAIA,IAAI,EAAE,EACrCC,EAAmBnxB,CAAAA,EAAAA,EAAAA,OAAAA,CAAOA,CAC9B,iBACEoxB,CAAAA,EAAAA,GAAAA,EAAAA,CAAeA,CAAC,CACd1yB,QAASJ,EAAAA,CAAkBA,CAACI,OAAO,CACnC2yB,SAAS,EACTC,WAD2B,GACZT,EAAUS,aAAa,CACtCN,aAAAA,EACAC,WAAAA,CACF,IACF,CAACA,EAAYD,EAAcH,EAAUS,aAAa,CAAC,EAGrDp0B,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACR,IAAMq0B,EAAsD,SAACxzB,CAAAA,CAAAA,CAAAA,EAEvD,CAFsEyzB,EAAAA,OAAAA,EAE1D,iEAAiEr2B,IAAI,CAAC4C,IAEpFsD,EAF0F,KAEnF5J,QAAQ,CAACkzB,MAAM,CAAC5sB,EAE3B,EAIA,OAFAlB,EAAOoB,MAAM,CAACC,EAAE,CAAC,mBAAoBqzB,GAE9B,WACL10B,EAAOoB,MAAM,CAACE,GAAG,CAAC,mBAAoBozB,EACxC,CACF,EAAG,CAAC10B,EAAO,EAGXK,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACR,IAAMa,EAAMlB,EAAO2jB,MAAM,CACnBiR,EAAc,wCACpB,GAAIA,EAAYt2B,IAAI,CAAC4C,GAAM,CACzB,IAAM2zB,EAAe,IAAItvB,IAAIrE,EAAK4zB,CAAAA,EAAAA,GAAAA,EAAAA,CAAUA,IAC5CpzB,OAAOsU,IAAI,CAAChW,EAAOmsB,KAAK,EAAE3Q,OAAO,CAAC,SAACngB,CAAAA,EAC7Bu5B,EAAYt2B,IAAI,CAACjD,IACnBw5B,EADyB,YACA,CAACE,MAAM,CAAC15B,EAErC,GACA2E,EACG2S,OAAO,CAACkiB,OAAc7X,EAAW,CAAE2X,SAAS,CAAK,EACjDxM,CAAAA,KAAK,CAAC,kBAAM7P,QAAQpP,KAAK,CAAC,0BAAkD,OAAxB2rB,EAAa9D,QAAQ,MAC9E,CAGF,EAAG,EAAE,EAGLiE,CAAAA,EAAAA,EAAAA,EAAAA,CAAYA,CAAC,SACXC,QAASC,GAAAA,EAAYA,CACrBC,eAAgB,IAChBC,MAAM,SAAE,kEAEN,MADI,aAAa92B,IAAI,CAACuK,KAAUyP,QAAQ+c,GAAG,CAAC,0BAA2BnnB,KAAKonB,GAAG,GAAGvE,QAAQ,IAC1F,GAAMqD,EAAW/H,MAAM,kBAAvB,eACF,IACI,aAAa/tB,IAAI,CAACuK,IAClB,CACE0sB,SAAU,WACRjd,QAAQ+c,GAAG,CAAC,4BAA6BnnB,KAAKonB,GAAG,GAAGvE,QAAQ,GAC9D,EACAyE,SAAU,WACRld,QAAQ+c,GAAG,CAAC,4BAA6BnnB,KAAKonB,GAAG,GAAGvE,QAAQ,GAC9D,CACF,EACA,CAAC,IAGP,IAAM0E,KAAe,uBAEUz1B,EAArB+tB,EAU0B/tB,EAA1BguB,EAWEhuB,EADFiuB,oEArBJjuB,EAAAA,KAAAA,EAAAA,EAAQ2jB,MAAM,CAACpkB,CAAfS,OAAuB,CAAC,wBACpB+tB,EAAiB,IAA2B,OAAvB/tB,QAAAA,QAAAA,EAAAA,KAAAA,EAAAA,EAAQ+H,MAAAA,EAAR/H,CAAAA,KAAAA,IAAAA,EAAAA,EAAkB,KAAK,8BAEhD,gCAAMA,EAAOqH,IAAI,CAAC0mB,kBAAlB,sCAGAvpB,OAAO5J,QAAQ,CAACkzB,MAAM,CAACC,2BAIvB/tB,EAAAA,KAAAA,EAAAA,EAAQ2jB,MAAM,CAACpkB,CAAfS,OAAuB,CAAC,0BACpBguB,EAAsB,IAA2B,OAAT,OAAdhuB,GAAAA,QAAAA,KAAAA,EAAAA,EAAQ+H,EAAR/H,IAAc,GAAdA,KAAAA,IAAAA,EAAAA,EAAkB,KAAK,gCAErD,gCAAMA,EAAOqH,IAAI,CAAC2mB,kBAAlB,sCAGAxpB,OAAO5J,QAAQ,CAACkzB,MAAM,CAACE,gBAW3B,MAPI,uBAAuB1vB,IAAI,CAAC0B,EAAO2jB,MAAM,GAAG,CACxCsK,EAAc,gBAAgB3vB,IAAI,CAAC0B,EAAO2jB,MAAM,EAClD,IAA2B,OAAvB3jB,QAAAA,QAAAA,EAAAA,KAAAA,EAAAA,EAAQ+H,MAAAA,EAAR/H,CAAAA,KAAAA,IAAAA,EAAAA,EAAkB,KAAK,0BAC3BkuB,CAAAA,EAAAA,GAAAA,EAAAA,CAAmBA,CAACluB,EAAO2jB,MAAM,CAAE3jB,EAAOmsB,KAAK,CAAEnsB,EAAO+H,MAAM,EAElEvD,OAAO5J,QAAQ,CAACkzB,MAAM,CAACG,IAEzB,GAAO,CAAC,KACV,YA7BMwH,mCA+BN,MACE,iCACE,WAACC,IAAIA,WAAAA,CACH,SAACC,OAAAA,CAAKlvB,KAAK,mBAAmB+C,QAAQ,iBACtC,UAACmsB,OAAAA,CAAKlvB,KAAK,WAAW+C,QAAQ,0CAC9B,UAAC9O,QAAAA,UAAOyQ,EAAE,kBACT8oB,EAAwB,KACvB,UAAC1qB,OAAAA,CAAK+D,IAAI,YAAYF,KAAM,UAAG6d,IAAYA,MAAAA,OAAAA,EAAGjrB,KAAAA,EAAAA,EAAQ+H,MAAM,EAAd/H,MAAkC,OAAjBA,EAAAA,KAAAA,EAAAA,EAAQlF,QAAQ,CAAC,OAElF,UAACyO,OAAAA,CACC+D,IAAI,YACJsoB,SAAS,YACTxoB,KAAM,UAAG6d,GAAa,MAAmB,QAApBA,KAAKjrB,EAAAA,KAAAA,EAAAA,EAAQ2jB,MAAM,EAAd3jB,CACtB,aAEN,UAACuJ,OAAAA,CAAK+D,IAAI,YAAYsoB,SAAS,KAAKxoB,KAAM,UAAG6d,GAAa,MAAmB,QAApBA,KAAKjrB,EAAAA,KAAAA,EAAAA,EAAQ2jB,MAAM,EAAd3jB,QAC7D4T,EAAAA,KAAAA,EAAAA,EAAoBjT,GAAG,CAAC,SAACtG,CAAAA,MAAzBuZ,EACC,UAACrK,OAAAA,CACC+D,IAAI,YACJsoB,SAAUv7B,EACV+S,KAAM,GAAkB/S,MAAAA,CAAf4wB,IAAYA,MAAAA,CAAG5wB,GAA0B,GAA7B4wB,GAA6B,OAAfjrB,EAAAA,KAAAA,EAAAA,EAAQ2jB,MAAM,EAAd3jB,CAC9B,kBAA2B,OAAT3F,SAI7B,UAACw7B,EAAAA,EAAYA,CAAAA,CAACzB,WAAYA,EAAY0B,SAAUL,WAC9C,UAACM,GAAAA,EAAmBA,CAAAA,CAAC9wB,OAAQqvB,WAC3B,WAAC0B,GAAiBA,CAACC,MAAOjC,EAAUkC,KAAlBF,UAAiC,WACjD,UAACr2B,GAAAA,CAAeA,CAAAA,CAACE,YAAY,OAAEjB,EAAAA,KAAAA,EAAAA,EAASiB,SAATjB,GAAqB,UAClD,WAACqL,MAAAA,CAAImB,GAAG,iBAEe,oCAApBpL,EAAOlF,QAAQ,CAAyC,UAAC84B,GAAAA,CAAAA,GAAqB,KAC/E,UAACuC,EAAAA,EAAgBA,CAAAA,UACf,UAAC5D,GAAMA,CAAC6D,EAAD7D,QAAYyB,EAAUoC,SAAS,CAAE3D,WAAYA,EAAYG,OAAQA,WACtE,UAACmB,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAcC,aAKvB,UAACqC,GAAkBA,CAACC,eAAe,EAAOC,eAAe,yBAMrE,kDC1LO,IAAM3H,EAAQ,CACnB4H,mBAAoB,0BACpBC,eAAgB,qBAChBC,gBAAiB,sBACjBC,eAAgB,qBAChBC,iBAAkB,uBAClBC,6BAA8B,qCAC9BC,2BAA4B,iCAC5BjI,WAAY,eACZC,eAAgB,kBAChBiI,kBAAmB,sBACnBC,iBAAkB,qBAClB1G,iBAAkB,0BAClB2G,oBAAqB,2BACrBC,gBAAiB,WACjBC,yBAA0B,kCAC1BC,yBAA0B,kCAC1BC,yBAA0B,kCAC1BC,yBAA0B,kCAC1BC,oBAAqB,2BACrBC,yBAA0B,2BAC1BC,wBAAyB,gCACzBC,mBAAoB,wBACtB,EAAW,wICfExC,EAAe,KAAK,EAEb,IAFmB,KAGrCyC,CAAAA,CACAC,CAAAA,EAEA,OAAO,IAAIC,EAAAA,EAAUA,CAAC,CACpBh2B,QAASxD,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,YACby5B,aAAcplB,EAAAA,CAASA,CACnBrU,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,0BACH2D,EAAQ3D,GAAG,CAAC8D,CAALH,qBAA2B,CACvC+1B,YAAarlB,EAAAA,CAASA,CAClBrU,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,yBACH2D,EAAQ3D,GAAG,CAAC4D,CAALD,oBAA0B,CACtCJ,MAAOvD,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,2BACX25B,QAASL,EACTM,QAASL,CACX,EACF,EAAE,EAEWM,iBAAuB,wBAASC,EAAYC,EAAUC,EAG3Dt0B,EAeFkkB,QAMMjf,MAGDE,2CA1BT,GAD2CivB,EAAAA,EAAAA,UAAAA,CAAYC,EAAAA,EAAAA,QAAAA,CAAUC,EAAAA,EAAAA,WAAAA,CAC7D,CAAC3lB,EAAAA,CAASA,CAAE,MAAM4lB,MAAM,qDAEtBv0B,EAAU,CACdw0B,OAAQ,OACRC,YAAa,cACbC,QAAS,CACP,mBAAoB,KACpB,eAAgB,kBAClB,EACApd,KAAM2U,KAAKC,SAAS,CAAC,CACnByI,OAAQr6B,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,2BACZ85B,WAAAA,EACAC,SAAAA,EACAC,YAAAA,CACF,EACF,mBAIW,gCAAM7zB,OAAOm0B,KAAK,CAACt6B,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,yBAA0B0F,cACrDkkB,CADLA,CACI,CADK,UACG2Q,EAAE,CAAV,WACF,OAAMN,MAAMrQ,EAAO4Q,UAAU,SAEhB,SAAM5Q,EAAO6Q,IAAI,WAC9B,SADa,oCAIf,MAAMR,MADCpvB,EAAAA,IAAAA,uBAGX,mBA9BagvB,CAAAA,qCA8BX,uRC7CWa,EAAe,YAEfC,EAAgB,gBAAgB,EAEjB,eAAe,EACC,gBAAgB,CAAC,CAC1B,gBAAgB,EACP,gBAC/BC,EAA6B,gBAC7BC,CAD8C,CAC3B,gBAAgB,CAAC,CACN,gBAAgB,CAAC,CACpB,aAHqE,GAGrD,CAAC,CACS,KAHyB,WAGT,CAAC,CACpD,gBAAgB,CAAC,CACH,CAJuE,eAIvD,CAAC,CAChB,cAJgF,EAIhE,CAAC,CAC1B,gBAHgE,CAG/C,CACH,EAL2G,cAMjJC,CADuD,CACxB,eAF4C,CAE5B,CAAC,CAEN,gBAAgB,CAAC,CACjC,gBAC1BC,CAD2C,CACR,GAP6G,aAO7F,CAAC,CACP,KAHwD,UAFiB,CAKzD,CAAC,CACxB,gBAAgB,CAAC,CAC9B,QAJiF,GACN,wBAGxC,CAR4I,CAUnK,CAJkF,SAChB,MAIvG5N,EAAe,CAC1B6N,EAAAA,EAAoCA,CACpCzN,EACD,CAAC,WAN+G,gECtC1G,IAAMlpB,EAA2B,MAAM,EACF,UAAU,EAMhB,CACpC,cAAe,UACjB,EAEa42B,EAAmB,CAC9B,cAAe,cACf,YAAa,gBACf,EAAW,4FCsEE7N,EAAmB,SAC9B8N,CAAAA,CACAC,CAAAA,EAEA,GAAI,KACKD,EAAP,MAAOA,CAAAA,QAAAA,EAAAA,EAAQl6B,IAAI,CAAC,gBAAGoH,EAAAA,EAAAA,IAAAA,QAAW+yB,IAAe/yB,MAA1C8yB,KAAAA,MAAAA,KAAAA,EAAAA,EAAiD9jB,OAAAA,IAAW,CACrE,CAAE,MAAOvM,EAAO,CAEd,MADAiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,kBAAmBC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAClB,GAAQ,gCAA2C,OAAXswB,KAC3E,CACT,CACF,EAAE,4FCzFWC,EAAiB,CAC5B,gBAAiB7K,EAAAA,CAAKA,CAAC6H,cAAc,CACrC,4BAA0B7H,EAAAA,CAAKA,CAAC8H,eAAe,CAC/C,uBAAwB9H,EAAAA,CAAKA,CAAC+H,cAAc,CAC5C,yBAA0B/H,EAAAA,CAAKA,CAACgI,gBAAgB,EACvC,EAE0B,SAAC8C,CAAAA,EACpCC,CAAAA,EAAAA,EAAAA,EAAAA,CAAeA,CAACD,GAAQvR,IAAAA,CAAK,CAAC,SAACjf,CAAAA,QAC7BiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,kBAAmBjB,EAAO,cAAqB,OAAPwwB,KAErD,EAAE,8GCVW3+B,EAAa,SAAC6+B,CAAAA,SAAcA,GAAKA,EAAEC,MAAM,CAAC,GAAGrkB,WAAW,GAAKokB,EAAEluB,KAAK,CAAC,IAAG,EAc1D,SAACtR,CAAAA,EAC1B,IAAiBA,EAAXC,EAAAA,OAAWD,GAAAA,EAAMC,QAAAA,GAAND,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBob,WAAW,GACtChc,EAAY,CAACY,EAAMZ,SAAS,EAAIW,EAAAA,CAAeA,CAACX,SAAS,EAAEmZ,OAAO,CAAC,IAAK,IACxEhZ,EAAWS,EAAMT,QAAQ,EAAIQ,EAAAA,CAAeA,CAACR,QAAQ,CACrDT,EAAWkB,EAAM0/B,YAAY,EAAI1/B,EAAMP,UAAU,EAAIM,EAAAA,CAAeA,CAACP,eAAe,CACpFkgC,EAA4B,UAAb5gC,EAAuB,UAAYA,EAClDU,EAAkBQ,EAAMR,eAAe,EAAIO,EAAAA,CAAeA,CAACP,eAAe,CAC1EmgC,EACJD,IAAiBlgC,EACbmB,EAAW++B,GACX,GAAkC/+B,MAAAA,CAA/BA,EAAWnB,GAAiB,KAA4B,OAAzBmB,EAAW++B,IACnD,MAAOngC,mBACH,WAAuBogC,MAAAA,CAAZ1/B,EAAS,KAAqBU,MAAAA,CAAlBg/B,EAAe,KAAwB,OAArBh/B,EAAWpB,IACpD,WAAuBH,MAAAA,CAAZa,EAAS,KAAgB0/B,MAAAA,CAAbvgC,EAAU,KAAqBuB,MAAAA,CAAlBg/B,EAAe,KAAwB,OAArBh/B,EAAWpB,GACvE,EAAE,EAU4B,SAACS,CAAAA,EAC7B,IAAiBA,EAIGA,EAJdC,EAAAA,QAAWD,EAAAA,EAAMC,QAAAA,GAAND,KAAAA,MAAAA,KAAAA,EAAAA,EAAgBob,WAAW,GACtChc,EAAY,GAAmB,OAAhBY,EAAMZ,SAAS,EAAGmZ,OAAO,CAAC,IAAK,IAChDhZ,EAAW,WAAuBH,MAAAA,CAAZa,EAAS,KAAgBD,MAAAA,CAAbZ,EAAU,KAA4BY,MAAAA,CAAzBA,EAAMR,eAAe,CAAC,KAAkB,OAAfQ,EAAME,QAAQ,EAEpF0/B,EAA8B,QAAhB5/B,EAAAA,EAAMG,UAAU,GAAhBH,KAAAA,MAAAA,KAAAA,EAAAA,EAAkBsF,MAAM,CAAC,SAACu6B,CAAAA,QAAW,CAAC,CAACA,IAM3D,OAJI3+B,MAAMC,OAAO,CAACy+B,IAAgBA,EAAYt5B,MAAM,EAAE,CACpD/G,GAAY,IAA0B,OAAtBqgC,EAAYx+B,IAAI,CAAC,OAG5B7B,CACT,EAAE,EAmCyB,SAACqD,CAAAA,SAA0BA,EAAM2V,OAAO,CAAC,KAAM,IAAInP,WAAW,IAAG,EAE/D,WAC3B,IAAM02B,EAAQ77B,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,WAAWiF,KAAK,CAAC,KACnC,OAAO42B,CAAK,CAACA,EAAMx5B,MAAM,CAAG,EAAE,EAC9B,+HC5B4C,soBAsC5Cy5B,MAAAA,CADIC,isBA/DA,MAgEuB,OAA3BD,4BAA6B,waAvCzB,CA0qEiC,6UAcrCE,MAAAA,CADMC,yWAvnEF,MAynEJC,MAAAA,CADAF,+ZAAyB,MAEzBG,MAAAA,CADAD,oZAjkEI,MAkkEiB,OAjkEc,moBAoC/B,CA+8Ea,8UAkBjBE,MAAAA,CADMC,8YAA2B,MACJ,OAA7BD,+RAr4EI,4BCjSC,IAAMr1B,EAAqB,CAAC,gBAAgB,CAAC,SA6CrCu1B,UAAAA,GAAf,6BAAmC,CAQb,MAPpBC,EACYC,EACZ9gB,EACA+gB,EACA9G,EACa+G,EACbC,EAsCajhB,EApCPqa,EACAzB,EAQAsI,EACAxG,EAIAyG,EACAC,EAM0E,EAAzEC,EAAAA,EAAgBC,EAAaznB,EAAsB0nB,EAsCpD3P,+DAjDgB,OAlBtBiP,EADiC,EACjCA,yBAAAA,CACYC,EAFqB,EAEjCzG,UAAAA,CACAra,EAHiC,EAGjCA,OAAAA,CACA+gB,EAJiC,EAIjCA,UAAAA,CACA9G,EALiC,EAKjCA,SAAAA,CACa+G,EANoB,EAMjCpI,WAAAA,CACAqI,EAPiC,EAOjCA,kBAAAA,CAEM5G,EAAayG,GAAkBxG,KAAKta,EAAQ4d,GAAG,EAC/ChF,EACJoI,GACAQ,sBAAsB,uCACjB95B,oBAAAA,CACH+5B,eAAgBzhB,EAAQ0hB,GAAG,CAC3BrH,WAAAA,KAGE6G,EAAiBS,0BAA0B3hB,GAC3B,GAAM4hB,wBAAwBhJ,GAAaxK,KAAK,CAAC,GAANA,MAAOjf,CAAAA,EAEtE,OADAiB,SAAS,oBAAqBC,cAAclB,GAAQ,YAAyC,OAA7ByyB,wBAAwBl1B,IAAI,GACrF,IACT,WAQgF,OAX1EguB,EAAgB,SAIhByG,EAAwBz5B,mBAAmBI,OAAO,CAOwB,GAAM+5B,QAAQC,GAAG,EAE7FC,uBAAuBX,CARrBA,EAAeY,gBACnBd,GAAkBlhB,EAAQhS,MAAM,CAChCmzB,EACAnhB,EAAQiiB,WAAW,CACnBvH,EAAAA,EAIsCwH,SAAS,CAAEnB,EAAYoB,kBAAmB/T,CAAAA,KAAK,CACjF,SAACjf,CAAAA,EAOC,OANAiB,SACE,oBACAC,cAAclB,GACd,YAAwC,OAA5B4yB,uBAAuBr1B,IAAI,GAGlC,CAAC,CACV,GAEF01B,sBAAsB,CACpBl3B,OAAQ0tB,EACR70B,IAAI,CAAc,QAAXic,EAAAA,EAAQ4d,GAAAA,GAAR5d,KAAAA,IAAAA,EAAAA,KAAAA,EAAD,EAAiCjc,IAAI,CAC3CwK,QAASyR,EAAQzR,OAAO,GAE1B8zB,8BAA8BzJ,EAAa,CACzCpH,MAAOC,YACT,EAAGrD,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EAMR,OALAgJ,WACE,oBACA9H,cAAclB,GACd,YAAoDsiB,MAAAA,CAAxC4Q,8BAA8B31B,IAAI,CAAC,OAAkB,OAAb+kB,eAE/C,CADJ,eACsB,EAAE,CAC7B,GACA6Q,YAHsC,cAGZ1J,GAAaxK,KAAK,CAAC,GAANA,MAAOjf,CAAAA,EAC5CiB,SACE,oBACAC,cAAclB,GACd,YAA2C,OAA/BmzB,0BAA0B51B,IAAI,EAE9C,aASJ,OA3CO20B,EAAyE,mDAAzDC,EAAyD,SAAzDA,WAAAA,CAAaznB,EAAAA,EAAAA,kBAAAA,CAAsB0nB,EAAsB,KAqChF3I,EAAY2J,YAAY,CAACl3B,EAAoB+1B,EAAac,SAAS,EAC7DtQ,EAAiB,qBACjBqI,OAAAA,EAAAA,KAAAA,EAAAA,EAAWrI,WAAXqI,GAAWrI,GAAc,WAC7B,qBAAG2P,EAAmB3P,cAAc,GAGtC,GAAO,uCACFqI,EACAoH,EACAD,EACCH,GAAsB,CAAEK,YAAAA,CAAY,EACrCkB,qBAAqB,CAAE5Q,eAAAA,CAAe,KACzC/X,mBAAAA,EACA+X,eAAAA,EACAuK,gBAAiBsG,wBAAwB,CACvC7J,YAAAA,EACAiI,0BAAAA,CACF,QAEJ,IAtFeD,KAAAA,CAAAA,IAAAA,CAAAA,mJC7Df,IAAM,EAAmB5P,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,GAAvBE,YAAAA,CAKF6J,EAAa,kBAAM,IAAIvvB,IAAI0lB,GAAcpwB,MAAM,EAMxC4hC,EAAc,SAAC3+B,CAAAA,SAAiBu1B,EAAe,kBAAuB,OAALv1B,KAAQ,EAK/D,SAACA,CAAAA,SAAiB,IAAIyH,IAAIzH,EAAMg3B,KAAc/D,QAAQ,IAOvE2L,EAAc,gBAClBriC,EAAAA,EAAAA,QAAAA,CACA+xB,EAAAA,EAAAA,cAAAA,CAKMuQ,EAAW,IAAIp3B,IAAI8tB,EAAe,IAAa,OAATh5B,EAAS,2BACrD,GAAI+xB,EAAgB,CAElB,IAAM,EAAmBwQ,IADFr3B,IAAI6mB,EAAgB0I,KACnC+H,YAAAA,CACRA,EAAal6B,GAAG,CAAC,iBAAkBypB,GACnCyQ,EAAa9H,MAAM,CAAC,GAAPA,SACb4H,EAASG,MAAM,CAAGD,EAAa9L,QAAQ,EACzC,CAEA,OAAO4L,CACT,EAKazO,EAAsB,SACjC8N,CAAAA,CACA7P,CAAAA,CACApkB,CAAAA,EAEA,IAAMg1B,EAAsB,IAAIC,gBAAgB7Q,GAEhD,OADA4Q,EAAoBp6B,GAAG,CAAC,iBAAkBs6B,mBAAmB,IAAajB,MAAAA,CAATj0B,GAAqB,OAAZi0B,KACnE,GAAkBj0B,MAAAA,CAAfkjB,GAA8C8R,MAAAA,CAA/Bh1B,EAAO,0BAAuD,OAA/Bg1B,EAAoBhM,QAAQ,GACtF,EAAE,wEChEI5vB,EAAqB,SAACD,CAAAA,EAC1B,IAAMg8B,QAAch8B,EAAAA,KAAAA,EAAAA,EAAKoC,KAALpC,CAAW,IAAI,CAAC,EAAE,CAChCzE,EAAiC,CAAC,EASxC,OAPIygC,GACFA,EAAY55B,KAAK,CAAC,EADH,GACQkY,OAAO,CAAC,SAAC2hB,CAAAA,EAC9B,IAAsBA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAM75B,KAAK,CAAC,QAA3BmD,EAAe02B,CAAAA,CAAAA,EAAAA,CAAT/hC,EAAS+hC,CAAAA,CAAAA,EAAAA,CACtB1gC,CAAM,CAACgK,EAAK,CAAGrL,CACjB,GAGKqB,CACT,EAEM2gC,EAA6B,SAACl8B,CAAAA,MACxBA,QAAV,KAAK5C,IAAI,CAAC4C,OAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAKoC,KAAK,CAAC,OAAXpC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiBwK,KAAK,CAAC,CAAC,EAAE,CAAC,KAAM,4IGHf,2IFD9B,MALoB,CAClB2xB,UAAW,OAIEC,IAHbC,MAAO,CAGiBD,EAAC,IAF3B,4BCTME,EAAW,CAAC,cAAc,CAACC,MAAM,CAAC/7B,OAAOg8B,mBAAmB,CAACh8B,OAAOi8B,cAAc,CAAC,CAAC,KAenF,SAASC,EAAoBC,CAAG,EAErC,QAFuCC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAQ,EAAE,CAC3C9nB,EAAO,EAAE,CACR6nB,UAAc,CAEnB,IAAME,EAAMC,SAjBAA,CAAoB,MAAEF,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAQ,EAAE,CAAE3gC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAO,WACvD,OAAOuE,OAAOg8B,mBAAmB,CAACG,GAAKn+B,MAAM,CAAC,SAACrE,CAAAA,EAC7C,OACyB,CAAC,MAAlB4iC,OAAO,CAAC5iC,IACY,CAAC,IAA3BmiC,EAASS,OAAO,CAAC5iC,IACI,IAArBA,CAA0B,CAAtB4iC,OAAO,CAAC,MAEZJ,EAAIK,OAF8C,OAEhC,CAAC7iC,IACnB,QAAOwiC,CAAG,CAACxiC,EAAI,IAAK8B,CAExB,EACF,EAMiC0gC,EAAKC,GAClC9nB,CAAAA,CAAK3O,IAAI,OAAT2O,EAAU,QAAG+nB,IACbF,EAAMn8B,OAAOi8B,cAAc,CAACE,EAC9B,CACA,OAAO7nB,CACT,CCnBA,IAAMmoB,EAAO,WAAa,EAE1B,SAASC,EAAUP,CAAG,EAEpB,OAAOQ,EADmCR,GACrBn9B,MAAM,CAAG,CAChC,CAEO,IAAM49B,CAJ8BV,EAIb,KAC5B,QAD4B,EAC3BN,EAAYD,SAAS,CAAGc,GACzB,CADYb,EACZ,KAF4B,EAE3BA,EAAYC,KAAK,CAAGY,GAFO,GCXf,CDcb,CADYb,OCbUiB,EAAUnjC,CAAK,EACrC,OAAOA,GAA+B,YAAtB,OAAOA,EAAM8sB,IAAI,oCCsBnC,MAxBiB,SAACsW,CAAAA,MAwBHC,EAxBSC,MAwBDD,EAAC,EAxBAC,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAS,OACzBC,EAAQH,EAAK3lC,UAAU,CACvB+lC,EAAY,CAAC,EACbC,EAAa,eACbC,EAAa,SAACjD,CAAAA,CAAKkD,CAAAA,EACvB,OAAOA,EAAOvpB,WAAW,EAC3B,EAKA,GAAsB,GAAG,CAArBgpB,EAAKQ,QAAQ,CAEf,IADA,IAAIC,EAAIN,EAAMj+B,MAAM,CACbu+B,KAAK,CACV,IAAMx4B,EAAOk4B,CAAK,CAACM,EAAE,CAACx4B,IAAI,CACS,GAAG,CAAlCA,EAAKw3B,OAAO,CAAC,GAAU,OAAPS,EAAO,QAEzBE,CAAS,CAACM,EADuBxzB,KAAK,CAACgzB,EAAOh+B,MAAM,CAAG,GAR7CiS,OAAO,CAACksB,EAAYC,GASV,CAAGN,EAAKW,YAAY,CAAC14B,EAAAA,CAE7C,CAEF,OAAOm4B,CACT,ECXO,0BAAMQ,QACC,yDAA+D,CAAC,IAAhE,EAAEC,eAAAA,CAAkB,CAAlBA,CAAF,EAAoCC,cAAAA,EAAAA,YADrCF,GAET,IAAI,CAACG,gBAAgB,CADTF,EACYA,GADZA,IAAAA,EAAkB,iBAE9B,IAAI,CAACG,eAAe,CAF0BF,EAEvBA,GAFuBA,IAAAA,GAAiB,gBADtDF,EAAAA,EAMXK,IAAAA,eAAAA,SAAAA,CAAe,MAAEC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAcjlC,SAAS4gB,IAAI,CAC1C,GAAI,YAAgC,OAAzBskB,EACT,MAAM,MAAU,oCAGlB,GAAID,GAAwC,GAAG,GAAhBV,QAAQ,CACrC,MAAM,MAAU,iDAclB,OAXI,IAAI,CAACY,aAAa,EAAE,IAClB,CAACC,MAAM,GAGb,IAAI,CAACC,YAAY,CAAGJ,EACpB,IAAI,CAACE,aAAa,CAAGG,IAAAA,MAAoB,CACvCL,EACA,QACA,IAAI,CAACM,YAAY,CAACC,IAAI,CAAC,IAAI,CAAEN,IAGxB,CACLtyB,OAAQ,IAAI,CACZwyB,OAAQ,IAAI,CAACA,MAAM,CAACI,IAAI,CAAC,IAAI,CAC/B,CACF,IAEAJ,IAAAA,eAAAA,SAAAA,EACM,IAAI,CAACD,aAAa,EAAE,CACtB,IAAI,CAACA,aAAa,CAACC,MAAM,GACzB,IAAI,CAACD,aAAa,CAAG,KAEzB,IASAI,IAAAA,qBAAAA,SAAaL,CAAQ,CAAErnC,CAAK,EAC1B,GAAI4nC,CAlDI5nC,EAAM6nC,OAAO,GAAI7nC,EAAM8nC,MAAM,GAkDjB9nC,EAlD2B+nC,OAAO,GAAI/nC,EAAMgoC,QAAQ,EAJlD,CAsDSC,GAAiBjoC,EAtDrCmmB,MAAM,EA0DjB,IAAI+f,EAAOlmC,EAAM+U,MAAM,EAAI/U,EAAMkoC,UAAU,CACvCC,EAAU,IAAI,CAACC,QAAQ,CAAClC,GAE5B,GAAI,IAAI,CAACgB,eAAe,CAEtB,CAFwB,GACxB,IAAME,EAAc,IAAI,CAACI,YAAY,CAC9BtB,IAASkB,GACdlB,EAAOA,EAAKvyB,KADe,QACF,EAAIuyB,EAAKmC,UAAU,CAC5CF,EAAU,WAAK,IAAI,CAACC,QAAQ,CAAClC,GAAUiC,GAI3C,GAAK/+B,CAAD,MAAQsU,IAAI,CAACyqB,GAAS//B,MAAM,EAAE,IAI5B9D,EAAY6jC,GAAWA,EAAQ7jC,SAAS,CACxCgkC,EAAoBH,GAAWA,EAAQG,iBAAiB,QACvDH,EAAQG,iBAAiB,CAE5BhkC,IACF,OADa,EACEA,SAAS,CACxB+iC,EAAS/iC,EAAW6jC,EAA+B,SAAtBG,KAEjC,IAEAF,IAAAA,iBAAAA,SAAAA,CAAa,EACX,OAAOjC,EAASD,EAAM,IAAI,CAACe,KAAZd,WAA4B,CAC7C,KA9EWW,KA+EZ,EChFQ,CAAC,EACV,GAAIyB,EAAAA,SAASA,CACX,CADa,EACT,CACFC,EAAKp/B,OAAOq/B,WAAW,CAAC,IAAI/D,gBAAgBx4B,OAAO5J,QAAQ,CAACkiC,MAAM,EACpE,CAAE,MAAO5X,EAAG,CAEV5M,QAAQC,IAAI,CAAC,+CAAgD2M,EAC/D,CAGF,IAAM8b,EAAW,CACfC,cAAe,WACfC,aAAc,iBAAO,CAAC,GACtBC,eAAgB,IAClB,CADuB,CAGvB,sBAAMC,iBAAAA,GAEF,IAAI,CAACC,cAAc,CAAG,CAAC,EACvB,IAAI,CAACC,aAAa,CAAG,gBAHnBF,EAAAA,EAMJG,IAAAA,eAAAA,SAAAA,EACE,MAAO,EAAE,IAAI,CAACD,aAAa,IAG7B18B,IAAAA,gBAAAA,SAAAA,EACE,OAAO,IAAI,CAAC08B,aAAa,IAG3B9+B,IAAAA,YAAAA,SAAAA,CAAO,EACL,OAAO,IAAI,CAAC6+B,cAAc,CAACG,EAAI,IAGjC7+B,IAAAA,YAAAA,SAAAA,CAAO,CAAEvH,CAAK,EACZ,IAAI,CAACimC,cAAc,CAACG,EAAI,CAAGpmC,CAC7B,IAEAykC,IAAAA,eAAAA,SAAO2B,CAAG,EACJA,GAAO,IAAI,CAACH,cAAc,CAACG,EAAI,EAAE,OAC5B,IAAI,CAACH,cAAc,CAACG,EAAI,IAInCxrB,IAAAA,aAAAA,SAAAA,EACE,OAAOtU,OAAOsU,IAAI,CAAC,IAAI,CAACqrB,cAAc,CACxC,KA9BID,KAiCC,uBAAMK,YACC19B,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAU,CAAC,EACrB,gBAFS09B,GAEL,CAAC19B,EAAQ29B,OAAO,CAClB,CADoB,KACd,MAAU,uCAGlB,GADA,aALSD,EAAAA,EAMJhsB,OAAO,CAAG1R,OAAQ0R,OAAO,CAE9B,EAAKorB,SAAS,MAAyB7jB,IAAtBjZ,EAAQ88B,SAAS,CAAiB,CAAC,CAAC98B,EAAQ88B,SAAS,CAAGA,EAAAA,SAASA,CAC7E,EAAKA,SAAS,EAAE,CACnB,EAAKprB,OAAO,EAAG,GAEjB,EAAKtX,KAAK,CAAG,CAAC,CAAC4F,EAAQ5F,KAAK,EAAyB,SAArB2iC,EAAGa,aAAa,CAChD,EAAKC,YAAY,CAAG79B,EAAQ69B,YAAY,EAAI,CAAC,EAC7C,EAAKV,YAAY,CAAGn9B,EAAQm9B,YAAY,EAAIF,EAASE,YAAY,CACjE,EAAKD,aAAa,CAAGl9B,EAAQk9B,aAAa,EAAID,EAASC,aAAa,CACpE,EAAKE,cAAc,CAAGp9B,EAAQo9B,cAAc,EAAIH,EAASG,cAAc,CACvE,EAAKU,YAAY,MAA4B7kB,IAAzBjZ,EAAQ89B,YAAY,EAAiB,CAAC,CAAC99B,EAAQ89B,YAAY,CAC/E,EADkF,OACtE,CAAGvmC,MAAMC,OAAO,CAACwI,EAAQ29B,OAAO,EAAI39B,EAAQ29B,OAAO,CAAG,CAAC39B,EAAQ29B,OAAO,CAAC,CACnF,EAAKI,QAAQ,CAAG,EAAKJ,OAAO,CAAC/gC,GAAG,CAAC,SAACohC,CAAAA,SJ7DvB,SAASC,II6DsCA,EJrDtDC,EAR8Bl+B,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAU,CAAC,EACzC,EAAUA,EAARlF,GAAAA,CACJqjC,EAAW5D,EAKf,GAAmB,YAAY,OAApBz/B,EAET,GAAI,CACFojC,EAAOpjC,EAAIkF,EACb,CAAE,QAAM,CACR,QAAU,CACHk+B,GAAS7D,EAAU6D,GAAX,CACXA,GATG,IADWpjC,EACGkF,EASVo+B,EAEL/D,EAAU6D,KACZC,EADmB,CACRD,CAEf,MACSpjC,GAAO,CAAOA,KAAAA,IAAAA,EAAAA,YAAP,QAAOA,EAAAA,CAAE,GAAM,UAAYu/B,EAAUv/B,KACrDqjC,CAD2D,CAChDrjC,CAAAA,EAGb,MAAO,CAAE4H,KADI1C,CACJ0C,CADYA,IAAI,EAAIy7B,EAASz7B,IAAI,CAC3B27B,KAAMF,CAAS,CAChC,EIoC+DH,KAC3D,EAAKM,OAAO,CLlDDP,CADbA,CKmDiBQ,CLnDNhnC,MAAMC,IKmDW+mC,GLnDJ,CAACR,EKmDI,EAAKA,ILpDQ,IKoDA,CAACnhC,GAAG,CAAC,SAAC4hC,CAAAA,SAAYA,EAAQH,IAAI,ILnDnCN,EAAW,CAACA,EAAS,EACpCtrB,MAAM,CAAC,SAACsnB,CAAAA,CAAOyE,CAAAA,EAEnC,IAAMvsB,EAAO4nB,EADD2E,EAAQC,WAAW,GAAK9gC,EACHm8B,KADY0E,EAAU7gC,OAAOi8B,cAAc,CAAC4E,GACvCzE,GAEtC,OADAA,CAAAA,CAAMz2B,IAAI,OAAVy2B,EAAW,QAAG9nB,IACP8nB,CACT,EAAG,EAAE,EK8CH,EAAK2E,WAAW,CAAG,IAAIrB,EACvB,EAAKsB,UAAU,CAAG,CAAC,EACnB,EAAKC,OAAO,CAAG,EAAKN,OAAO,CAAC7rB,MAAM,CAAC,SAACosB,CAAAA,CAAM/jC,CAAAA,EAExC,OADA+jC,CAAI,CAAC/jC,EAAI,CAAG,sCAAIgkC,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,QAAS,EAAKC,aAAa,SAAlB,CAAmBjkC,EAAa,CAAhC,OAAwB,QAAGgkC,MAC7CD,CACT,EAAG,CAAC,GACJlhC,OAAOC,MAAM,CAAC,EAAKghC,OAAO,kBA3BjBlB,EAAAA,WAAAA,EAAAA,EA8BXhC,IAAAA,eAAAA,SAAAA,CAAW,CAAEE,CAAQ,aAenB,MAboB,YAAhB,OAAOxiC,IACTwiC,EAAWxiC,EACXA,EAAO,MAGLA,EACF,IADQ,CACHkE,EAAE,CAAClE,EAAMwiC,GAEd,IAAI,CAAC0C,OAAO,CAAC7mB,OAAO,CAAC,SAAC3c,CAAAA,EACpB,EAAKwC,EAAE,CAACxC,EAAK8gC,EACf,GAGK,WACDxiC,EACF,EAAK4lC,EADG,YACW,CAAC5lC,EAAMwiC,GAE1B,EAAK0C,OAAO,CAAC7mB,OAAO,CAAC,SAAC3c,CAAAA,EACpB,EAAKkkC,cAAc,CAAClkC,EAAK8gC,EAC3B,EAEJ,CACF,IAEAqD,IAAAA,sBAAAA,SAAAA,CAAmB,EACjB,IAAI,CAACC,+BAA+B,GACpC,IAAI,CAACP,UAAU,CAAGzM,CACpB,IAGAiN,IAAAA,wBAAAA,SAAAA,CAA2B,CAAE7D,CAAe,MD7BA,IAE5CK,CAGD,CCyBG,GAAK,CAAD,GAAK,CAACjqB,OAAO,EAAE,GAKfiqB,CAAgB,MAAO,CACzB,IAAI,CAACyD,2BAA2B,GAChC,MACF,CAkBA,OAhBAC,IAC4B,YAA1B,GADOA,IACA,IAAI,CAACvkC,GAAG,CAACxB,KAAK,CACrB,wEAGE,IAAI,CAACgmC,qBAAqB,EAAE,IAC1B,CAACF,2BAA2B,GAIlC,IAAI,CAACE,qBAAqB,EDjD5B1D,CCiD+B2D,CDlDa,GCkDS,CACjD3D,SAAU,IAAI,CAACK,EADiCsD,UACrB,CAACrD,IAAI,CAAC,IAAI,EACrCP,YAAAA,EACAL,gBAAAA,CACF,GDrDFM,QAAAA,GAD4C,EAE5CD,WAAAA,CAI2B,CAH3BL,GAG+BD,EAAmB,CAChDC,gBAP0C,CAO1CA,CAJFA,eAAAA,CAKEC,CAJFA,cAJ4C,CAQ1CA,CAJFA,cAAAA,GAM0BG,MAAM,CAACE,EAAUD,IC8ClC,IAAI,CAACyD,2BAA2B,CAAClD,IAAI,CAAC,IAAI,EACnD,IAEAsD,IAAAA,gBAAAA,SAAAA,EACE,IAAI,CAACC,gBAAgB,GACrB,IAAI,CAACL,2BAA2B,EAClC,IAEItkC,IAAAA,UAAJ,WACE,OAAO,IAAI,CAAC8jC,OACd,IAQAc,IAAAA,sBAAAA,SAAAA,CAAkB,CAAEC,CAAO,aACzB,OAAOA,EAAQxb,IAAI,CAAC,SAACzrB,CAAAA,MAUVknC,EAAT,SAASA,CAAgB,EACnBC,IACFC,GADS,UACID,GACbA,EAAQ,KAEZ,EAdAnnC,EAASA,GAAU,EAAE,CACrB,IAAMqnC,EAAU,EAAE,CACZhC,EAAW,EAAKA,QAAQ,CACxBX,EAAiB,EAAKA,cAAc,CAa1C,OAAO,IAAIvF,QAAQ,SAACmI,CAAAA,MACT/hC,EAAT,SAASA,CAAc,EACjB,IAAI,CAACgiC,SAAS,EAAE,CAGpB,IAAI,CAACA,SAAS,EAAG,EACjBL,EAAW,IAAI,CAACC,KAAK,EACrBE,EAAQz8B,IAAI,CAAC4gB,GAjBR6b,EAAQpjC,MAAM,GAAKohC,EAASphC,MAAM,EAmBrCqjC,EAAQD,GAEZ,EAEAhC,EAASnhC,GAAG,CAAC,SAAC4hC,CAAAA,EACZ,IAAQH,EAAeG,EAAfH,IAAAA,CAAM37B,EAAS87B,EAAT97B,IAAAA,CACRw9B,EAAY7B,GAAQA,CAAI,CAACjlC,EAAK,CAChC8mC,GACFC,IACwB,IAFX,QAEX,CADKA,MACE9B,CAAI,CAACjlC,EAAK,CACjB,IAAYsJ,MAAAA,CAARtJ,EAAK,KAAmC,OAAhCsJ,EAAO,IAAS,OAALA,EAAK,aAAa,GAAG,uBAGhD,IAAI09B,EACFF,GAAmC,YAAtB,OAAO7B,CAAI,CAACjlC,EAAK,CAAkBilC,CAAAA,CAAKjlC,EAAK,OAAVilC,EAAW,QAAG3lC,SAAUugB,EAW1E,OAVKuhB,EAAU4F,KACbA,EADY5F,QACawF,EADK,KACE,CAACI,EAAAA,EAEnCA,EAAeH,SAAS,EAAG,EAC3BG,EAAeP,KAAK,CAAGxgB,WAAWphB,EAAQi+B,IAAI,CAACkE,GAAiBhD,EAAgB,CAC9E16B,KAAAA,EACAhK,OAAAA,EACAyM,MAAO,MAAU,0BAAyC,OAAfi4B,EAAe,SAC1Dz3B,OAAQ,SACV,GACOy6B,EACJjc,IAAI,CAAC,SAAC5J,CAAAA,QAAc,CACnB7X,KAAAA,EACAhK,OAAAA,EACA6hB,SAAAA,EACA5U,OAAQ,SACV,GACCye,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QAAW,CACjBzC,KAAAA,EACAhK,OAAAA,EACAyM,MAAAA,EACAQ,OAAQ,SACV,IACCwe,IAAI,CAAClmB,EAAQi+B,IAAI,CAACkE,GACvB,EACF,EACF,EACF,IAOAlB,IAAAA,wCAAAA,SAAAA,aACE,IAAI,CAACP,UAAU,CAAG,CAAC,EACnB,IAAI,CAACD,WAAW,CAACzsB,IAAI,GAAGwF,OAAO,CAAC,SAACgmB,CAAAA,EAC/B,IAAMj+B,EAAQ,EAAKk/B,WAAW,CAACjgC,GAAG,CAACg/B,GAC/Bj+B,GAASA,EAAMs+B,YAAY,EAAE,CAC/Bt+B,EAAM6gC,YAAY,EAAG,EAEzB,EACF,IAOAC,IAAAA,2BAAAA,SAAAA,CAAuB,EACrB,IAAM7C,EAAM,IAAI,CAACiB,WAAW,CAAC79B,OAAO,GAC9Bi9B,EAAe,IAAI,CAACA,YAAY,CACtC,IAAI,CAACY,WAAW,CAAC9/B,GAAG,CAAC6+B,EAAK,CACxBkC,QAASb,CAAI,CAAC,EAAE,CAChBhB,aAAAA,CACF,GACAgB,EAAKx7B,IAAI,CAACm6B,EACZ,IAMA8C,IAAAA,0BAAAA,SAAAA,CAAqB,EACnB,IAAI,CAAC7B,WAAW,CAAC5C,MAAM,CAAC2B,EAC1B,IAQA+C,IAAAA,iBAAAA,SAAAA,CAAa,CAAEb,CAAO,CAAElC,CAAG,EACzBkC,EAAU,IAAI,CAACD,aAAa,CAACtmC,EAAMumC,GACnC,IAAMc,EAAgB,UAAU96B,CAAM,CAAE4U,CAAQ,CAAEpV,CAAK,EACrD,IAAMu7B,EAAc,CAClBtnC,KAAAA,EACAuM,OAAAA,CACF,EACI4U,EACFmmB,EAAYnmB,MADA,EACQ,CAAGA,EACdpV,IACTu7B,EAAYv7B,CADI,IACC,CAAGA,CAAAA,EAElBs4B,IACFiD,CADO,CACKnD,aAAa,CAAGE,EAC5B,IAAI,CAAC8C,iBAAiB,CAAC9C,IAEzB,IAAI,CAACkD,IAAI,CAACvnC,EAAMsnC,GACZ,IAAI,CAACtmC,KAAK,EAAE,QAENk3B,GAAG,CAAC,eAAgBoP,GAEhC,EAAExE,IAAI,CAAC,IAAI,EAEXyD,EACGxb,IAAI,CAAC,SAAC5J,CAAAA,EACLkmB,EACElmB,EAASqmB,KAAK,CAAC,SAAC3X,CAAAA,QAASA,cAAKtjB,MAAM,GAAkB,UAAY,UAClE4U,EAEJ,EACC6J,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EACNs7B,EAAc,UAAW,KAAMt7B,EACjC,EACJ,IAQA07B,IAAAA,wBAAAA,SAAAA,CAAqB,EACnB,OAAO,IAAI,CAAC1D,YAAY,CAACjL,EAC3B,IAQA4O,IAAAA,mBAAAA,SAAW77B,CAAI,CAAEitB,CAAK,EACpB,OAAOv0B,OAAOosB,MAAM,CAAC,CAAC,EAAG,IAAI,CAAC8W,eAAe,CAAC3O,GAAQ,IAAI,CAAC2L,YAAY,CAAE54B,EAC3E,IASA87B,IAAAA,uBAAAA,SAAAA,CAAsB,aACdtD,EAAM,IAAI,CAACiB,WAAW,CAAClB,MAAM,GACnC,OAAOmC,EAAQxb,IAAI,CAAC,SAAClf,CAAAA,EACnB,OAAO,EAAKy5B,WAAW,CAACjgC,GAAG,CAACg/B,GAAK4C,YAAY,CACzCxI,QAAQmJ,MAAM,CAAC,MAAU,wBACzB/7B,CACN,EACF,IAWAg8B,IAAAA,+BAAAA,SAAAA,CAAgC,CAAEtB,CAAO,CAAEuB,CAAW,EACpD,OAAOvB,EAAQxb,IAAI,CACjB,UAAU+N,CAAK,CAAEjtB,CAAI,EAGnB,MADAA,CADAA,EAAO,CAACi8B,EAAc,IAAI,CAACJ,UAAU,CAAC77B,EAAMitB,GAASjtB,EAAK,EACrDk8B,OAAO,CAACtoC,GACNoM,EACT,EAAEi3B,IAAI,CAAC,IAAI,CAAE,IAAI,CAACyC,UAAU,EAEhC,IAWAyC,IAAAA,0BAAAA,SAAkBhoC,CAAI,EAAE,0DAAG0lC,CAAAA,CAAH,iBAAO,CAC7B,IAAIoC,GAAc,EACd9nC,IAASmgC,EAAYD,SAAS,EAAE,CAElC4H,EAFsB3H,CAER,EACVngC,IAASmgC,EAAYC,KAAK,EAAE,IAET,GAFCD,OAEpB,KADO8F,EACAP,CAAI,CAAC,EAAE,CACd,0HAIAA,EAAKniC,MAAM,EAAI,GAAsC,WAAW,OAArCmiC,CAAI,CAACA,EAAKniC,MAAM,CAAG,EAAE,GAClDukC,EAAcpC,CAAI,CAACA,EAAKniC,MAAM,CAAG,KAKrC,IAA0BmiC,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,GAArBjmC,EAAqBimC,CAAAA,CAAAA,EAAAA,CAAVpmC,EAAUomC,CAAAA,CAAAA,EAAAA,CA0B1B,OAzBKpmC,GAA+B,UAAU,OAAxBG,IACpBH,EAASG,EACTA,EAAYO,IAASmgC,EAAYD,SAAS,CAAG,IAAbC,CAAkB2D,aAAa,CAAG,MAI/D1C,EAAU9hC,KACbA,EADY8hC,EAAU,MACLwF,OAAO,CAACtnC,EAAAA,EAIvBU,IAASmgC,EAAYD,SAAS,EAAE,CAClC5gC,EAAS,IAAI,CAACqoC,cAAc,CAACroC,EAAAA,EAI3BG,IACFH,EAAS,IAAI,CADA,sBACuB,CAACG,EAAWH,EAAQwoC,EAAAA,EAE1DpC,EAAO,CAAC1lC,EAAMV,EAAO,CAEjBU,IAASmgC,EAAYD,SAAS,EAChC,GADsBC,CAClB,CAAC+G,kBAAkB,CAACxB,GAGnBA,CACT,IAOAC,IAAAA,sBAAAA,SAAAA,CAAkB,EAAE,0DAAGD,CAAAA,CAAH,iBAAO,CACpB,IAAI,CAACptB,OAAO,EAAE,CAGnBotB,EAAO,IAAI,CAACsC,iBAAiB,OAAtB,IAAI,CAAJ,CAAuBhoC,EAAc,CAArC,OAA6B,QAAG0lC,KACvC,IAAI,CAAC0B,QAAQ,OAAb,IAAI,CAAU,QAAG1B,IACnB,IAQA7C,IAAAA,qBAAAA,SAAAA,EAAa,QACX,EADW,0CAAG6C,CAAAA,CAAH,eAAO,CAClB,OAAI,CAAChkC,GAAAA,EAAIxB,KAAK,OAAd,EAAe,QAAGwlC,GACpB,IACAW,IAAAA,yBAAAA,SAAAA,EACE,IAAI,CAAC4B,kBAAkB,EACzB,IACAjC,IAAAA,oCAAAA,SAAAA,EACM,IAAI,CAACE,qBAAqB,EAAE,CAC9B,IAAI,CAACA,qBAAqB,CAACxD,MAAM,GACjC,IAAI,CAACwD,qBAAqB,CAAG,KAEjC,KA9YW5B,GAAgB4D,KA4Zd,SAASpnC,EAAc8F,CAAO,EAC3C,IAAMnF,CA7ZiCymC,CA6ZvB,CAdjB,GAcqB5D,EAAQ19B,GAC5B,MAAO,CACL07B,OAAQ7gC,EAAQ6gC,MAAM,CAACQ,IAAI,CAACrhC,GAC5BokC,cAAepkC,EAAQokC,aAAa,CAAC/C,IAAI,CAACrhC,GAC1CskC,gBAAiBtkC,EAAQskC,eAAe,CAACjD,IAAI,CAACrhC,GAC9C2kC,QAAS3kC,EAAQ2kC,OAAO,CAACtD,IAAI,CAACrhC,GAC9B,IAAI6W,SAAU,CACZ,OAAO7W,EAAQ6W,OACjB,EACA,IAAI5W,KAAM,CACR,OAAOD,EAAQC,GAAG,CAEtB,CACF,gGE/ce,sBAAMb,QAOP+F,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAmB,CAAC,eAPb/F,GAQjB,IAAI,CAAC+F,OAAO,CAAGA,EACf,IAAI,CAAC1L,WAAW,CAAG0L,EAAQ1L,WAAW,EAAI,CAAC,EAC3C,IAAI,CAACsB,QAAQ,CAAG,GAChB,IAAI,CAAC8M,IAAI,CAAG,oBAEP,IAAI,CAAC1C,OAAO,CAACtF,MAAM,EAAE,aACX6mC,OAAO,CAAC,cAAeC,OAAO,IAAI,CAACxhC,OAAO,CAAC5F,KAAK,SAd9CH,EAAAA,SAAAA,QAkBnB,EAAOwnC,YAEN,CAFD,SAAOA,EAAa,kDAAG3C,CAAAA,CAAH,eAAiB,CACnC,IAAI,CAAC4C,aAAa,OAAlB,IAAI,CAAe,QAAG5C,GACxB,EAEA,EAAOxlC,KAwBN,CAxBD,SAAOA,CAAuB,CAAEZ,CAAgB,CAAEipC,CAAwB,oBACpEA,GACF,CAEE,GAFE,CAACD,QADa,KACA,CAAC7oC,IAEhB,IAAI,CAACmH,OAAO,CAACtF,MAAM,EAAE,IACbm9B,QAAQ,SAACmI,CAAAA,EAClB,EAAK4B,KAAK,GACPzd,IAAI,CAAC,SAAC0d,CAAAA,EACL,EAAKvtB,UAAU,CAAG,EAAKA,UAAU,EAAIutB,EACrC,EAAKjpC,MAAM,CAACC,EAAWH,GACvBsnC,EAAQ,CACNnnC,UAAAA,EACAH,OAAAA,CACF,EACF,EACC0rB,CAAAA,KAAK,CAAC,WACL,IAAMjf,EAAQ,MAAU,sCACxBiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,2CAA4CjB,GACrD66B,OAAQ/mB,EACV,EACJ,EAIJ,EAEArgB,EAAAA,MAMC,CANDA,SAAOC,CAAiB,CAAEH,CAAe,EACvC,IAGE,IAHIuM,EAAO68B,IAAQppC,GAAU,IAAI,CAACpE,KAAhBwtC,MAA2B,CAAGppC,CAClD+H,QAAOnM,WAAW,CAAG2Q,EACjB,IAAI,CAACqP,UAAU,EAAE,CACE,QAArB,SAAI,CAACA,UAAU,EAAChb,KAAAA,GAAhB,qBAAwBT,EAAAA,CAE5B,EAEA+oC,EAAAA,KA8BC,CA9BDA,SAAAA,aAEE,OADA,IAAI,CAACG,gBAAgB,GAEnB,IAAI,CAACC,QAAQ,EACZ,KAAI,CAACA,QAAQ,CAAG,IAAInK,QAAQ,SAACmI,CAAAA,EAC5B,GAAIv/B,OAAO6T,UAAU,EAAI7T,OAAO6T,UAAU,CAAChb,KAAK,CAC9C0mC,CADgD,CACxCv/B,OAAO6T,UAAU,EACzB,EAAK2tB,aAAa,OACb,CACL,IAAMC,EACJ,SAAUruB,aAAa,CAAC,yBACxBnd,SAASyrC,aAAa,CAAC,UAEzBD,EAAWE,MAAM,CAAG,WAClBpC,EAAQv/B,OAAO6T,UAAU,EACzB,EAAK2tB,aAAa,EACpB,EAEAC,EAAWG,OAAO,CAAG,WACnB,IAAMl9B,EAAQ,MAAU,mDACxBiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,2CAA4CjB,GACrD66B,OAAQ/mB,EACV,EAEAipB,EAAWv4B,GAAG,CAAG63B,OAAO,EAAKxhC,OAAO,CAACvF,QAAQ,EAC7CynC,EAAWvqB,YAAY,CAAC,QAAS,QACjCjhB,SAAS4rC,IAAI,CAACC,WAAW,CAACL,EAC5B,CACF,GAAC,EAILR,EAAAA,aAIC,CAJDA,SAAAA,EAAc,QAGZ,EAHY,0CAAGc,CAAAA,CAAH,eAAkB,CAE9B,IAAMnlC,EAASmlC,CADfA,EAAQjrC,MAAMC,OAAO,CAACgrC,GAASA,EAAQ,CAACA,EAAM,EACzB5lC,GAAG,CAAC,SAAC8F,CAAAA,QAAU,CAAE+/B,UAAW,CAAEzqC,YAAa0K,CAAK,CAAE,GACjD,SAAtB,MAAI,CAACpO,WAAW,CAACC,KAAAA,GAAjB,cAAwB+O,IAAI,OAA5B,EAA6B,QAAGjG,GAClC,EAEAvE,EAAAA,YAEC,CAFDA,SAAAA,EACE,IAAI,CAACxE,WAAW,CAACC,KAAK,CAAG,EAC3B,EAEAkC,EAAAA,IAEC,CAFDA,SAAKsD,CAAY,CAAE1C,CAAc,EAC/BuH,IAAI,IAAI,CAACtK,IAANsK,OAAiB,CAAE7E,EAAM1C,EAC9B,EAEAyC,EAAAA,MAEC,CAFDA,SAAAA,CAAmB,CAAE4oC,CAAe,EAClCC,IAAM,IAAI,CAACruC,MAANquC,KAAiB,CAAE5oC,EAC1B,EAQAgoC,EAAAA,gBAoBC,CApBDA,SAAAA,EACE,IAAMa,EAA6B,8CAEJ3pB,IADAxa,IAAI,GACO,CADH,CAACnK,IAANmK,OAAiB,CAAEmkC,IAEnD,IAAI,CAACnsC,IAAI,CAACmsC,EAA4B,IAGxC,IAAMC,EAA6B,wCAEJ5pB,UADAxa,CACW,GADP,IAAI,CAACnK,IAANmK,OAAiB,CAAEokC,IAEnD,IAAI,CAACpsC,IAAI,CAACosC,EAA4B,oBAKtB5pB,IADAxa,IAAI,GACO,CADH,CAACnK,IAANmK,OAAiB,CADhB,CACkBqkC,oCAEtC,IAAI,CAACrsC,IAAI,CAAC,UAAW,CAAC,CAAEssC,YAAa,CAAEC,UAAW,EAAG,CAAE,EAAE,EAG3DviC,OAAOnM,WAAW,CAAG,IAAI,CAACA,WAC5B,EAEA,EAAQ2tC,aAEP,CAFD,SAAQA,EACNxhC,OAAOggC,aAAa,CAAC,IAAIwC,YAAY,iBACvC,EAxImBhpC,KCKrB,MAtBsB,gBACpBG,EAAAA,EAAAA,EAqBaD,GArBbC,CACA9F,EAAAA,EAAAA,KAoB0B6F,EAAC,IApB3B7F,EACAkG,KAG2B,CAC3BkX,SAAS,EACTisB,QAAS,CACP,CACEj7B,KAAM,oBACN5H,IAAK,IAAIN,EARbA,SAAAA,CAQuB,CACjBJ,MAAAA,EACA9F,YAAAA,EACAmG,SAVNA,CAUMA,CAVNA,QAAAA,CAWMC,CAVNA,MAAAA,CAUMA,CAVNA,MAWI,EACF,EACD,CACDN,MAAAA,CACF,GCzBO,IAAM8oC,EAAe,CAC1BC,OAAQ,SACRC,IAAK,KACP,EAAW,EAIkB,CAC3BC,QAAS,WACTC,MAAO,QACPx9B,KAAM,MACR,EAAW,EAIc,CACvBu9B,QAAS,WACTE,QAAS,UACTC,SAAU,WACVC,QAAS,UACTC,KAAM,OACNC,KAAM,OACNC,UAAW,YACXC,KAAM,OACNC,UAAW,YACXC,UAAW,YACXC,OAAQ,SACRC,QAAS,UACTC,SAAU,WACVC,OAAQ,QACV,EAAW,WC1BJ,SAASC,IACd,GAAKz1B,CAAD,CAACA,CAASA,EAAE,GAEZ,CAAClO,OAAOnM,WAAW,CAAE,CACvB6Z,CAAAA,EAAAA,EAAAA,EAAAA,CAAUA,CAAC,4BAA6B,MAAU,uCAClD,MACF,CAEiD,CAAC,QAAS,MAAM,CAE/CsJ,OAAO,CAAC,SAACngB,CAAAA,EACrBmJ,OAAOnM,WAAW,EAAIgD,KAAOmJ,OAAOnM,WAAW,EACjD,OAAOmM,OAAOnM,WAAW,CAACgD,EAAI,GAGpC,gBCda+sC,EAA+B,eAAe,GACzB,WAE5BC,GAA4E,SAA1ChqC,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,kCAKrC,SAAS7B,GAAWI,CAAiB,CAAEgC,CAAgC,MAGrC4F,EAFvC,GAAK6jC,CAAD,GAEJ,GAAI31B,EAAAA,CAASA,EAAIlO,OAAOnM,WAAW,WAAImM,EAAAA,OAAO6T,UAAAA,GAAP7T,KAAAA,MAAAA,KAAAA,CAF8C,CAE9CA,EAAmBnH,KAAAA,EAAO,CAC/D,IAoBAuoC,EApBM,EAAkBphC,OAAhBnM,WAAAA,CACFutC,EAAYphC,OAAO6T,UAAU,CAEnC3W,OAAOuU,OAAO,CAACrX,GAAS4c,OAAO,CAAC,+BAAEngB,EAAAA,CAAAA,CAAAA,EAAAA,CAAKD,EAAAA,CAAAA,CAAAA,EAAAA,CAErC,GAAIE,MAAMC,OAAO,CAACH,GAAQ,CACxB,IAAMktC,EAAgB9lC,IAAInK,EAAagD,GACnCC,IADqBkH,EACfjH,OAAO,CAAC+sC,GAEhB3lC,IAAItK,EAAagD,EAAK,QAAIitC,GAAAA,MAAAA,CAAe,QAAGltC,KAG5CuH,IAAItK,EAAagD,EAAKD,EAE1B,GAFOuH,GAILA,CAFK,GAEDtK,EAAagD,EAAKD,EAE1B,GAFOuH,MAIPijC,GAAgB,QAAhBA,EAAAA,EAAWvoC,KAAAA,EAAXuoC,CAAAA,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAAmBhpC,EACrB,MAEE0b,CAFK,OAEGC,IAAI,CAAC,uCAEjB,0JETMgwB,EAAc5pC,CAAAA,EAAAA,EAAAA,aAAAA,CAAaA,CAAY6pC,CAX3CpU,WAAY,KACZj0B,iBAAiB,EACjBksB,OAAQ,kBAAMuP,QAAQmI,OAAO,IAC7B/c,MAAO,kBAAM4U,QAAQmI,OAAO,IAC5B0E,iBAAkB,kBAAM7M,QAAQmI,OAAO,IACvC9kC,UAAW,KACXmwB,QAAS,KACThvB,WAAW,EACXsoC,YAAY,CACd,EAAE,CAGFH,EAAYn6B,WAAW,CAAG,wCCI1B,SAASu6B,EACP1S,CAAY,CACZ2S,CAAgF,QAEhF,UAA8B,CAA1BA,EAAOzrC,IAAI,CACN,mBACF84B,GAAAA,CACH4S,UAAU,EACVzoC,WAAW,EACXnB,UAAW,OAGK,0BAA0B,CAA1C2pC,EAAOzrC,IAAI,CACN,mBACF84B,GAAAA,CACH4S,SAAU,GACVzoC,WAAW,EACXnB,UAAW,OAGK,aAAa,CAA7B2pC,EAAOzrC,IAAI,CACN,mBACF84B,GAAAA,CACH4S,UAAU,EACVzoC,WAAW,EACXnB,UAAW2pC,EAAO5/B,IAAI,GAGtB4/B,eAA+B,GAAxBzrC,IAAI,CACN,mBACF84B,GAAAA,CACH6S,SAAUF,EAAO5/B,IAAI,GAGlBitB,CACT,CAEO,SAASJ,EAAa,CAY5B,MAXCzB,EAD2B,EAC3BA,UAAAA,CACAx0B,EAF2B,EAE3BA,QAAAA,CACAqe,EAH2B,EAG3BA,cAAAA,CACA6X,EAJ2B,EAI3BA,QAAAA,CACAiT,EAL2B,EAK3BA,YAAAA,CAQ0BC,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,UAAAA,CAAUA,CAAiBL,EAAS,CAC5DvU,WAAAA,EACAyU,SAAU,CAAC,CAACzU,EAAW6U,aAAa,GACpC7oC,UAAWg0B,EAAW6U,aAAa,GACnChqC,UAAW,KACX6pC,SAAUC,CACZ,MANO9S,EAAmB+S,CAAAA,CAAAA,EAAAA,CAAZE,EAAYF,CAAAA,CAAAA,EAAAA,CAQpBG,EAAUzhC,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,EAAU,GAC1B0hC,EAAeC,CAAAA,EAAAA,EAAAA,WAAAA,CAAWA,CAAC,SAAUC,CAAiC,EACtEH,EAAQvkC,OAAO,EAAE,EACV0kC,EAEb,EAAG,EAAE,EACLjpC,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WAER,OADA8oC,EAAQvkC,OAAO,EAAG,EACX,WACLukC,EAAQvkC,OAAO,EAAG,CACpB,CACF,EAAG,EAAE,EAELvE,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,eA4CR+zB,EA3CSmV,EAAT,SAASA,EACPH,EAAa,CACXjsC,KAAM,QACR,SACA24B,GAAAA,IACG5N,IAAI,CAAC,SADR4N,CACS0T,SAASJ,EAAa,CAAEjsC,KAAM,cAAe6L,KAAMwgC,CAAK,IAC9DrhB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QAAiBgJ,CAAAA,EAAAA,EAAAA,EAAAA,CAAUA,CAAC,iBAAkBhJ,IAC1D,EACSugC,EAAT,SAASA,EACPL,EAAa,CACXjsC,KAAM,QACR,EACF,EACSusC,EAAT,SAASA,CAAsC,MAU7CtV,EATAuV,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,kBACRP,EAAa,CACXjsC,KAAM,wBACR,WAGF8gB,GAAAA,EAAiBK,GACd4J,IAAI,CAAC,SAACshB,CAAAA,IADTvrB,KACkBmrB,EAAa,CAAEjsC,KAAM,cAAe6L,KAAMwgC,CAAK,IAC9DrhB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QAAiBgJ,CAAAA,EAAAA,EAAAA,EAAAA,CAAUA,CAAC,wBAAyBhJ,KAEhD,OADfkrB,GAAAA,EACGwV,YAAY,KADfxV,KAAAA,OAAAA,EAEIlM,IAAI,CAAC,SAACshB,CAAAA,EACFA,EACFJ,EAAa,CACXjsC,CAFM,IAEA,YACN6L,IAAI,CAAEwgC,QAAAA,KAAAA,EAAAA,EAAAA,KAAW,GAGnBJ,EAAa,CACXjsC,KAAM,QACR,EAEJ,EACCgrB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QAAiBgJ,CAAAA,EAAAA,EAAAA,EAAAA,CAAUA,CAAC,sBAAuBhJ,IAC/D,EAqBA,OApBAkrB,EAAW/yB,EAAE,CAAC,SAAUkoC,GACxBnV,EAAW/yB,EAAE,CAAC,eAAgBqoC,GAC9BtV,EAAW/yB,EAAE,CAAC,eAAgBooC,GAGf,QADfrV,EAAAA,EACGwV,YAAY,KADfxV,KAAAA,IAAAA,GAAAA,EAEIlM,IAAI,CAAC,SAACshB,CAAAA,SACFA,EAAAA,KAAAA,EAAAA,EAAMK,KAAAA,CAANL,CAAa,EACF,CACXrsC,KAAM,YACN6L,IAAI,OAAEwgC,EAAAA,KAAAA,EAAAA,EAAMK,KAAK,CAAXL,EAGRJ,EAAa,CACXjsC,KAAM,QACR,EAEJ,EACCgrB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QAAiBgJ,CAAAA,EAAAA,EAAAA,EAAAA,CAAUA,CAAC,sBAAuBhJ,KAEtD,WACLkrB,EAAW9yB,GAAG,CAAC,SAAUioC,GACzBnV,EAAW9yB,GAAG,CAAC,eAAgBooC,GAC/BtV,EAAW9yB,GAAG,CAAC,eAAgBmoC,EACjC,CACF,EAAG,CAACrV,EAAYnW,EAAgB6X,EAAUsT,EAAa,EAEvD,IAAMhuC,EAAQ,CACZg5B,WAAAA,EACAj0B,gBAAiB81B,EAAM4S,QAAQ,CAC/Bxc,OAAQ,kBAAM+H,EAAW/H,MAAM,IAC/BrF,MAAO,SAAC1I,CAAAA,SAA4B8V,EAAWpN,KAAK,CAAC1I,IACrDmqB,iBAAkB,kBAAMrU,EAAWqU,gBAAgB,IACnDxpC,UAAWg3B,EAAMh3B,SAAS,CAC1B6pC,SAAU7S,EAAM6S,QAAQ,CACxB1Z,QAASgF,EAAW0V,UAAU,IAAM,KACpC1pC,UAAW61B,EAAM71B,SAAS,CAC1BsoC,WAAYtU,EAAWsU,UAAU,EACnC,EAEA,MAAO,UAACH,EAAYhnC,QAAQ,EAACnG,MAAOA,WAAQwE,GAC9C,CAEO,SAASM,IACd,IAAM6Z,EAAUzP,EAAAA,UAAgB,CAACi+B,GACjC,QAD4CA,IACxCxuB,EACF,KADyB,CACfue,MAAO,8CAEnB,OAAOve,CACT,6FCtMMgwB,EAAmB,CAAC,OAAQ,MAAO,SAAS,CAOrCC,EAAY,SACvBvjC,CAAAA,CACArL,CAAAA,CACA6uC,CAAAA,MACAnsC,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAO,GACP8E,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAS,aACTE,EAAAA,CAAAA,CAAAA,UAAAA,MAAAA,CAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CACAonC,EADS,CACTA,CAAAA,UAAAA,MAAAA,CAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CACArnC,EADS,UACTA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAW,MAMX,QAJIma,IAAcpa,IAChBA,EAd2B,EAaH,KACfunC,OAdJvvC,SAAS0sB,QAAQ,CAAmB,YAAc,aAc9C6iB,EAGM,QAAbtnC,GAAmC,MAAM,CAAnBA,IACxBA,EAAWA,EAASW,WAAW,GAE3B,CAACumC,EAAiBxqC,QAAQ,CAACsD,IAC7B,MAAM,CADkC,SACpB,0CAA2D,OAAjBknC,IAKlE,IAAMK,EAAQ,IAAIl8B,KAAKA,KAAKonB,GAAG,IAQ3B2U,IACFA,GAAUA,EADC,GAC0B,EAEvC,GAFsB,CAEhBI,EAAe,IAFQ,KAAK,EAEEC,GAFG,IAEI,KAAML,KAAAA,EAAAA,GAAW,GAEtDM,EAAcL,EAASjN,QAFoBgN,WAED7uC,GAASA,CAEzDX,UAAS8H,MAAM,CACbkE,EACA,IACA8jC,GACCN,EAAU,SAAVA,GAAwBI,EAAaG,WAAW,GAAK,GAAC,EACtD1sC,EAAAA,SAAkBA,EAAO,GAAC,EAC1B8E,EAAAA,WAAsBA,EAAS,GAAC,CAChCE,GAAAA,UAAqB,GAAC,EACtBD,EAAAA,aAA0BA,EAAW,GAAC,EACzC,EC5C2B,CAE3BwN,gBAAkB,o/BAiDpB,EAAE,8CC5BK,uBAAMwnB,EAmCQ,CAWR,QAGkBG,EAYCC,EAmBtB,EA5CNH,EADiB,EACjBA,YAAAA,CACAC,EAFiB,EAEjBA,WAAAA,CACA0S,EAHiB,EAGjBA,aAAAA,CACA7oC,EAJiB,EAIjBA,KAAAA,CACAo2B,EALiB,EAKjBA,OAAAA,CACA1Z,EANiB,EAMjBA,QAAAA,CACA2Z,EAPiB,EAOjBA,OAAAA,CACAyS,EARiB,EAQjBA,GAAAA,CACA7oC,EATiB,EASjBA,OAAAA,CACAxH,EAViB,EAUjBA,QAAAA,CAoBA,gBAjESw9B,GAAAA,GA+CT,aA/CSA,EAAAA,EAGJC,YAAAA,CAAe,KAEfC,WAAAA,CAAc,KAEd4S,sBAAAA,CAAwD,OAEvDC,oBAAAA,CAA+C,OAE/CC,uBAAAA,CAAkE,OAIlEC,gBAAAA,CAAmB,MAEnBC,eAAAA,CAA0D,OAE1DnpC,KAAAA,CAAQ,KAERopC,gBAAAA,CAAsD,OAItDxW,OAAAA,EAAU,IAEViE,OAAAA,CAA0D,OAI1Dp+B,QAAAA,CAAW,OAEX4wC,sBAAAA,CAAyB,EAgB/B,EAAK7oC,OAAO,CAAG,IAAIC,EAAAA,CAAOA,OAAC21B,EAAAA,KAAAA,EAAgB,QAAhBA,EAAAA,CAAAA,CAASS,OAAAA,GAATT,KAAAA,MAAAA,KAAAA,EAAAA,EAAkBz1B,MAAM,EAEnD,EAAKH,OAAO,CAAC8oC,MAAM,GACnB,EAAKpT,YAAY,CAAGA,EACpB,EAAKC,WAAW,CAAGA,EACnB,EAAK0S,aAAa,CAAGA,GAAiB,IAAI,EACrC7oC,KAAK,CAAGA,EACb,EAAK4yB,OAAO,CAAGkW,SAAAA,EACf,EAAKlP,EADiB,CAAPkP,WACI,CAAGpsB,EACtB,EAAKzc,OAAO,CAAGA,GAAW,KAC1B,EAAKxH,QAAQ,CAAGA,GAAY,KAE5B,EAAKuwC,oBAAoB,CAAgC,QAA7B3S,QAAAA,EAAAA,KAAAA,EAAAA,EAAS2S,SAAT3S,WAA6B,GAA7BA,KAAAA,IAAAA,EAAAA,EAAiC,EAAKkT,mBAAmB,GACrF,EAAKR,sBAAsB,CAAG,EAAKvoC,OAAO,CAACI,GAAG,CAAC,oBAC/C,EAAKi2B,OAAO,CAAG,EAAK2S,iBAAiB,CAACpT,GAElC,EAAK2S,sBAAsB,CACyB,CADvB,YACoC,CAA/D,EAAKA,sBAAsB,CAACU,iBAAiB,CAE/C,EAAKC,aAAa,EAAGnjB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QAC1BiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CACN,0BACAjB,EACA,kFAGK,EAAK+/B,aAAa,IAAI,CAC/B,EAAK+B,gBAAgB,CAAG,EAAKO,cAAc,SAI7C,WAAI,IAAKX,oBAAAA,GAAL,oBAA2Bxb,OAAO,CACpC,CADsC,EAClC,CACE,EAAKoc,kBAAkB,GACzB,CAD6B,CACxBR,gBAAgB,CAAG,EAAKS,wBAAwB,GAAGvjB,IAAI,CAAC,kBAC3D,EAAKqjB,cAAc,KAGrB,EAAKP,gBAAgB,CAAG/S,OAAAA,EAAAA,KAAAA,EAAAA,EAASh5B,SAAS,EACtC28B,QAAQmI,OAAO,OAAC9L,EAAAA,KAAAA,EAAAA,EAASh5B,SAATg5B,EAChB,EAAKsT,cAAc,EAE3B,CAAE,QAAM,CACN,EAAKD,aAAa,EAAGnjB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QAC1BiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CACN,0BACAjB,EACA,yEAGN,MACS,EAAKw/B,UAAU,GAEpB,CAFwB,CAEnB8C,kBAAkB,IAAI,EACxBC,wBAAwB,EAAGtjB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QACrCiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CACN,0BACAjB,EACA,uGAMN,EAAKoiC,aAAa,EAAGnjB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,QAC1BiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CACN,0BACAjB,EACA,mGArHC2uB,EAAAA,SAAAA,EAAAA,SAAAA,QA+HX,EAAOoR,aAKN,CALD,SAAOA,MAIyB,SAH9B,IAAQ,CAAC0B,sBAAsB,CACtB,CADwB,GACpB,CAACjC,UAAU,IAAM,CAAC,CAAC,IAAI,CAACiC,sBAAsB,CAACvb,OAAO,CAE5D,IAAI,CAACsZ,UAAU,IAAM,CAAC,EAA0B,QAAzB,MAAI,CAACkC,oBAAAA,GAAL,oBAA2Bxb,OAAAA,CAC3D,EAKA,EAAOsc,cAEN,CAFD,SAAOA,EACL,OAAO,IAAI,CAAC3T,WAAW,EAMzB,EAAO4T,eAEN,CAFD,SAAOA,EACL,OAAO,IAAI,CAAC7T,YAAY,EAM1B,EAAa8T,OAaZ,CAbD,SAAaA,mBAAb,uBAWM,4BATI3sC,iCADJ,EAAKgqC,aAAa,GAAlB,YACgB,SAAM,EAAKW,YAAY,WACzC,SAAO,CACL3qC,UAFgB,CAEhBA,CAFgB,OAGhB2rC,qBAAsB,EAAKA,oBAC7B,UAGF,SAAO,CACLA,qBACE,aAAKA,oBAAAA,GAAL,oBAA2BiB,SAAAA,IAAc,SAAW,EAAKjB,oBAAoB,CAAG,IACpF,KACF,MAKA,EAAOkB,YAUN,CAVD,SAAOA,MAKD,SAJJ,IAAQ,CAACnB,sBAAsB,CACtB/O,CADwB,OAChBmI,OAAO,CAAC,MAGrB,eAAI,CAACgI,uBAAuB,KAA5B,oBAAgC3c,OAAAA,GAAW,IAAI,CAACsZ,UAAU,GACrD,CADyD,GACrD,CAAC+C,wBAAwB,GAAGvjB,IAAI,CAAC,kBAAM,OAG7C,IAAI,CAACojB,aAAa,GAAGpjB,IAAI,CAAC,kBAAM,MACzC,EAKA,EAAa8jB,sBAsBZ,CAtBD,SAAaA,mBAAb,uBAWQC,EAKAC,yDAfN,GAAI,EAAKvB,sBAAsB,CAC7B,CAD+B,KAC/B,GAAO/O,QAAQmI,OAAO,CAAC,SAGrB,EAAK8G,uBAAuB,CAA5B,YACF,SAAM,EAAKA,uBAAuB,SAAlC,8BAEE,EAAKE,eAAe,CAApB,YACF,SAAM,EAAKA,eAAe,SAA1B,0BAGF,GAAIkB,CAAAA,OADEA,EAAQ,EAAKF,OACfE,gBADsC,IACtCA,KAAAA,EAAAA,EAAOJ,SAAAA,UAAaI,EAAAA,KAAAA,EAAAA,EAAOE,OAAPF,IAAOE,EAC7B,CAD0C,KAC1C,GAAQ,gBAAEF,EAAAA,KAAAA,EAAAA,EAAOJ,OAAPI,EAAgB,CAAC,KAAsB,OAAnBA,QAAAA,KAAAA,EAAAA,EAAOE,CAAPF,UAAkB,GAGjC,SAAM,EAAKX,aAAa,WACzC,GADMY,CACFA,CADa,SACH,MACZ,GAAQ,gBAAEA,EAAAA,KAAAA,EAAAA,EAAUL,SAAS,CAAnBK,KAA6C,aAAtBA,EAAAA,KAAAA,EAAAA,EAAUC,UAAVD,CAAqB,GAGxD,SAAO,MACT,MAKA,EAAOd,iBAQN,CARD,SAAOA,CAA2C,EAChD,IACApT,EADMS,EAAU,CAAC,EAMjB,OALAT,SAAAA,QAAAA,EAAAA,CAAAA,CAASoU,UAAAA,GAATpU,KAAAA,IAAAA,GAAAA,EAAqBxc,OAAO,CAAC,SAACpgB,CAAAA,CAAOmoB,CAAAA,CAAO8oB,CAAAA,EACtC,iEAAiE/tC,IAAI,CAAClD,KACxEq9B,CAAO,CAACr9B,CADwE,CAChD,CAAGixC,CAAK,CAAC9oB,EAAQ,GAErD,GACOkV,CACT,EAKA,EAAOmR,YAEN,CAFD,SAAOA,EACL,OAAO,IAAI,CAACoB,gBAAgB,EAM9B,EAAOlB,UAKN,CALD,SAAOA,MAIE,SAHP,IAAQ,CAACa,sBAAsB,CACtB,CADwB,GACpB,CAACA,sBAAsB,CAACvb,OAAO,CAEZ,QAAzB,MAAI,CAACwb,oBAAoB,GAAzB,oBAA2Bxb,OAAO,EAG3C,EAAQ2c,uBAEP,CAFD,SAAQA,EACN,OAAO,IAAI,CAACnB,oBAAoB,EAGlC,EAAOlC,UAKN,CALD,SAAOA,MAIE,SAHP,IAAQ,CAACiC,sBAAsB,CACoB,CADlB,YACpB,CAACA,sBAAsB,CAAC2B,SAAS,CAEvC,eAAI,CAAC1B,oBAAAA,GAAL,oBAA2B0B,SAAAA,IAAc,MAClD,EAEA,EAAQC,eAEP,CAFD,SAAQA,EACN,OAAO,IAAI,CAAC3qC,KAAK,CAAG,YAAyB,OAAb,IAAI,CAACC,OAAO,EAAK,EACnD,EAEA,EAAQ4pC,wBA0DP,CA1DD,SAAQA,EAGN,GAAI,CAFErc,CAAAA,QAAU,MAAI,CAAC2c,uBAAuB,KAA5B,oBAAgC3c,OAAAA,GAEhC,CAAC,IAAI,CAACsZ,UAAU,GAC9B,CADkC,MAC3B9M,QAAQmI,OAAO,CAAC,MAEzB,GAAI,IAAI,CAAC8G,uBAAuB,CAC9B,CADgC,MACzB,IAAI,CAACA,uBAAuB,CAErC,IARgB,IAQV2B,EAAe,IAAI,CAACT,uBAAuB,UAgDjD,OA/CA,IAAI,CAAClB,uBAAuB,CAAGlS,MAC7B,GACE,OADC,IAAI,CAACb,YAAY,CAAC,sBAEV,OADT,IAAI,CAAC4Q,UAAU,GAAK,OAAS,SAC9B,YAAiC,OAAvB,IAAI,CAAC6D,eAAe,IAC/B,CACEhU,OAAQ,OACRkU,MAAO,WACPhU,QAAS,mBACJ,IAAI,CAACA,OAAO,GACf,eAAgB,kCAChBiU,OAAQ,kCACRC,cAAe,gBAAGH,EAAAA,KAAAA,EAAAA,EAAcX,SAAS,CAAC,IAAxBW,CAAqD,OAA1BA,QAAAA,KAAAA,EAAAA,EAAcL,QAAdK,GAAyB,GAE1E,GACAtkB,IAAI,IAAC,iBAAOuT,CAAAA,MAuBD,EAfL3C,EAME8T,EAAe5hC,yDAbvB,GAAI,CAACywB,EAAI7C,EAAE,CAIT,CAJW,MAEX,EAAKiU,iBAAiB,GAEtB,GAAO,EAAKd,uBAAuB,IAGxB,SAAMtQ,EAAI3C,IAAI,WAE3B,GAAIA,GAFS,UAEJ5vB,KAAK,CAEZ,CAFc,MACd,EAAK2jC,iBAAiB,GACtB,GAAO,EAAKd,uBAAuB,IAmBrC,OAjBQa,EAAwB9T,EAAxB8T,UAAAA,CAAe5hC,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAS8tB,EAAAA,CAAxB8T,eAGR,EAAKE,kBAAkB,CAAC,CACtBC,SAAUH,EACVI,UAAW,WAAKhiC,EAClB,GAEA,EAAK4/B,oBAAoB,CAAG,CAC1Bxb,QAAS,aAAKwb,oBAAAA,GAAL,oBAA2Bxb,OAAAA,GAAW,KAC/C+c,YAAanhC,EAAKiiC,YAAY,CAC9BC,UAAWliC,EAAKmiC,UAAU,CAC1BtB,UAAW7gC,EAAKoiC,UAAU,CAC1BC,UAAWn/B,KAAKonB,GAAG,GACnBgX,SAAS,OAAEM,EAAAA,KAAAA,EAAAA,EAAYN,SAAS,EAElC,CAFaM,CAER/B,uBAAuB,CAAG,KAC/B,GAAO,EAAKkB,uBAAuB,MACrC,YAhCctQ,CAAAA,oCAiCP,IAAI,CAACoP,uBAAuB,EAGrC,EAAOyC,iBAUN,CAVD,SAAOA,CAAqC,EAC1C,IAAI,IAAI,CAAC3C,sBAAsB,EAAE,IAG3B4C,EAA8B,IAAI,CAACxB,uBAAuB,GAChE,GAAIwB,EAA6B,CAC/B,IAAMC,EAA6B,mBAAKD,GAAAA,CAA6BpB,YAAAA,IACjEz5B,EAAAA,CAASA,EAAE,IAAI,CAAC+6B,sBAAsB,CAACD,GAC3C,IAAI,CAAC5C,oBAAoB,CAAG4C,CAC9B,EACF,EAEA,EAAaxmB,KAoBZ,CApBD,SAAaA,CAAoC,MAA5Bhe,EAAF,EAAEA,IAAAA,CAAME,EAAR,EAAQA,KAAAA,cAA3B,8EAEM,EAAK6hC,eAAe,CAApB,YACF,SAAM,EAAKA,eAAe,SAA1B,8BAEE/hC,EAAAA,MAAAA,MAQF,OAPA,EAAK8jC,kBAAkB,CAAC9jC,GAEnB,EAAK2hC,sBAAsB,EAAE,GAC3BC,oBAAoB,CAAG,EAAK8C,wBAAwB,CAAC1kC,EAAAA,EAG5D,EAAKgiC,gBAAgB,CAAG,EAAKO,cAAc,GAC3C,GAAM,EAAKP,gBAAgB,SAA3B,SAEA,EAAKtG,IAAI,CAAC,eAAgB17B,2BAExBE,GACF,EAAKw7B,EADI,EACA,CAAC,eAAgBx7B,SAE9B,MAEA,EAAamjB,MA4BZ,CA5BD,SAAaA,MAAO,0DAA6D,CAAC,GAA5DshB,mBAAAA,cAAtB,uBACQC,EAGAC,yDAAgB,OAHhBD,EAAY,GAChB,OADmB,EAAK9V,YAAY,CAAC,sBAE7B,OADR,EAAK4Q,UAAU,GAAK,OAAS,SAC9B,WAAgC,OAAvB,EAAK6D,eAAe,IACR,GAAM,EAAKP,sBAAsB,WAEvD,OAFM6B,EAAgB,SAEtB,GAAMlV,MAAMiV,EAAW,CACrBrV,OAAQ,OACRkU,MAAO,WACPhU,QAAS,mCACJ,EAAKA,OAAO,GACf,eAAgB,kCAChBiU,OAAQ,oCACJ,CAAC,EAAK/B,sBAAsB,EAAI,CAAEgC,cAAekB,CAAc,IACnErV,YAAa,WAEjB,kBAVA,SAaI9lB,EAAAA,CAASA,EAAE,CACblO,OAAOspC,YAAY,CAACC,UAAU,CAAC,cAC/BvpC,OAAOspC,YAAY,CAACC,UAAU,CAAC,iBAGjC,EAAKlB,iBAAiB,GAClBc,GACF,EAAKA,gBADkB,GACC,SAE5B,MAEA,EAAQA,mBAOP,CAPD,SAAQA,EAEJ,IAAMzsC,EAAM,IACV,OADc,IAAI,CAAC7G,QAAQ,CAAC,KAE7B,OADC,IAAI,CAACquC,UAAU,GAAK,yBAAsC,OAAb,IAAI,CAAC7mC,OAAO,CAAC,KAAK,wBAEjE2C,OAAO5J,QAAQ,CAACkzB,MAAM,CAAC5sB,EAE3B,EAEA,EAAQ2rC,iBA2BP,CA3BD,SAAQA,EACN,IAAI,CAAC7B,gBAAgB,CAAG,KACxB,IAAI,CAAC5oC,OAAO,CAACy9B,MAAM,CAAC,gBAAiB,CACnC/hC,KAAM,IACN8E,OAAQ,cACRE,OAAQ,GACRD,SAAU,KACZ,GACA,IAAI,CAACT,OAAO,CAACy9B,MAAM,CAAC,iBAAkB,CACpC/hC,KAAM,IACN8E,OAAQ,cACRE,QAAQ,CACV,GACA,IAAI,CAACV,OAAO,CAACy9B,MAAM,CAAC,WAAY,CAC9B/hC,KAAM,IACN8E,OAAQ,cACRE,QAAQ,CACV,GACA,IAAI,CAACV,OAAO,CAACy9B,MAAM,CAAC,QAAS,CAC3B/hC,KAAM,IACN8E,OAAQ,cACRE,QAAQ,CACV,GAEA,IAAI,CAAC6nC,sBAAsB,CAAG,KAC9B,IAAI,CAACC,oBAAoB,CAAG,KAC5B,IAAI,CAAClG,IAAI,CAAC,SACZ,EAEA,EAAQgJ,wBAUP,CAVD,SAAQA,CAA2C,EACjD,IAAM9C,EAEO5hC,EACAA,EAEFA,EAGX,MAR8C,CAC5CmjC,WAAW,OAAEnjC,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMgkC,SAAAA,GAANhkC,KAAAA,MAAAA,KAAAA,EAAAA,EAAiBikC,YAAY,CAC1CC,SAAS,OAAElkC,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMgkC,SAAAA,GAANhkC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiBmkC,UAAU,CACtCtB,SAAS,OAAE7iC,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMgkC,SAAAA,GAANhkC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiBokC,UAAU,CACtCC,UAAWn/B,KAAKonB,GAAG,GACnBlG,QAASpmB,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAM+jC,QAAAA,GAAN/jC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBomB,OAAO,GAAI,IACtC,CAGF,EAOA,EAAQ4e,aAYP,CAZD,SAAQA,CAAgC,EAEpC,IAKWhlC,EALLilC,EAA8B,CAClC9B,YAAanjC,EAAKgkC,SAAS,CAACC,YAAY,CACxCC,UAAWlkC,EAAKgkC,SAAS,CAACG,UAAU,CACpCtB,UAAW7iC,EAAKgkC,SAAS,CAACI,UAAU,CACpCC,UAAWn/B,KAAKonB,GAAG,GACnBlG,QAASpmB,CAAa,OAAbA,GAAAA,EAAK+jC,QAAAA,GAAL/jC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAeomB,OAAAA,GAAW,IACrC,EACA,IAAI,CAACqe,sBAAsB,CAACQ,EAGhC,EAEA,EAAQR,sBAYP,CAZD,SAAQA,CAAkD,EAExDzD,EACE,OADOA,SAEPha,KAAKC,SAAS,CAACge,GACf,KACA,IACA,cACA,IACA,EACA,MAEJ,EAEA,EAAQnB,kBAYP,CAZD,SAAQA,CAAqC,EAC3C,IAAI,CAACnC,sBAAsB,CAAG,IAAI,CAACvoC,OAAO,CAACI,GAAG,CAAC,oBAE1C,IAAI,CAACmoC,sBAAsB,EAAE,IAC5B,CAACqD,aAAa,CAAChlC,GAGrB,IAAI,CAACghC,SAAS,CAAC,YAAY,EAAM,CAC/BlsC,KAAM,IACN8E,OAAQ,cACRE,QAAQ,CACV,EACF,EAEA,EAAQ0oC,kBAOP,CAPD,SAAQA,EACN,IAAMS,EAAQ,IAAI,CAACF,uBAAuB,GAC1C,GAAI,CAACE,EACH,KADU,EACH,EAET,IAAMhX,EAAUgX,OAAAA,EAAAA,KAAAA,EAAAA,EAAOiB,OAAPjB,EAAOiB,SAAYjB,EAAAA,KAAAA,EAAAA,EAAOoB,OAAPpB,EAAOoB,EAC1C,OAAOpY,GAAUA,EAAU/mB,KAAKonB,GAAG,GAAK,KAAQ,IAAI,CAACmV,aAAa,EAGpE,CAHuE,CAG/DU,mBAoBP,CApBD,SAAQA,EAEN,IAC4BP,EAEXA,EACFA,EAEAA,EACFA,EAPPA,EAAqC,IAAI,CAACxoC,OAAO,CAACI,GAAG,CAAC,yBAC5D,UAA4BooC,EAAAA,KAAAA,EAA8B,QAA9BA,EAAAA,EAAsBmC,QAAQ,GAA9BnC,CAAAA,IAAAA,MAAAA,KAAAA,EAAAA,EAAgCxb,OAAAA,EACnB,CAD4B,WAEtD,SAAEwb,EAAAA,EAAqBoC,SAAAA,GAArBpC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgCqC,YAAY,CACzDC,SAAS,OAAEtC,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAsBoC,SAAAA,GAAtBpC,KAAAA,MAAAA,KAAAA,EAAAA,EAAiCuC,UAAU,CACtDE,UAAWn/B,KAAKonB,GAAG,GACnBuW,SAAS,OAAEjB,EAAAA,KAAAA,EAA+B,QAA/BA,EAAAA,EAAsBoC,SAAAA,GAAtBpC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiCwC,UAAU,CACtDhe,OAAO,CAAEwb,QAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAsBmC,MAAtBnC,EAAsBmC,GAAtBnC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgCxb,OAAO,EAMb,IAAI,CAAChtB,OAAO,CAACI,GAAG,CAAC,EACrC,gBAGZ,IACT,EAEA,EAAQ8oC,aAoDP,CApDD,SAAQA,EAWN,GAVI,IAAI,CAAC9W,OAAO,EAAE,CAEhB,IAAI,CAACuW,eAAe,CAAGnP,QAAQmI,OAAO,CAAC,CACrCoI,YAAa+B,EAAOj2B,IAADi2B,CAAM,GAAiB,OAAd,IAAI,CAACtsC,KAAK,CAAC,KAAc,OAAX,IAAI,CAACA,KAAK,GAAImvB,QAAQ,CAAC,UACjEmc,UAAWh/B,KAAKonB,GAAG,GAAK,IAAO,KAC/BuW,UAAW,QACXwB,UAAWn/B,KAAKonB,GAAG,GACnBlG,QAAS,IACX,IAEE,IAAI,CAAC2b,eAAe,CACtB,CADwB,MACjB,IAAI,CAACA,eAAe,CAG7B,MAAMoD,EAAW,GAEsB,OADrC,IAAI,CAACrW,YAAY,CAClB,wCAA6D,OAAvB,IAAI,CAACyU,eAAe,WAkC3D,OAjCA,IAAI,CAACxB,eAAe,CAAGpS,MAAMwV,EAAU,CACrC5V,OAAQ,OACRkU,MAAO,WACPhU,QAAS,mBACJ,IAAI,CAACA,OAAO,GACf,eAAgB,kCAChBiU,OAAQ,kCACRlU,YAAa,YAEfnd,KAAM2U,KAAKC,SAAS,CAAC,CACnByI,OAAQ,IAAI,CAAC92B,KAAK,EAEtB,GAAGsmB,IAAI,IAAC,iBAAO0F,CAAAA,MAMLkL,6DALJlL,EAAKgL,EAAE,CAAPhL,MAAAA,MACF,GAAI,EAAKxrB,OAAO,CAACI,GAAG,CAAC,oBAEnB,CAFwC,MACxC,EAAKmoC,sBAAsB,CAAG,EAAKvoC,OAAO,CAACI,GAAG,CAAC,oBAC/C,GAAO,MAEI,SAAMorB,EAAKkL,IAAI,WAU5B,OAVMA,EAAO,SACb,EAAK8R,oBAAoB,CAAG,CAC1BuB,YAAarT,EAAKmU,YAAY,CAC9BC,UAAWpU,EAAKqU,UAAU,CAC1BtB,UAAW/S,EAAKsU,UAAU,CAC1BC,UAAWn/B,KAAKonB,GAAG,GACnBlG,QAAS,IACX,EAEA,EAAK2b,eAAe,CAAG,KACvB,GAAO,EAAKH,oBAAoB,SAGlC,OADA,EAAKG,eAAe,CAAG,KACvB,GAAO,QACT,YApBend,CAAAA,oCAqBR,IAAI,CAACmd,eAAe,EAG7B,EAAQf,SAaP,CAbD,SAAQA,CACM,CACZ5uC,CAAc,MACd2I,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAA4B,CAC1BjG,KAAM,IACN8E,OAAQ,cACRE,QAAQ,CACV,EAEA,GAAI,CACF,IAAI,CAACV,OAAO,CAACO,GAAG,CAAC8D,EAAMrL,EAAO2I,EAEhC,CAAE,QAAM,CAAC,CACX,EAEA,EAAa0kC,gBAMZ,CAND,SAAaA,mBAAb,0EACE,GAAI,EAAKkC,sBAAsB,CAC7B,CAD+B,KAC/B,IAGF,OADA,EAAKK,gBAAgB,CAAG,EAAKO,cAAc,GAC3C,GAAM,EAAKP,gBAAgB,gBAA3B,eACF,MAEA,EAAcO,cAuFb,CAvFD,SAAcA,mBAAd,uBAUuC,EAD/B6C,EACAhf,EACAif,EAIA76B,EAIA86B,EAWAC,EACAC,EACAC,EACAhT,EA+CA3C,6DA/EF,GAAKmS,sBAAsB,CAAG,GAA9B,gBACE,EAAKN,sBAAsB,CAA3B,YACF,SAAM,EAAKte,MAAM,kBACjB,OADA,SACA,GAAO,aAGT,OADA,EAAKwgB,iBAAiB,GACtB,GAAO,aAIU,OADbzd,EAAUgf,OADVA,GAAW,EAAKrC,SACNqC,cAD6B,IAC7BA,KAAAA,EAAAA,EAAUhf,OAAO,YAAI,IAAKub,sBAAAA,GAAL,oBAA6Bvb,OAAAA,EAC/C,GAAM,EAAK4c,sBAAsB,WACpD,GADMqC,EAAa,SACf,CAAC,EAAKpF,aAAa,IAAM,CAAC7Z,EAC5B,OADqC,EAC9B,MAoBG,OAlBN5b,EAAiC,CACrC4b,QAAAA,EACA/0B,SAAU,EAAKA,QAAQ,EAEnBi0C,EAAc,CAClB7V,QAAS,mCACJ,EAAKA,OAAO,GACf,eAAgB,kCAChBiU,OAAQ,oCACJ,CAAC,EAAK/B,sBAAsB,EAAI,CAAEgC,cAAe0B,CAAW,IAChE7V,YAAa,WAEjB,EACA,EAAKyS,sBAAsB,GAErBsD,EAAa,IAAIG,gBACjBF,EAAeprB,WAAW,kBAAMmrB,EAAWI,KAAK,IAAI,EAAK7D,gBAAgB,EAEnE,GAAMnS,MADZ8V,EAAa,GAAsB,OAAnB,EAAK1W,WAAW,EAA0B,OAAvB,EAAKwU,eAAe,GAAG,wBAC5B,iBAClChU,OAAQ,QACL+V,GAAAA,CACHjzB,KAAM2U,KAAKC,SAAS,CAAC,CACnB9D,MAAOyiB,EAAcv+B,WAADu+B,IAAgB,CACpCp7B,UAAAA,EACApD,cAAe,OACjB,GACAy+B,OAAQN,EAAWM,MAAM,GACxB1mB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EAER,MADA4lC,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAAC,+BAAgC5lC,EAAO,gCAA2C,OAAXulC,IACxE,IACT,WAGA,GAfMhT,EAAM,SAaZoI,aAAa2K,GAET,CAAC/S,EACH,GADQ,GACR,GAAO,SAGLsT,CAAAA,CASA,CATAA,EAAAA,CAAAA,CAAiBA,CAACtT,IACpBuT,CAAAA,CAD0B,CAC1BA,EAAAA,CAAAA,CAAsBA,CAAC,CACrBC,YAAa,CACX7+B,cAAe,mBACfE,eAAgB,OAClB,CACF,GAGGmrB,EAAI7C,EAAE,CAAP,iBACE,EAAC,EAAK+R,sBAAsB,EAAmB,MAAflP,EAAI/xB,MAAM,CAAO,CAAjD,gBACE,GAAKuhC,sBAAsB,GAAI,EAA/B,YACF,SAAM,EAAKa,YAAY,EAAG3jB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EAE/B,MADA4lC,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAAC,+BAAgC5lC,EAAO,oBACxC,IACT,kBAHA,sBAKA,SAAO,iBAGP,EAAKyhC,sBAAsB,CAA3B,aACF,SAAM,EAAKte,MAAM,YAGnB,SAAO,EAAKkf,cAAc,YAIf,MAFb2D,CAAAA,EAAAA,EAAAA,CAAAA,CAAiBA,CAACzT,EAAK,EAAKD,cAAc,OAAIxe,GAEjC,GAAMye,EAAI3C,IAAI,gBACvBA,CADEA,EAAO,UACJ38B,MAAM,CAAX28B,MAAAA,OACF,SAAM,EAAKgT,YAAY,YAAvB,4BAIF,OAFA,EAAKb,sBAAsB,CAAG,EAE9B,GAAOnS,EAAK9vB,IAAI,IAClB,MA7pBW6uB,GAAmBwN,EAAAA,YAAYA,EA8pB3C,EExrBgC,gBACVpmC,EAIdkwC,EAAAA,EAL2BlwC,EAAAA,EAAAA,SAAAA,CAAWmwC,EAAAA,EAAAA,mBAAAA,CACvCD,QAAelwC,EAAAA,KAAAA,EAAuB,QAAvBA,EAAAA,EAAWowC,CAAXpwC,WAAWowC,GAAXpwC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBwH,IAAI,QAClD,EACS0oC,OAAAA,EAAAA,KAAAA,EAAAA,EAAcG,CADE,QACFA,GAAa,EAA3BH,CAEFA,OAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAcI,IAAdJ,aAAcI,GAAdJ,KAAAA,MAAAA,KAAAA,EAAAA,OAAAA,GAAAA,CAAiC,CAAC,KAAlCA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAsCG,SAAAA,UAAaH,EAAAA,KAAAA,EAAAA,EAAcG,SAAS,GAAI,EAA3BH,EAC1D,EAE8B,gBACTlwC,EAIdkwC,EAAAA,EAL0BlwC,EAAAA,EAAAA,SAAAA,CAAWmwC,EAAAA,EAAAA,mBAAAA,CACtCD,QAAelwC,EAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAWowC,CAAXpwC,WAAWowC,GAAXpwC,KAAAA,MAAAA,KAAAA,EAAAA,EAAyBwH,IAAI,QAClD,EACS0oC,OAAAA,EAAAA,KAAAA,EAAAA,EAAc/W,CADE,OACM,GAAI,GAE5B+W,OAAAA,EAAAA,KAAAA,EAA+B,QAA/BA,EAAAA,EAAcI,IAAdJ,aAAcI,GAAdJ,KAAAA,MAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAAiC,CAAC,KAAlCA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAsC/W,QAAAA,UAAY+W,EAAAA,KAAAA,EAAAA,EAAc/W,QAAQ,GAAI,EACrF,CAD2D+W,CACzD,EAE6B,gBACRlwC,EAIdkwC,EAAAA,EALyBlwC,EAAAA,EAAAA,SAAAA,CAAWmwC,EAAAA,EAAAA,mBAAAA,CACrCD,QAAelwC,EAAAA,KAAAA,EAAuB,QAAvBA,EAAAA,EAAWowC,CAAXpwC,WAAWowC,GAAXpwC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBwH,IAAI,QAClD,EACS0oC,OAAAA,EAAAA,KAAAA,EAAAA,EAAcK,CADE,MACFA,GAAW,GAE3BL,CAFEA,QAEFA,KAAAA,EAAAA,QAAAA,CAAAA,CAAAA,EAAcI,iBAAAA,GAAdJ,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAAiC,CAAC,KAAlCA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAsCK,OAAAA,UAAWL,EAAAA,KAAAA,EAAAA,EAAcK,OAAAA,GAAW,EACnF,EAAE,0IGXWzmB,EAAS,CACpBwG,GAAI,KACJvG,QAAS,GACX,EAAW,SAwFFymB,WACP,EAAK/8B,CAASA,CAGPlO,CAHS,MAGFkrC,iBAAiB,CAFtB,IAGX,CA4BO,SAASC,EACdC,CAAuB,CACvBlmC,CAAoB,EAEpB,IAAMmmC,EAAiBJ,WACvB,EAIO,EAJH,EAIO7T,QAAQ,EAJE,OAIDmI,CAAAA,CAASgB,CAAAA,EAC3B,IAAMpY,EAlBgB,OAkBPmjB,GAlBV,OAAOF,EACV,CAAC,SAAEziC,EAiB0ByiC,CAjBvBA,EAAW,CAAC,CAAChW,GAAK,CAAEA,EAiBUlwB,CAjBVkwB,GAAO,CACjCgW,EAAMjvC,GAAG,CAAC,gBAAGksB,EAAAA,EAAAA,OAAAA,CAASnjB,EAAAA,EAAAA,MAAAA,OAAc,SAClCyD,EAAG0f,GACC,CAAC,CAACnjB,GAAU,CAAEkwB,EAAGlwB,CAAO,WAehCmmC,GAAAA,EAAgBE,IAAI,CAACpjB,EAAQ,SAACzjB,CAAAA,CAAO+e,CAAAA,EAC/B/e,CADN2mC,EAEI9K,EAAO77B,EADE,CAGX66B,EAAQ9b,EACV,EACF,GAXS2T,QAAQmI,OAAO,CAAC,KAY3B,CAEO,SAASvb,EAA0BonB,CAAuB,EAC/D,OAAOD,EAAwBC,EAAO7mB,EAAOwG,EAAE,CACjD,CAEO,SAASoK,EAAgBqW,CAAc,CAAE50C,CAAc,EAC5D,IAAMy0C,EAAiBJ,WACvB,EAIO,EAJH,EAIO7T,QAAQ,EAJE,OAIDmI,CAAAA,CAASgB,CAAAA,QAC3B8K,GAAAA,EAAgBE,IAAI,CAAC,CAAC,CAAE31B,EAAG41B,EAAQ1G,EAAGluC,CAAM,EAAE,CAAE,KAAhDy0C,IAAiD3mC,CAAAA,EAC/C,GAAIA,EAAO,CACTiB,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,kBAAmBjB,EAAM+mC,OAAO,CAAE,cAAqB,OAAPD,IACzDjL,EAAO77B,GACP,MACF,CACA66B,GACF,EACF,GAZSnI,QAAQmI,OAAO,EAa1B,CAEO,SAAS/qB,EAAWg3B,CAAc,CAAE50C,CAAc,EACvD,IAAMy0C,EAAiBJ,IAClBI,IAILA,SAAAA,EAAgBE,CAJK,GAID,CAAC,CAAC,CAAE31B,EAAG41B,EAAQ1G,EAAGluC,CAAM,EAAE,CAAE,kBAAM,OACxD,uEClKM80C,EAAa,iBAAM,mBAAqBx9B,CAAAA,CAAAA,CAASA,CAAGlO,OAAO5J,QAAQ,CAACE,QAAQ,CAAG,GAAC,EAEhFq1C,EAAY,CAChBC,QAASF,IACTG,SAAU,uBACZ,EAEMC,EAAkC,CACtCC,eAAe,EACfnwC,WAAW,EACX8I,MAAO,IACT,EAEA,SAASsnC,EACP7jB,CAAe,CACf8jB,CAA2D,EAE3D,OAAO9jB,EAAOnW,MAAM,CAAC,SAACC,CAAAA,CAAAA,CAAAA,MAAOoW,EAAAA,EAAAA,OAAAA,CACrBoJ,EAC0B,YAA9B,OAAOwa,EAAoCA,EAAmB5jB,GAAW4jB,EAC3E,MAAO,mBAAKh6B,GAAK,WAACoW,EAAUoJ,GAC9B,EAAG,CAAC,EACN,CAEA,SAASya,IACP,MAAOp7B,CAAAA,EAAAA,EAAAA,CAAAA,CAAQA,CAAc,CAC3BC,SAAU,CAAC26B,IAAa,CACxBS,YAAaL,EACbM,OAAQC,IACRC,UAAWD,IACXp7B,SAAS,CACX,EACF,CAqEO,SAAStP,EAAwB0mB,CAAyB,CAAEnjB,CAAoB,EAErF,OA1CF,SAASqnC,CAA4B,CAAErnC,CAAoB,CA0CrCijB,CAzCpB,MArBIrX,EAJFtM,MAGA5I,EAsBIssB,EAAgBC,OAAAA,EAAAA,KAAAA,EAAAA,EAAQjsB,MAAAA,EAARisB,EAAmB,EACNqkB,GA5B3BhoC,EAAsB0nC,IAAtB1nC,IAAAA,GAMJsM,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAQA,CAA8C,CACxDC,IAqBiCy7B,KArBvB,CAACb,EAAUE,QAAQ,CAqBiC1jB,EAAQjjB,EArBxB,CAC9CunC,QAAS,kBAAMtB,QACfl6B,QAASy7B,EAAYX,KADiBZ,CAAChjB,OACL,CADajjB,OAExC,CACT,IATEV,IAAAA,CACAmoC,EAGE77B,EAHF67B,SAAAA,CACAjoC,EAEEoM,EAFFpM,KAAAA,GAEEoM,EADFlV,SAAAA,CAQFC,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACJ8wC,UAAanoC,EAAAA,KAAAA,EAAAA,EAAMooC,IAAI,EAAVpoC,CAAY,OACpBiN,OAAO,CAACjN,EAAKooC,IAAI,EAAE51B,OAAO,CAAC,kBD0CxBhX,mBC1C0BqoB,EAAAA,CAAAA,CAAAA,EAAAA,CDyCNtmB,CCzCeA,CAAAA,CAAAA,CAAAA,EDyCA,CAMjD8qC,CANmDzB,EAI7B1V,CAHR11B,CAAAA,CADmD,OACnDA,EAAAA,OAAO8sC,eAAAA,GAAP9sC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwBlB,KAAK,CAAC,KAAK5D,MAAM,CAACtB,QAAAA,GAAY,EAAE,EAG1CsB,MAAM,CAAC,SAAC6xC,CAAAA,MAASA,QAAAA,CAAAA,QAAAA,EAAAA,EAAKjuC,KAAK,CAAC,OAAXiuC,KAAAA,MAAAA,KAAAA,EAAAA,CAAiB,CAAC,QAAO3B,GAExDvoC,IAAI,CAAC,GAAYd,MAAAA,CC9CGsmB,ED8CN,KAAU,OAAPtmB,IAC/B/B,OAAO8sC,eAAe,CAAGD,EAAc71C,IAAI,CAAC,IC9CxC,EAEJ,EAAG,CAAC21C,EAAWnoC,EAAK,EAIb,CAAEA,KAAAA,EAAME,MAFDgoC,CAEChoC,CAFWA,KAAK,EAAIsoC,EAEbpxC,UADJ8wC,CACI9wC,CADQA,SAAS,EAAK8wC,EAAYX,aAAa,EAAIkB,CACzC,GAKxBzoC,EAA2BgoC,EAA3BhoC,IAAAA,CAAME,EAAqB8nC,EAArB9nC,KAAAA,CAER9C,CAFehG,CAEJ,CAACA,EAFGA,SAAAA,CAGfsxC,EAAqC,CAAErrC,UAAW,KAAMD,SAAAA,EAAU8C,MAAAA,CAAM,EACxEyoC,EAAe,SAAC9kB,CAAAA,EACpB,IAAa7jB,EAEHA,EAFJgkB,QAAOhkB,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAM4oC,KAAAA,GAAN5oC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAa3J,IAAI,CAAC,mBAAW8N,EAARA,CAAAA,GAAc0f,IAChD,MAAO,CACLtmB,MAAM,CAAEyC,QAAAA,KAAAA,EAAAA,EAAAA,MAAAA,EAAAA,EAAMooC,IAAAA,GAANpoC,KAAAA,MAAAA,KAAAA,EAAAA,CAAY,CAAC6jB,EAAQ,CAC7BnjB,MAAM,OAAEsjB,EAAAA,KAAAA,EAAAA,EAAM4M,CAAC,CACfjE,IADQ3I,OACFA,EAAAA,KAAAA,EAAAA,EAAM6kB,EAAE,CAElB,EAGA,CALU7kB,EAKN9jB,EACF,KADS,EACFwjB,EAAgBglB,EAAelB,EAAa7jB,EAAQ+kB,GAG7D,IAAMI,EAAsBtB,EAAa7jB,EAAQ,SAACE,CAAAA,EAEhD,MAAO,CAAE3jB,MAAAA,EAAO9C,SAAAA,EAAUC,UADRsrC,CACQtrC,CADKwmB,EACK,CACtC,GAEMklB,EAAsD3rC,EACxD0rC,EACAtB,EAAa7jB,EAAQ+kB,GAGnBM,EAAarlB,CAAM,CAAC,EAAE,CAC5B,OAAOD,GAAiBslB,EAAaD,CAAW,CAACC,QAAAA,KAAAA,EAAAA,EAAYnlB,MAAZmlB,CAAmB,CAAC,CAAGD,CAC1E,EASiB,iBAAOllB,EAAuB,CAAC,CAAEA,QAAAA,EAASnjB,OAAAA,CAAO,EAAE,CAAGmjB,EACzCnjB,EAC9B,CAEO,SAASlC,IACd,IAAMvC,EAASC,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAY7B,OATAwrC,IAEIh+B,EAAAA,CAASA,EAAE,OACFu/B,mBAAmB,GAAKztC,OAAO5J,QAAQ,CAACE,QAAQ,EAAE,CAC3D0J,OAAOytC,mBAAmB,CAAGztC,OAAO5J,QAAQ,CAACE,QAAQ,CACrD0J,OAAO8sC,eAAe,MAAGt0B,GAItB,SAACvgB,CAAAA,MDpDC+H,GAHJkO,EAAAA,CAASA,CAGP,CAHS,CAGR,SAAClO,EAAAA,MAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ0tC,WAAAA,EAFR,IACT,GAIK,SAAyBz1C,CAA0B,EACxD,GCkDmB8K,CDlDf,CAACmL,CAASA,EAAE,IAIblO,EADGkrC,EACJ,SAAClrC,EAAAA,MAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ0tC,WAAAA,GAAe,IAAI1tC,OAAO0tC,WAAW,CAACC,SAAS,CAAC11C,IAAY,KACvE+H,OAAOkrC,iBAAiB,CAAGA,EAE7B,EC2CsBjzC,GAChBwI,EAAOq3B,YAAY,CAAC,CAAC4T,IAAa,CAAE,CAClCK,eAAe,EACfnwC,WAAW,EACX8I,MAAO,IACT,IAEAjE,EAAOq3B,YAAY,CAAC,CAAC4T,IAAa,CAAE,CAClCK,eAAe,EACfnwC,WAAW,EACX8I,MAAO,MAAU,iBACnB,EAEJ,CACF,CC/JO,SAASmkB,EACdV,CAAuB,CACvBnrB,CAAwC,EAGxC,GAAI,CAACA,EACH,MADW,CACJ,EAGT,IAoBOouC,EAAAA,EApBC/iB,EAAuBrrB,EAAvBqrB,OAAAA,CAASulB,EAAc5wC,EAAd4wC,SAAAA,CAGjB,GAAI,CAACvlB,GAAW,CAACulB,EACf,OAAO,EAGT,IAAMxC,EAAQjjB,CAAM,CAACE,EAAQ,OAG7B,CAAI,CAAC+iB,IAAWA,EAAM1mC,GAAR,CAAC,CAAY,EAAE,CAKxB0mC,EAAMxpC,QAAQ,CAKZwpC,CALc,QAKdA,EAAAA,EAAMvpC,SAAAA,GAANupC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAiBrpC,MAAAA,GAAjBqpC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBpsC,WAAW,MAAO4uC,EAJ3B,MAAdA,EAKX,oEGhCO,IAAMC,EAAoB,CAC/B,UACA,WACA,UACA,yBACA,8BACA,aACA,wBACA,mCACA,kBACA,eACA,8BACA,qBACA,sCACA,oCACA,iCACA,+BACD,CAAU,sBCbJ,SAAStnB,QAcOvmB,EAbrB,OAAOkO,EAAAA,CAASA,EAaXlO,CAbc8tC,MAaPC,KAAK,EAAI/tC,CAAoB,GAbLguC,KAafhuC,EAAAA,OAAOiuC,aAAAA,GAAPjuC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAsBkuC,OAAAA,IAAY,eAAe,QAE5Dn6B,IAAI,CACV,kGAGG/T,OAAO+tC,KAAK,EAAI,CAAC,GAIjBvwC,EAAQ3D,GAtBjB,CAOO,CAeS2D,QAfA3D,EAAIhD,CAAY,CAAEs3C,CAAqB,EACrD,OAAO5nB,GAAQ,CAAC1vB,EAAI,EAAIs3C,GAAgB,EAC1C,2GIdA,EAUA,EAUA,4EDxBA,cAAoW,EAA5U,IAA4U,CAAtO,EAA3E,4DAA2E,YAAkC,iBAA+B,GAAP,MAAO,GAAkC,sGAAmI,GAEpW,SACA,YACA,UACO,cAQP,OAPA,uCACA,KACA,eACA,0BAGA,CAAG,EACH,CACA,CACO,aACP,sHACA,2BCjBA,SAAS,EAAO,GAAoV,EAA5U,IAAmV,CAA7O,EAA9G,WAAkW,CAA7O,OAAlF,yCAAkF,YAA2B,iBAAsC,GAAd,MAAc,GAA2B,YAA3B,UAA2B,gFAAiJ,GAMlX,2BACA,yCACA,eACI,0CACJ,kBAMI,IACJ,aADqB,OACrB,8BACA,wBACI,mDACJ,2BAMA,mCACA,iDACA,uBACI,kDACJ,0BAIA,IAAiB,GAAS,SAAwD,GAAqB,EAAS,CAChH,EADmG,IAAzE,MAC1B,qBAEA,oBACA,MAAuB,WAAP,EAAO,IACvB,QADuB,CAGvB,eACA,0DAGA,eACA,4CACA,CAEA,QACA,EAEA,oBACA,qBACA,6BAGA,MAAgB,EAAQ,EAAG,IAAH,SAAG,0DAC3B,0CACA,IAAgB,EAAQ,CACxB,KADwB,EACxB,eACA,6BACA,SACA,CAAG,6FACH,yCACA,gBACK,EACL,0BACA,QACA,gBACA,MACA,CAAO,CACP,CAAK,UACL,CAAG,UACH,EAEA,oBACA,GAAwB,WAAP,EAAO,IACxB,QADwB,GACxB,UAGA,qBACA,6BAGA,IASA,CALA,EADA,EACA,MAEA,6BAGA,yBAEA,eACA,wDAGA,sCAEA,GACA,uEAGA,oBACA,uCAGA,IAxBA,EAwBA,kBAGA,GAFA,6BAGA,eACA,0BAIA,iCACA,mDACA,gBACA,mBACA,CAAO,CACP,EAEA,SACA,CAAI,SACJ,uBACA,CACA,EAmBA,MAjBA,oBAiBsB,IATtB,CAPA,uBACA,IACA,UAGA,kBAEA,GACA,WAGM,GAAiB,iCACvB,iBAEA,EC7GA,qBAlCA,EAmCA,cACA,WApC8D,KAoC9D,gDACA,6DAzCA,cAAkD,qBAA0C,sDA2C5F,QAEA,gBACA,eACA,kBACA,oBACA,gBACA,CAiJA,OA/LA,EAgDA,EACA,WACA,kBACA,WAEA,4DACA,2DACA,iBACA,aAAqB,EAAQ,kBAA4B,CAhDzD,CACA,qBAA0B,KAAK,GAAG,IAAI,OACtC,wBAA6B,KAAK,GAAG,IAAI,EACzC,qBACA,kBACA,oBACA,CAAK,CACL,yBACA,iCAdA,IAeA,OAfA,EAeA,EAA+B,CAf/B,EAe+B,MAfa,OAAkB,wBAe/B,EAf+B,CAAkC,kDAAoE,EAAY,EAejJ,CAf0I,CAAO,GAAoB,CAgBpM,CAAK,CACL,IAjBoM,IAiBvL,EACb,SADoB,MACpB,iCACA,gBAAqB,CACrB,oBAAyB,CACzB,eACA,mBACA,oBACA,gBACA,YACA,0BACA,eACA,CACA,GA0BA,kBAEA,4CACA,uBACA,iBACA,CAAS,6BAET,CACA,CAAG,EACH,gBACA,sBACA,4BAEA,0CACA,+BAGA,gDACA,gBACA,cACA,CAAO,EACP,qBACA,CACA,CAAG,EACH,WACA,sBACA,4BAEA,0CACA,mCAGA,gDACA,MACA,IACA,CAAO,EACP,qBACA,CACA,CAAG,EACH,cACA,wBACA,WAEA,6DAKA,IAJA,+EAAwH,4BACxH,kEAAuG,4BACvG,6GACA,oBAGA,IAEA,EADA,wBACA,4BAEA,MAEA,CAAU,SACV,gCACA,CAEA,oBACA,SACA,CAAO,CACP,CACA,CAAG,EACH,aACA,0BACA,WAEA,yBACA,4BACA,uCACA,IACA,KACA,KACA,sBACA,wBAEA,sCACA,2BAGA,6CACA,MACA,IACA,CAAS,EAET,8CACA,KACA,UACA,UAEA,cACA,SAEA,CAAS,CACT,CAAO,EACP,CACA,CAAG,EACH,aACA,iBACA,WAEA,gBACA,qBACA,kBACA,WACA,aACA,mCACA,SAEA,cACA,wBACA,oBACA,yBACA,CAAS,CACT,EAEA,KACA,qEACA,WACA,CAAO,EACP,sBACA,oCACA,0CACA,iFACA,yEACA,wCACA,CAAW,CACX,CAAS,CACT,CAAO,EACP,CACA,CAAG,EA/LH,cAA4C,YAAgB,WAAkB,KAAO,WAA2B,8BAAwD,kBAAgC,6BAAuD,mCAkD/P,EAhD8D,aA+L9D,CACA,CAAC,GC5LM,KDJ6H,ICIpH9e,IACd,sDDLgM,CCKhM,YAAoF,KAApF,eAAI+e,EAAJ,KAAsB5nC,EAAtB,KAyCA,OAAO6nC,IAvCiC,SAACz4C,CAAAA,EACvC,IAAMC,EAAWD,EAAM4F,MAAM,CAAC+H,MAsCL8qC,CAACC,CAtCc,KACoB14C,EAAAA,EAAM45B,SAAS,EAAI,CAAC,EAAxE+e,EAAoD34C,EAApD24C,YAAAA,CAAclxC,EAAsCzH,EAAtCyH,OAAAA,CAASmxC,EAA6B54C,EAA7B44C,SAAAA,CAAWve,EAAkBr6B,EAAlBq6B,aAAAA,CAE1C,GAAI/hB,EAAAA,CAASA,EAAI7Q,UAAWkxC,EAAAA,KAAAA,EAAAA,EAAcE,UAAAA,GAAcxe,CAA5Bse,CAA2C,CACrE,IA2BQA,EA3BQte,EAAVye,QAAUze,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAe0e,KAAf1e,GAAe0e,GAAf1e,KAAAA,MAAAA,KAAAA,EAAAA,CAAyB,CAAC5yB,EAAQ,CAClD,GAAIqxC,GACF,GAAIF,EAAW,CADJ,IAGHI,EAAoB,GAA0BF,MAAAA,CADxB,CAAC,EAA0B,OAAb74C,EAAoB,IAAa,OAATA,GAAa,GAC9B,KAAW,OAAR64C,EAAQ,YAC5DH,EAAaE,UAAU,CAAG,mBACrBF,EAAaE,UAAU,GAC1BI,IAAK,CDgLF,EChLsB,CACzBC,ID+KU,IC/KD,CACPC,SAAU,GAAqB,OAAlBH,EAAkB,mBAC/BI,QAAS,GAAqB,OAAlBJ,EAAkB,0BAChC,GAEJ,MACEL,CADK,CACQE,UAAU,CAAG,mBACrBF,EAAaE,UAAU,GAC1BI,IAAK,GAAoB,CACzBC,QAAS,CACPC,SAAU,IAAY,OAARL,EAAQ,gCACtBM,QAAS,IAAY,OAARN,EAAQ,uCACvB,IAIR,CAEA,IAAMD,EACJjoC,IAAQ+nC,QAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAcE,UAAAA,GAAdF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B3qC,IAAAA,EAC9B,WAAK4C,QAAU+nC,EAAAA,KAAAA,EAAAA,EAAcE,UAAU,EACvCj2B,EADe+1B,KAGrB,MAAOU,CAAAA,EAAAA,EAAAA,EAAAA,CAA6BA,CAACb,EAAkBK,GAAY74C,EACrE,EAE6Dw4C,EAC/D,CDmJA,iBEpMA,IAAMc,ECF6B,SAAC3rC,CAAAA,QAClC,CDCgD,KCD3B,CAAjBA,EACK,QAEFA,CACT,EAAE,SASc8X,EACdzkB,CAAgC,CAChC,CAA2E,MAAzE2M,EAAF,EAAEA,MAAAA,CAAQhE,EAAV,EAAUA,OAAAA,CAEV,MAAwB,UAAjB,OAAO3I,EACVu4C,KAAKC,YAAY,CACfC,EAAoB9rC,GACpBhE,GAbN,CAAe,MAAM,CAamBgE,EAZ/B,CAAE+rC,aAAa,CAAM,EAEvB,CAAEA,aAAa,CAAK,CAD3B,GAYMC,MAAM,CAAC34C,GACT,EACN,CCdO,IAAM44C,EAAyB,CACpC5jC,cAAe,iBACfC,gBAAkB,6HAOlBC,eAAgB,gBAClB,EAAE,WCGK,SAAS2jC,EACdlsC,CAAc,CACdlG,CAAe,CACfX,CAAW,CACXuzB,CAAoC,EAEpC,GAAI,CACF,GAAIA,GAAiB1sB,EAAQ,CAC3B,IAAqBA,EAAfmsC,EAAensC,CAAa,QAAbA,EAAAA,EAAOosC,KAAK,CAAC,+BAAbpsC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,CAA2C,CAAC,KAAM,KACjE4L,EAAa8gB,EAAc9gB,UAAU,CAErCygC,EAAWC,WADQ/1C,IAAI,CAAC4C,GAAO,IAAIqE,IAAIrE,GAAO,IAAIqE,IAAIrE,EAAK,2BACzCpG,QAAQ,CAOhC,OAAOw5C,CANkB3gC,GACrB,IAAIwC,EAAAA,UAAUA,CAAC,CACb1P,KAAM,qBACNkN,WAAAA,CACF,GAAGyC,GAAG,CAAC,CAAE/b,SAAU65C,EAAchzC,IAAKkzC,EAAUvyC,QAAAA,CAAQ,EAG9D,CACA,EAHM,KAGC,CACT,CAAE,QAAM,CACN,OAAO,CACT,CACF,CAEO,SAASk6B,IACd,mEAAuF,KAAvF,eAAIh0B,EAAJ,KAAYlG,EAAZ,KAAqBX,EAArB,KAA0BuzB,EAA1B,KAEMue,EAAYiB,EAA2BlsC,EAAQlG,EAASX,EAAKuzB,GAEnE,MAAO,CACL5yB,QAAAA,EACA4yB,cAAAA,EACAwH,UAJgB+W,CAIhB/W,CAJ4B,KAAOl0B,EAKnCirC,UAAAA,CACF,CACF,CAEA,IAAMuB,EAaqB,SAAC73B,CAAAA,CAAqBzK,CAb7B,SAclByK,EAAY/J,OAAO,CAAC,WAAYV,IAAM,sBE7CjC,SAAekhB,EAAgB,CAMjB,SANCA,EAAAA,KAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,UAAAA,CAAAA,EAAf,iBAA+B,CAMjB,MALnBr1B,EACAiK,EACAqrB,EACAT,EAAAA,EACAtqB,EAUQqN,EACF8+B,EACAC,OAIAC,wDAdN,GANA52C,EADoC,EACpCA,IAAAA,CACAiK,EAFoC,EAEpCA,MAAAA,CACAqrB,EAHoC,EAGpCA,IAAAA,CACAT,EAJoC,EAIpCA,WAAAA,CACAtqB,EAAAA,KAAAA,IADAsqB,CAAAA,EAJoC,EAKpCtqB,aAAAA,EAAgB,OAEZN,IAAWM,GAIX,YAJ0B,OAIP/J,IAAI,CAACR,GAH1B,IAGiC,EAHjC,GAAO,IAOkB,UHd3B0V,EGc4E,CAAE+yB,KAAK,EAAGnT,EAAM,EAA7BT,EHX5CgiB,UAAU,CAA4B,SACvDp/B,SAAU,CAACy+B,EAAwBxgC,EAAU,GAC1CzP,IAJLA,OAAsD,MGoBtD,OAPQ2R,EAAmB,SAAnBA,cAAAA,CACF8+B,EAAS,IAAIr+B,EAAAA,UAAUA,CAACT,CAAc,CAAC,EAAE,EACzC++B,EAAQ,CACZvzC,IAAKpD,EACLzD,SAAU0N,CACZ,EAEA,GADqBysC,EAAOp+B,GAAG,CAACq+B,MAElC,IAvBsBthB,KAAAA,CAAAA,IAAAA,CAAAA,kFGxBf,SAAS6b,EAAuB,CAItC,MAJsC,IACrCC,WAAAA,CAIA,GAAIv8B,EAAAA,CAASA,CAAE,CACb,IAAMpa,EAAQ,IAAI0uC,YAAkC,gBAAiB,CACnE/M,OAAQ,CACNgW,QAAS,uCACT7/B,cAAe6+B,OAAAA,EAAAA,KAAAA,EAAAA,EAAa7+B,aAAa,GAAI,GAC7CE,eAAgB2+B,OAAAA,EAAAA,KAAAA,EAAAA,EAAa3+B,aAAb2+B,CAAa3+B,GAAkB,GAC/CskC,eAAgB,IAChBC,OAAO,CACT,CACF,GACArwC,OAAOggC,aAAa,CAAClsC,EACvB,CACF,CAEO,SAASy2C,EAAkBzwB,CAAkB,EAClD,MAAmD,MAA5CA,EAASma,OAAO,CAACj2B,GAAG,CAAC,kBAC9B,sHC1BasyC,EAAa,eAAe,EAWX,mBATkB,CAU3CC,UATG/3B,EACNg4B,eAAWh4B,EACXi4B,aAASj4B,EACTmS,WAAYnS,OACZk4B,YAAQl4B,EACRm4B,aAASn4B,CACX,EAAE,CAGG+3B,CACH30C,WAAW,EAEXg1C,MAAO,WAAO,IACd,ECJ6Bz2C,CAAAA,EAAAA,EAAAA,aAAAA,CAAaA,CAAgB6pC,GCN/C6M,EAAgB,SAAIC,CAAAA,CAAWj6C,CAAAA,CAAak6C,CAAAA,EACvD,IAAMl3C,EAAkB,CACtB6jC,SAAUoT,EACVE,WAAY,IAAItnC,OAAOo8B,OAAO,GAAKiL,CACrC,EACA/wC,OAAOixC,cAAc,CAACnQ,OAAO,CAACjqC,EAAK20B,KAAKC,SAAS,CAAC5xB,GACpD,EAAE,EAEiC,SAAIhD,CAAAA,EACrC,IAAMgD,EAAgDmG,OAAOixC,cAAc,CAACC,OAAO,CAACr6C,GAChF20B,KAAK2lB,KAAK,CAACnxC,OAAOixC,cAAc,CAACC,OAAO,CAACr6C,IACzC,YAEJ,EAEY,EAFR,CAAM,CAEM6S,KAAK7P,EAAIm3C,UAAU,EAAElL,OAAO,GAAK,IAAIp8B,OAAOo8B,OAAO,IAExD,GAAG,OACLmL,cAAc,CAAC1H,UAAU,CAAC1yC,GAC1B,MAEFgD,EAAI6jC,QAAQ,CARF,IASnB,EAAE,SCHc0T,EAAkBzmB,CAAsB,MAAE0mB,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAc,GAChEC,EAAW,SAACC,CAAAA,SAChBxqC,KAAKyqC,KAAK,CAACD,EAAQF,GAAeA,EAAcA,EAAc,GAChE,MAAO,CACLI,SAAUH,EAAS3mB,EAAW8mB,QAAQ,EACtCC,UAAWJ,EAAS3mB,EAAW+mB,SAAS,CAC1C,CACF,gBCxBwCC,EAAgBC,QAAQ,CAAC,IAEpDjgB,EAAmB,gBAAGv2B,EAAAA,EAAAA,QAAAA,CACP0K,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,CAAgB,mBACnDk+B,GAAcA,CACjBpoC,UADiBooC,CACN,QAFNvS,EAAmB3rB,CAAAA,CAAAA,EAAAA,CAAZ4+B,EAAY5+B,CAAAA,CAAAA,EAAAA,CAKpB8qC,EAAQ,WACZ5wC,OAAOixC,cAAc,CAAC1H,UAAU,CAAC+G,GACjC5L,EAAS,mBAAKV,GAAcA,CAAEpoC,UAAFooC,CAAa,KACzClwB,QAAQkxB,IAAI,CAAC,uBACf,EAEM6M,EAAsB,sBAwD5B,OAtDA/rC,EAAAA,SAAe,CAAC,WACd,GAAKoI,CAAD,CAACA,CAASA,EAAE,IAEZ4jC,EAAoC,KAExC,GAAI,CACF,IAAMC,EAAUC,EAAkC1B,GAC9CyB,IACFD,EAAeC,CAAAA,CAEnB,CAHe,KADsBC,CAI5BC,EAAU,CACjBn+B,QAAQkxB,IAAI,CAAC,wCAAyCsL,QAAY2B,EAAF3B,KAAE2B,EAAAA,EAAKxG,KAALwG,EAAY,CAChF,CAGIH,EACFpN,EAAS,UADO,CACP,QAAKoN,GAAAA,CAAcl2C,WAAW,EAAOg1C,MAAAA,KAE9Czc,MAAM0d,GACHnuB,IAAI,CAAC,SAAC5J,CAAAA,SAAuBA,EAASwa,IAAI,KAC1C5Q,IAAI,CAAC,SAAClf,CAAAA,EAEDstC,CADJA,EAAettC,EAAKstC,YAAAA,EACHnnB,UAAU,EAAE,CAE3BmnB,EAAaI,iBAAiB,CAAGJ,EAAaI,iBAAiB,EAAI,GACnEJ,EAAaK,oBAAoB,CAAGf,EAClCU,EAAannB,UAAU,CACvBmnB,EAFmDV,iBAErB,EAGhCU,EAAaM,kBAAkB,CAAGN,EAAaM,kBAAkB,EAAI,EACrEN,EAAaO,qBAAqB,CAAGjB,EACnCU,EAAannB,UAAU,CACvBmnB,EAAaM,kBAAkB,EAGjCN,EAAaQ,oBAAoB,CAAGR,EAAaQ,oBAAoB,EAAI,EACzER,EAAaS,uBAAuB,CAAGnB,EACrCU,EAAannB,UAAU,CACvBmnB,EAAaQ,oBAAoB,GAIrCR,EAAaU,UAAU,CAAGV,EAAaU,UAAU,EAAI,KACrD3B,EAAciB,EAAcxB,EAAsC,IAA1BwB,EAAaU,CAAxC3B,CAAyBP,QAAyB,EAC/D5L,EAAS,mBAAKoN,GAAAA,CAAcl2C,WAAW,EAAOg1C,MAAAA,IAChD,EACCjtB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EACNoP,QAAQkxB,IAAI,CAAC,8CAAyCtgC,EAAAA,KAAAA,EAAAA,EAAO+mC,OAAP/mC,EACtDggC,EAAS,mBAAKV,GAAcA,CAAE4M,MAAAA,IAAF5M,GAGpC,EAAG,CAAC6N,EAAoB,EAEjB,UAACF,EAAgB50C,QAAQ,EAACnG,GAAV+6C,GAAiBlgB,WAAQr2B,GAClD,EAAE,SAEcsvB,IACd,IAAMnV,EAAUzP,EAAAA,UAAgB,CAAC6rC,GACjC,QAAgBn5B,IADgCm5B,EAE9C,KADyB,CACnB,MAAW,sDAEnB,OAAOp8B,CACT,sFG5EO,IAAMk9B,EAAYvkC,SAAAA,CAASA,CAAGlO,OAAO0yC,KAAK,MAAGl6B,UAAU,cCNjDm6B,EAAa,CACxBC,MAAO,QACPC,KAAM,OACNC,KAAM,MACR,EAAW,SA4BKntC,EAAS9O,CAAe,CAAED,CAAiB,MAAEm8C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAO,GAClEliB,EAAIh6B,EAAKD,EAAO+7C,EAAWC,KAAK,CAAEG,EACpC,CAeO,SAASrlC,EAAW7W,CAAe,CAAED,CAAiB,MAAEm8C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAO,GACpEliB,EAAIh6B,EAAKD,EAAO+7C,EAAWG,IAAI,CAAEC,EACnC,CAeO,SAASzI,EAAQzzC,CAAe,CAAED,CAAiB,MAAEm8C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAO,GACjEliB,EAAIh6B,EAAKD,EAAO+7C,EAAWE,IAAI,CAAEE,EACnC,CAQO,IAAMrjB,EAAsB,SAACztB,CAAAA,CAAc+wC,CAAAA,EAChDltC,EAAAA,SAAe,CAAC,WACd,GAAI,CAAC2sC,EACH,OAAO3+B,EADO,MACCC,IAAI,CAAC,+BAEtB0+B,EAAUQ,OAADR,kBAA0B,GACnC,IAAMS,EAAgBlzC,OAAO5J,QAAQ,CAACE,QAAQ,CAAC2I,UAAU,CAAC,QAAU+zC,EAAQ,GAAS,OAANA,EAAM,SAEpE,GADEP,EAAUU,OAADV,CAAS,CAAExwC,KAAAA,EAAM+wC,MAAOE,CAAc,IAEhEp/B,QAAQC,IAAI,CAAC,wCAEjB,EACF,EAAE,SAIO8c,EACPh6B,CAAa,CACbD,CAA2C,CAC3Cw8C,CAA8B,CAC9BL,CAAY,EAEZ,GAAIN,EAAW,CACb,IAAMY,EADKZ,GACkB57C,MAAAA,CAATu8C,EAAM,KAAO,OAAJv8C,GAK7B,GAJA47C,EAAUa,OAADb,QAAgB,CAtGV,IAsGuB,gBAAsB,OAANW,IACtDX,EAAUc,OAADd,UAAkB,CAACY,EAAUG,EAAe58C,GAgBhD,CADSiD,CAAAA,EAAAA,CAf+C45C,CAe/C55C,EAAAA,CAAGA,CAAC,WAfqDk5C,EAgBnD,CAAC73C,MAAM,CAACtB,SAAS5C,IAAI,CAAC,MAhBoC,GAC9Ey7C,EAAUiB,OAADjB,GAAW,EAAC,GAAM,GAAM,GAE7B,CAAC54C,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,iCAA2E,UAAxCA,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,gCAA6C,CAC3F,IAAM85C,EAAc,MAAUH,EAAe58C,GAAQ,CAAEg9C,MAAOb,CAAK,GACnEY,EAAY1xC,IAAI,CAAGoxC,EACnBv/B,QAAQpP,KAAK,CAACivC,GACd,MACF,CACF,CACA,IAAME,EAAKT,EAAMp0C,WAAW,GAC5B8U,OAAO,CAAC+/B,EAAG,CAACh9C,EAAKD,EAAOm8C,EAC1B,CAmBA,SAASS,EAAe9uC,CAAiB,EACvC,IAAMovC,EAVN,UAAI,EAUgBC,KAVTn9C,IAGPA,aAAiBk9B,MACZl9B,CADmB,CACb60C,OAAO,CAEfjgB,KAAKC,SAAS,CAIc/mB,GAC7BsvC,EAAiBF,EAAYra,OAAO,CAAC,KAC3C,MAAO,CAACua,EAAiB,EAAIF,EAAY5sC,KAAK,CAAC,EAAG8sC,GAAkBF,CAAAA,CAAU,CAAGG,IAAI,EACvF,gCG9IO,SAASvJ,EACdthB,CAAc,CACd8qB,CAEC,EAED,GAAIA,GAAcA,EAAWC,gBAAgB,CAAE,CAC7C,IAAMlgB,EAAkC,CAAC,EACzC7K,EAAK6K,OAAO,CAACjd,OAAO,CAAC,SAAC3T,CAAAA,CAAaxM,CAAAA,EACjCo9B,CAAO,CAACp9B,EAAI,CAAGwM,CACjB,GACA6wC,EAAWC,gBAAgB,CAAClgB,EAC9B,CACF,uREyEO,SAAShhB,EAAgBpd,CAAgB,EAM9C,IAAMu+C,EAAgBC,CADHC,CAJ0B,CAC3C,QAAS,UACT,QAAS,SACX,EAC4B,CAACz+C,EAAS,EAAIA,CAAAA,EACTiJ,KAAK,CAAC,KACvC,OAAOjJ,EAASkF,QAAQ,CAAC,OAASq5C,EAAcltC,KAAK,CAAC,EAAG,GAAGlQ,IAAI,CAAC,KAAOo9C,CAAa,CAAC,EAAE,CC9FnF,SAASG,EAAkB39C,CAA8B,EAC9D,MACmB,aAAjB,OAAQ49C,IAFqBD,EAEG39C,aAAiB49C,MAChC,aAAhB,OAAOC,MAAwB79C,aAAiB69C,IAErD,qEGkCMC,EAAiB,CAAC,aAAc,aAAa,CAE5C,SAAeC,EACpBC,CAA0B,CAC1BvK,CAAoB,SAFAsK,EAAAA,KAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,UAAAA,CAAAA,EAAf,iBACLC,CAA0B,CAC1BvK,CAAoB,MACpBwK,EACAC,EAwCwB9d,EACSA,EAOfA,EA4BdA,EAzEF35B,EACAuyB,EACAmlB,EACAC,EACAC,EACAC,EACAC,EACAl/C,EACAg6B,EACUmlB,EACVC,EAAAA,EACA1lB,EACe2lB,EACfte,EAAAA,EACAhH,EACAhhB,EACAumC,EAMIC,EACAC,EACmB9tB,EAAO/b,EAAeE,GACzC2+B,GACAiL,GACA/L,GACFE,GAGIlC,GAAAA,GAMFgO,GACAC,GAOY5e,GAHZ/C,GAUA4hB,GAEAC,GACAC,GA0BAC,GAEEC,GACAC,GAOFC,GAGAC,GAWAn+C,GAYmBo+C,GAAjBC,GAAOC,GACTC,GASEr6C,GACFs+B,GAYAgc,GAoBAC,GAemBC,GAVjBC,GACFD,GAOEE,GAEAC,GAWiBH,GAAAA,GAAfz9C,GAsBJuqB,QAGAszB,GArBEC,gBAKAD,0BDnPoBE,aAAqB,uBCmEjD,GAvBApC,EAAAA,GAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAU,EACVC,EAAAA,GAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAA2B,EAGzBz3C,EAiBEu3C,EAjBFv3C,OAAAA,CACAuyB,EAgBEglB,EAhBFhlB,UAAAA,CACAmlB,EAeEH,EAfFG,2BAAAA,CACAC,EAcEJ,EAdFI,iCAAAA,CACAC,EAaEL,EAbFK,qBAAAA,CACAC,EAYEN,EAZFM,oBAAAA,CACAC,EAWEP,EAXFO,aAAAA,CACAl/C,EAUE2+C,EAVF3+C,QAAAA,CACAg6B,EASE2kB,EATF3kB,aAAAA,CACUmlB,EAQRR,EARFuB,QAAAA,CACAd,EAOET,EAPFS,cAAAA,CACA1lB,EAAAA,KAAAA,IADA0lB,CAAAA,EAOET,EANFjlB,YAAAA,EAAe,KACA2lB,EAKbV,EALFa,aAAAA,CACAze,EAIE4d,EAJF5d,cAAAA,CACAhH,EAAAA,KAAAA,IAAU,CADVgH,EAIE4d,EAHF5kB,OAAAA,GAAU,EACVhhB,EAEE4lC,EAFF5lC,SAAAA,CACAumC,EACEX,EADFW,0BAAAA,CAGE,CAAC3lB,EACH,MAAM,IADS,EACC,+BAEZ4lB,EAAa37C,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC,UAAWwD,EAAU,GAAW,OAARA,EAAQ,UAAU,IAC3Do4C,EAAgBH,UAAoBte,EAAAA,KAAAA,EAAAA,EAAgB7D,GAAG,EACpCxL,EAAyC1xB,EAA1D4V,OADkCmrB,QAClCnrB,CAAwBD,EAAkC3V,EAAlC2V,aAAAA,CAAeE,GAAmB7V,EAAnB6V,cAAAA,CACzC2+B,GAAc,CAAE9iB,MAAAA,EAAO/b,cAAAA,EAAeoD,UAAAA,CAAU,EAChD0mC,SAAyBX,EAAAA,KAAAA,EAAAA,EAA6Bh6C,QAAQ,CAAC6Q,GAC/D+9B,GAAWsL,OAAAA,EAAAA,KAAAA,EAAAA,EAAwBQ,EAAAA,GAAkB7lB,EAAWsX,cAAc,EAAnE+N,CACbpL,GAA4B,MAE5B6L,CAAAA,IAA0B,CAAC9lB,EAAW6U,aAAa,GAAC,CAApDiR,MAAAA,MACkB,eAAMV,EAAAA,KAAAA,EAAAA,IAAsCrxB,KAAK,CAAC,kBAAM,OAAZA,EAAtCqxB,UACbrN,CADPA,GAAc,WACPA,MAAAA,gBAAc,UAAsB,OAAZA,iBAAgB,SAAM/X,EAAW4X,sBAAsB,cAAvC,mCAArDqC,GAAAA,gBAEa,SAAMja,EAAW4X,sBAAsB,WAApDqC,GAAa,4BA4GE,OAzGX8L,SAAkB3e,EAAAA,KAAAA,EAAmB,QAAnBA,EAAAA,EAAgB7D,GAAAA,GAAhB6D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB/C,OAAO,CAAC,SAAY,CAC3D2hB,SAA2B5e,EAAAA,KAAAA,EAAmB,QAAnBA,EAAAA,EAAgB7D,GAAG,GAAnB6D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB/C,OAAO,CAAC,kBAAqB,CAI7EA,GAAuB,yBAC3B,eAAgB,oBACZ,CAACrE,EAAWuW,sBAAsB,EAAI,CAAEgC,cAAe0B,EAAW,IACtE,cAAe,QAAC7S,SAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAgB7D,GAAAA,GAAhB6D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB/C,OAAO,CAAC,iBAA7B+C,KAAAA,IAAAA,GAAAA,GAA0D,QACtE2e,IAAmB,CAAEuB,UAAWvB,EAAgB,EAChDC,IAA4B,CAAEuB,mBAAoBvB,EAAyB,EAC5ET,QACAD,EAAAA,KAAAA,EAAAA,EAAuBO,IAGtBI,GACJ,CAAC7mC,QAAAA,KAAAA,CAJEkmC,CAIFlmC,EAAWnZ,KAAXmZ,GAAWnZ,UAAoCmZ,EAAAA,KAAAA,EAAAA,EAAWvB,IAAAA,GAA+B,IAA1CuB,CAC5C8mC,GAAa5nC,EAAAA,CAASA,CAAGlO,OAAO5J,QAAQ,CAACwS,IAAI,CAAG,GAChDmtC,GAAuBtG,CAAAA,EAAAA,EAAAA,EAAAA,CAA0BA,CACrD9f,EACAtyB,GAAW,GACXy4C,GACA7lB,GAGED,IACFiE,EAAO,CAAC,EADG,eACc,CAAG,QAI9BygB,EAAe19B,OAAO,CAAC,SAAC0N,CAAAA,MAClBsS,SAAAA,EAAAA,KAAAA,EAAmB,OAAnBA,GAAAA,EAAgB7D,GAAG,GAAnB6D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB/C,OAAO,CAACvP,EAAAA,EAAS,EACxCuP,EAAO,CAACvP,EAAO,CAAGsS,EAAe7D,GAAG,CAACc,OAAO,CAACvP,EAAAA,CAEjD,UAEIsS,EAAAA,KAAAA,EAAmB,QAAnBA,EAAAA,EAAgB7D,GAAG,GAAnB6D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB/C,OAAO,CAAC,QAAW,EAC1CA,GAAQ,IAAD,EAAU,GAAGmjB,EAAcpgB,EAAe7D,GAAG,CAACc,KAApBmjB,EAA2B,CAAC,MAAS,CD1HrBC,GC0HqB,CACpE,UD3HuE,MC4HvE,oBD3HWJ,GAAcn4C,KAAK,CAAC,MAEhC5D,MAAM,CAAC,SAAC6C,CAAAA,EACP,IAAcA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAOe,KAAK,CAAC,OAAbf,CAAAA,EAAAA,OACd,EAAKlH,EAAD,CACGwgD,EADG,CACYt8C,MADL,EACa,CAAClE,EACjC,GACCG,IAAI,CAAC,SC0HJg/C,CADEA,GJvEN,EAAK9nC,CAASA,CAAV,CAAY,GAGoB,CDrDA,WAE7BnQ,CKuHuBu5C,GLxHXz5C,EAAAA,CAAOA,CADY05C,QAExBv5C,GAAG,CAACiE,CAF0C,ICsDxCu1C,SAGNA,EACd,GAAItpC,EAAAA,CAASA,CAAE,CACb,IDhDsBjM,ICgDhBw1C,EAAOC,KDhDoC,ECgD7BC,UAAU,GAK9B,SAJU,YDjDyCp4C,ECiDtB,CAC3BkmC,IDlD2E,ICkDlEmS,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GAAI,IACjCz5C,OAAQ4B,OAAO5J,QAAQ,CAAC0sB,QAAQ,EDlDrB,IAAIjlB,EAAAA,CAAOA,GACnBM,GAAG,CAAC8D,EC+Ccw1C,ED/CD,EAAP7gD,CAAO,MACtBwH,OAAQ,cACRC,SAAU,MACV/E,KAAM,KACHiG,IC+CIk4C,CACT,CACA,OAAO,IACT,KAhBW,IIsEqBH,GACb3B,EAAAA,GAAiB,CAC1BM,GAAYyB,OAAOC,UAAU,GAAGxpC,OAAO,CAAC,KAAM,IAC9C+nC,GAAqB,GAAgBD,MAAAA,CAAbD,GAAU,KAAa,OAAVC,IAE3ChiB,GAAQ,IAAD,KAAa,CAAG0hB,IAAmBK,IAAa,GACvD/hB,GAAQ,IAAD,cAAsB,CAAG2hB,IAA4BM,IAAsB,IAI9EC,GAAWf,GJ9DZ,SAAS0C,CAA+B,CAAEjiD,CAAgB,CAAE29B,CAAyB,EAC1F,GAAI,CACF,IAAMl9B,EAAWyhD,EAAAA,EAAQA,CAAG,WAAIliD,GAAwB,aAAb29B,EAAAA,KAAAA,EAAAA,EAAS92B,GAAG,EAAKsD,IAAjBwzB,GAAwBp9B,QAAQ,CAACE,QAAQ,CAC9EoG,EAAM,IAAIqE,IAAIzK,EAAUD,GAC9B,MAAO,GAAgBqG,MAAAA,CAAbA,EAAIrG,MAAM,EAAgB,OAAbqG,EAAIpG,QAAQ,CACrC,CAAE,QAAM,CACN,MACF,CADSkiB,EIwDwCmxB,GAAUha,EAAc8lB,GAGnEW,GAA+C,CAAC,SAClDb,EAAAA,KAAAA,EAAAA,EAA4Br5C,MAAAA,EAAQ,CACtCq5C,EAA2Bv+B,OAAO,CAAC,SAACghC,CAAAA,EAClC,IAAMphD,QAAQoY,EAAAA,KAAAA,EAAAA,CAAW,CAACgpC,EAAS,CAC/BphD,IACFw/C,EAAmB,CADV,CADGpnC,CAEiB,CAAGpY,CAAAA,CAEpC,GAIIqB,GAAS,IAAIugC,gBAAgB,SACjCn7B,QAAAA,EACAm4C,WAAAA,EACA5pC,cAAAA,EACAE,eAAAA,GACAmsC,GAAIpC,IACDO,GACCL,IAAwB,CAAElgD,SAAUod,EAAgB0c,EAAc,IACrEpD,OADsDtZ,CAC9C,GAIHqjC,GAAiBD,CAAAA,GAAAA,SFlKXA,CAAuB,EEkKAA,IFlKE/8C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAO,GAAIi7C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAoB2D,EAEhE3B,EAAQ,IAAI4B,IAKZC,EAAS,IAAID,IA6DnB,MAAO,CACL7B,MArE4F4B,SAmBrFG,EAAQzhD,CAAU,MAAE0C,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAO,GAAIg/C,EAAAA,UAAAA,MAAAA,CAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAClChC,EAAQ1/C,EAEZ,GAAI29C,EAAkB39C,GAAQ,CAC5B0/C,EAAQ,KAER,IAAMiC,EAAYhC,EAAMv4C,GAAG,CAACpH,GAE5B2hD,EAAYA,EAAU11C,IAAI,CAACvJ,GAAQi9C,EAAMp4C,GAAG,CAACvH,EAAO,CAAC0C,EAAK,CAC5D,KAAO,CACL,IAAMk/C,EACJ1hD,MAAMC,OAAO,CAACH,IAA+B,aAApB,OAAO6hD,UAA4B7hD,aAAiB6hD,SACzEC,EAAW9hD,GAASA,EAAMonC,WAAW,GAAK9gC,OAEhD,GAAIs7C,GAAUE,EAAU,CACtB,IAAMC,EAAWP,EAAOQ,GAAG,CAAChiD,GAS5B,GAPI+hD,EAAUrC,EAAQ8B,EAAOp6C,GAAG,CAACpH,IAE/B0/C,EAAQkC,EAAS,EAAE,CAAG,CAAC,EAEvBJ,EAAOj6C,GAAG,CAACvH,EAAO0/C,IAGhB,CAACgC,EAASM,GAAG,CAAChiD,GAAQ,CACxB,IAAMiiD,EAAav/C,EAAO,GAAQ,OAALA,EAAK,KAAK,GACjCw/C,EAAiB,IAAIvwB,IAAI+vB,GAAU7vB,GAAG,CAAC7xB,GAWtC,mBATP,GAAI4hD,EAAQ,CACV,IAAIz5B,EAAQ,EAEP,uBAAL,QAAK,IAAcnoB,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAd,4BAA4B,CAA5B,IAAM4xB,EAAN,QACGuwB,EAAYV,EAAQ7vB,EAAMqwB,EAAa95B,IAAS+5B,GAEjDH,GAAUrC,EAAMzzC,IAAI,CAACk2C,EAC5B,WAJK,yEAKP,UACE,QAAK,IAAa77C,OAAOsU,IAAI,CAAC5a,EAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAzB,4BAAiC,CAAjC,IAAMC,EAAN,QACGmiD,EAAgBX,EAAQzhD,CAAK,CAACC,EAAI,CAAEgiD,EAAahiD,EAAKiiD,GAEvDH,IAAUrC,CAAK,CAACz/C,EAAI,CAAGmiD,CAAAA,CAC9B,WAJK,yEAKT,CACF,CACF,CAEA,OAAO1C,CACT,EAGiB1/C,EAAO0C,EAAM,IAAIivB,KAChCguB,MAAAA,CACF,CACF,EE0FwC9L,GAAa,GAAI8J,EAAiBA,EAAhE+B,KAAAA,CAAOC,GAAUF,GAAVE,KAAAA,CACTC,GAAO,GAAIyC,CAAAA,GAAAA,EAAQA,GACf5+B,IAAI,EAAE,CAEd,OAAO4Z,EAAO,CAAC,eAAe,CAI9BuiB,GAAK0C,MAAM,CAAC,aAAc1tB,KAAKC,SAAS,CAAC6qB,KAEnCn6C,GAAgC,CAAC,EACnCs+B,GAAI,EACR8b,GAAMv/B,OAAO,CAAC,SAACmiC,CAAAA,EACbh9C,EAAG,CAAC,EAAEs+B,GAAE,CAAG0e,CACb,GACA3C,GAAK0C,MAAM,CAAC,MAAO1tB,KAAKC,SAAS,CAACtvB,KAElCs+B,GAAI,EACJ8b,GAAMv/B,OAAO,CAAC,SAACoiC,CAAAA,CAAGC,CAAAA,EAChBC,CAqKN,SAASA,CAAqC,CAAEC,CAAiB,CAAEF,CAAU,EAC3ExtB,EAASqtB,MAAM,CAACK,EAAUhtB,QAAQ,GAAI8sB,EAAMA,EAAKp3C,IAAI,EACvD,EAvKyBu0C,GAAM,EAAE/b,GAAG4e,EAChC,IAKe,GAAMllB,MAFN,GAAel8B,MAAAA,CAAZ0xC,GAAS,KAAU,OAAP1xC,IAEO,CACrC87B,OAAQ,OACRE,QAAAA,GACAkiB,SAAAA,GACAd,eAAAA,EACAx+B,KAAM0/B,GAAMl8B,IAAI,CAAIm8B,GAA+BhrB,KAAKC,SAAS,CAACgf,IAClEJ,OAAAA,CACF,EAAG1mB,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EAER,GAC6C,mBAA3C,CAFgBkB,EAAAA,EAAAA,CAAAA,CAAaA,CAAClB,GAEIkJ,IAAI,EACtCknC,EAA2B,EAE3B,CADA,MACOH,EAAYC,EAAcvK,EAAQwK,EAASC,EAA2B,EAE/E,OAAMpwC,CACR,cAhBMoV,EAsBF,CAtBa,aAkBO,0EACtB,SAAM8V,EAAW0X,YAAY,WAC7B,OADA,SACA,GAAOqN,EAAYC,EAAcvK,EAAQwK,EAAU,EAAGC,MACxD,GAHM4B,YAAAA,yCAID58B,GAAAA,KAAAA,EAAAA,GAAUsa,EAAE,CAAb,KAACta,CAAD,OACmB,eAAMA,GAAAA,KAAAA,EAAAA,GAAU0/B,IAAI,IAAd1/B,OAArB88B,GAAe,UAErB,GAAI,CACFD,GAAanrB,KAAK2lB,KAAK,CAACyF,GAC1B,CAAE,QAAM,CAER,CAWA,GATMC,GAAc/8B,OAAAA,GAAAA,KAAAA,EAAAA,GAAU5U,MAAM,EAAhB4U,EAAqB,IAGzCg9B,OADMA,SAAiBH,GAAAA,KAAAA,EAAAA,CACvBG,OADuBH,GAAAA,EAAAA,CAAYh/C,MAAM,GAAlBg/C,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAoBx6C,GAAG,CAAC,SAACs9C,CAAAA,SAAOA,CAAE,CAAC,kBAAkB,KAC5E3C,GAAgB9/B,OAAO,CAAC,SAAC1X,CAAAA,EACnBA,GACFoO,CAAAA,CADO,CACPA,EAAAA,EAAAA,CAAUA,CAAC,MAAO,gBAAiBpO,EAEvC,GAEIo2C,GAAwB,CAC1B,GAAI,CAACmB,IAAejnB,EAAW6U,aAAa,IAAMoQ,EAAU,EAC1D,CAD6D,KAC7D,GAAO6B,KAGT,OADMx9C,GAAey9C,OAAAA,GAAAA,KAAAA,EAAkB,QAAlBA,GAAAA,EAAAA,CAAYh/C,MAAM,GAAlBg/C,KAAAA,IAAAA,GAAAA,KAAAA,EAAuB,QAAvBA,GAAAA,EAAoB,CAAC,KAArBA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAyBlL,OAAAA,GAAW,GACnD,IAAIiO,EAAAA,CAAeA,CAAC5/B,SAAAA,KAAAA,EAAAA,GAAU5U,EAAV4U,IAAgB,CAAE5gB,GAC9C,CAGA,IAAI89C,MADmBl9B,GAAAA,KAAAA,EAAAA,GAAU5U,MAAAA,EAAV4U,EAAqB,KACtB+6B,EAAU,GAAG,IAKnB8E,EAAmBhD,GAAY/mB,EAAY8lB,GAAwBb,GAJjF,SAAO6B,KAQT,OAAM,MAAU,kBAAsCE,MAAAA,OAApB98B,GAAAA,KAAAA,EAAAA,GAAU5U,MAAM,CAAC,CAAjB4U,IAAiC,OAAb88B,aAQtB,OAJ9B98B,cAAoB8/B,UAAU,CAChClP,EAAAA,EAAAA,CAAAA,CAAiBA,CAAC5wB,GAAUkd,GAGI,GAAMld,GAASwa,IAAI,YAIrD,GADoBqlB,CAChB5C,CAJEtzB,GAA4B,UAGamM,EAAY8lB,EAApBjyB,CAA4CoxB,GAClE,SAAO6B,MAWxB,MATInM,CAAAA,EAAAA,EAAAA,CAAAA,CAAiBA,CAACzwB,KACpB0wB,CAAAA,EAAAA,EAAAA,CAD2C,CACrBA,CAAC,CACrBC,YAAa,CACX7+B,cAAAA,EACAE,eAAAA,EACF,CACF,GAGF,GAAO,mBACF2X,GAAOjf,IAAI,GACdq1C,SAAU,CACRzJ,eAAgBt2B,GAASma,OAAO,CAACj2B,GAAG,CAAC,mBACrCqyC,OAAO,EACPzkC,WADyB,GACzBA,EACAE,eAAAA,EACF,OAEJ,IA/OsB6oC,KAAAA,CAAAA,IAAAA,CAAAA,WAwTtB,SAASgF,EACPl2B,CAAyB,CACzBmM,CAAsB,MACtB8lB,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CACAb,EADyB,UACzBA,MAAAA,CAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAEA,GAAIpxB,EAAO9rB,MAAM,CAAE,CACjB,IAAM+M,EAAQ,IAAIo1C,EAAAA,CAAUA,CAACr2B,GAE7B,GAAIiyB,IJjWD,SAASqE,CAAoC,EAClD,GAAIr1C,EAAO,CACT,EIiWyBq1C,CJjWrBr1C,aAAiBg1C,EAAAA,CAAeA,CAClC,CADoC,MAC7Bh1C,QAAMs1C,UAAU,CAEzB,GAAIt1C,aAAiBo1C,EAAAA,CAAUA,CAAE,KAE7Bp1C,EADF,MACEA,CAAAA,OAAAA,GAAAA,EAAMu1C,aAAAA,GAANv1C,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBw1C,IAAI,CACvB,SAACx1C,CAAAA,QAAUA,OAAAA,EAAAA,KAAAA,EAAAA,EAAO+mC,OAAAA,IAAY,gBAAkB/mC,OAAAA,EAAAA,KAAAA,EAAAA,EAAOkJ,IAAI,GAAXlJ,CAAgB,SAC7D,CAET,CACF,CACA,OAAO,CACT,EIqV8BA,IJnVvB,SAASy1C,CAAiC,EAC/C,GAAIz1C,EAAO,CACT,GAAIA,aAAiBg1C,EAAAA,CAAeA,CAClC,CADoC,MACR,MAArBh1C,EAAMs1C,UAAU,CAEzB,GAAIt1C,aAAiBo1C,EAAAA,CAAUA,CAAE,KAE7Bp1C,EADF,MACEA,CAAmB,QAAnBA,EAAAA,EAAMu1C,aAAa,GAAnBv1C,KAAAA,MAAAA,KAAAA,EAAAA,EAAqBw1C,IAAI,CACvB,SAACx1C,CAAAA,QAAUA,OAAAA,EAAAA,KAAAA,EAAAA,EAAO+mC,OAAP/mC,IAAmB,aAAeA,OAAAA,EAAAA,KAAAA,EAAAA,EAAOkJ,IAAAA,GAAPlJ,CAAgB,SAC1D,CAET,CACF,CACA,OAAO,CACT,EIqU0DA,EAAAA,CAAK,EACvDkrB,EAAW6U,aAAa,IACxBoQ,EAAU,EAGV,CAFA,MAEO,CAGX,OAAMnwC,CACR,CACA,MAAO,EACT,CCzWO,IAAM01C,EAAiB,MAE9B,CAFqC,KAAK,GAEjCC,EAAMC,CAAoB,CAFc,CAAC,QAIhD,EAJ0D,aAIrCZ,EAAAA,CAAAA,IAAmBh1C,cAAiBo1C,EAAAA,CAAAA,EAAY,CAG9DQ,EAAe,CACxB,CAEO,SAASvqB,EAAgB,SD0TMsO,IAAuB,ECzT3Dkc,gBAD6BxqB,eAC7BwqB,CAAAA,EAAAA,KAAAA,IAAAA,EAAkC,CAAC,MADL,EAE9BvqB,OAAAA,CAAAA,EAAAA,KAAAA,IAAU,KACPwqB,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAH2B,GAC9BD,kCACAvqB,YAGA,OAAO,IAAIyqB,EAAAA,CAAWA,CAAC,CACrBv7C,eAAgB,CACdw7C,QAAS,SACPjO,OAAAA,EDoS2BpO,ECpSC,EDoSsB,CCpStB,aAADsc,CAAC,EACvBH,GAAAA,CACHxqB,QAAAA,IDmSD,gBAAGjf,EAAAA,EAAAA,QAAAA,CAAUs5B,EAAAA,EAAAA,MAAAA,CACSt5B,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,GAApB4W,EAAoB5W,CAAAA,CAAAA,EAAAA,CAAb/B,EAAa+B,CAAAA,CAAAA,EAAAA,CAC3B,OAAO4jC,EACL,mBACKtW,GAAAA,CACHpoC,SAAU0xB,EACV3Y,UAAAA,IAEFq7B,EAEJ,IC3SU,EAQA,WAAKkQ,GAPL,SACEK,sBAAsB,EACtBC,UAAWxO,IACXgO,MAAAA,EACA/N,UAAW,KAAK,CACbiO,IADkB,UAKlB,CACTO,UAAAA,EAAYC,EAAsB,mBAADA,GAC5BP,CACHxqB,QAAAA,IDkSD,SAAC/3B,CAAAA,EACN,IAA8BA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,GAAvBuP,EAAuBvP,CAAAA,CAAAA,EAAAA,CAAb+W,EAAa/W,CAAAA,CAAAA,EAAAA,CAC9B,OAAO08C,EAAY,mBACdtW,GAAAA,CACHpoC,SAAUuR,EACVwH,UAAAA,IAEJ,GCvSMqrC,MAAAA,CACF,CACF,CACF,EACF,0EMrDaW,EAAyB,CAAC,KAAM,KAAK,CAAC,MAEwC,CAA/C,OAAqB,QAAGA,IAE7D,IAAMnmB,EAAuC,eAFwC,iBAER,ECC3D,CACvB9/B,SDF+C8/B,ECEpComB,IACXC,eAAgB,EAClB,EAEO,KAJwBD,IAIfE,QAAkB,yDAGPC,EAAAA,EAHO,EAChCrmD,SAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAYqmD,EAAiBrmD,SAAS,KADN,EAEhCmmD,cAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAiBE,EAAiBF,cAAc,GAG1CG,EAAO,CAAC,QADAC,CAOPN,EAAuBjgD,QAAQ,CAAChG,GDvBP,KCgBIA,GAOPimD,EAAuBC,SAPM,GAC7B,CAACjkD,IAAI,CAAC,KAC7BukD,EAAUL,EAAiB,CAKqCD,EAL9B,CAKiClmD,SALvB,CAACiC,IAAI,CAAC,KAAO,KAC/D,MAAO,CAACqkD,EAAME,EAAQ,CAACrgD,MAAM,CAACtB,SAAS5C,IAAI,CAAC,IAC9C,mGITO,sBAAMiK,EAMCo9B,CAAiB,eANlBp9B,GAOT,IAAI,CAACH,IAAI,CAAGu9B,EAAKv9B,IAAI,CACrB,IAAI,CAACK,KAAK,CAAGk9B,EAAKl9B,KAAK,CACvB,IAAI,CAAC7C,MAAM,CAAG+/B,EAAK//B,MAAM,CACzB,IAAI,CAACzI,QAAQ,CAAGwoC,EAAKxoC,QAAQ,QAVpBoL,EAAAA,SAAAA,CAaXI,KAOC,CAPDA,SAAAA,CAAkB,EAChB,IAA0C,MAAI,CAAtCP,IAAAA,CAAMK,EAA4B,KAA5BA,KAAAA,CAAO7C,EAAqB,KAArBA,MAAAA,CAAQzI,EAAa,KAAbA,QAAAA,CAGvByD,EAAO6H,EAAQ,IAAYyH,MAAAA,CAARzH,GAAa,OAALyH,GAASA,EAE1C,MAAO,GAAY9H,MAAAA,CAAT06C,EAJc,WAAa,WAIV/tC,MAAAA,CAAR3M,EAAK,KAAUxH,MAAAA,CAAPmU,GAHF,MAGc,OAALnU,EACpC,EApBW2H,KAqBZ,EC3BqE,CACpEw6C,GAAI,gBACJC,GAAI,uBACJC,GAAI,iBACJC,GAAI,mBACJC,GAAI,oBACJC,GAAI,kBACJC,GAAI,yBACJC,GAAI,KACJC,GAAI,gBACJC,GAAI,oBACJC,GAAI,eACJC,GAAI,kBACJC,GAAI,0BACJC,GAAI,eACJC,GAAI,aACJC,GAAI,iBACJC,GAAI,kBACJC,GAAI,kBACJC,GAAI,mBACJC,GAAI,mBACJC,GAAI,gBACJC,GAAI,gBACJC,GAAI,kBACJC,GAAI,sBACJC,GAAI,kBACJC,GAAI,IACN,EAAE,ECiF+B,CAC/BC,KAAM,WACNC,iBAAkB,gBAClBC,aAAc,eACdC,qBAAsB,uBACtBC,OAAQ,SACRC,WAAY,2BACZC,UAAW,YACXC,QAAS,UACTC,aAAc,eACdC,aAAc,eACdC,IAAK,MACLC,UAAW,gBACXC,mBAAoB,qBACpBC,OAAQ,aACRC,QAAS,UACTC,UAAW,YACXC,cAAe,gBACfC,aAAc,kBACdC,QAAS,UACTC,UAAW,WACb,EAAW,WC7HEC,EAAmB,SAACtmD,CAAAA,CAAyBumD,CAAAA,EACxDthD,OAAOsU,IAAI,CAACgtC,GAAOxnC,OAAO,CAAC,SAACynC,CAAAA,EACtBD,CAAK,CAACC,EAAQ,EAAE,EACXvF,MAAM,CACXwF,CAAiB,CAACD,EAA0C,CAC5DlzB,UAAUizB,CAAK,CAACC,EAAQ,EAG9B,EACF,EAAE,EAyB8B,SAACxmD,CAAAA,CAAyB0mD,CAAAA,CAAmBC,CAAAA,EAC3E,GAAI,GAAWD,GAEf,GAFc,EAEH,CACT,CAHuB,GAGjBE,EAA2CD,EArB7C5sC,MAAM,CAAC,OAqBa8sC,EArBZC,CAAAA,CAAOC,CAAAA,EAEnB,IAAMC,EACmB,UAAvB,OAAOD,EAAKC,MAAM,CAAgBnoD,MAAMkoD,EAAKC,MAAM,EAAElpC,IAAI,CAAC,CAAEmpC,SAAK1mC,CAAU,GAAKwmC,EAAKC,MAAM,CACvF7jD,EACqB,UAAzB,OAAO4jD,EAAK5jD,QAAQ,CAChBtE,MAAMkoD,EAAK5jD,QAAQ,EAAE2a,IAAI,CAAC,CAAEmpC,SAAK1mC,CAAU,GAC3CwmC,EAAK5jD,QAAQ,CAEnB,OADA2jD,EAAMl8C,IAAI,CAAC,CAAEo8C,OAAAA,EAAQ7jD,SAAAA,CAAS,GACvB2jD,CACT,EAAG,EAAE,EAYCF,EAAgB3iD,MAAM,GAAKyiD,EAC7B1mD,EAAOihD,MAAM,CAAC,WAAYnY,OAAO4d,IAIC,IAA3BE,EAAgB3iD,MAAM,EAAU2iD,CAAe,CAAC,EAAE,EACzD5mD,EAAOihD,MAAM,CAAC,WAAYnY,OAAO8d,EAAgB3iD,MAAM,GACvDjE,EAAOihD,MAAM,CAAC,YAAanY,OAAO8d,CAAe,CAAC,EAAE,CAACI,MAAM,CAAC/iD,MAAM,GAClEjE,EAAOihD,MAAM,CAAC,cAAenY,OAAO8d,CAAe,CAAC,EAAE,CAACzjD,QAAQ,CAACc,MAAM,GACtEjE,EAAOihD,MAAM,CACX,iBACA2F,CAAe,CAAC,EAAE,CAACzjD,QAAQ,CACxBF,MAAM,CAAC,SAACikD,CAAAA,SAAMA,WAAED,GAAG,GACnB/iD,GAAG,CAAC,SAACgjD,CAAAA,SAAMA,EAAED,GAAG,GAChBloD,IAAI,CAAC,MAEViB,EAAOihD,MAAM,CACX,iBACA2F,CAAe,CAAC,EAAE,CAACI,MAAM,CACtB/jD,MAAM,CAAC,SAACyN,CAAAA,SAAMA,KAAU6P,MAAR0mC,GAAG,GACnB/iD,GAAG,CAAC,SAACwM,CAAAA,SAAMA,EAAEu2C,GAAG,GAChBloD,IAAI,CAAC,QAGViB,EAAOihD,MAAM,CAAC,WAAYnY,OAAO8d,EAAgB3iD,MAAM,GACvD2iD,EAAgB7nC,OAAO,CAAC,SAACooC,CAAAA,CAAM3kB,CAAAA,EAC7B,IAAM4kB,EAAcR,CAAe,CAACpkB,EAAE,CACtCxiC,EAAOihD,MAAM,CAAC,OAAa,OAANze,EAAI,EAAE,aAAYsG,OAAOqe,EAAKH,MAAM,CAAC/iD,MAAM,GAChEjE,EAAOihD,MAAM,CAAC,OAAa,OAANze,EAAI,EAAE,eAAcsG,OAAOqe,EAAKhkD,QAAQ,CAACc,MAAM,GAChEmjD,GACFpnD,EAAOihD,MAAM,CACX,OAAa,OAANze,EAAI,EAAE,aACb4kB,EAAYJ,MAAM,CACf/jD,MAAM,CAAC,SAACyN,CAAAA,SAAMA,KAAU6P,MAAR0mC,GAAG,GACnB/iD,GAAG,CAAC,SAACwM,CAAAA,SAAMA,EAAEu2C,GAAG,GAChBloD,IAAI,CAAC,MAERqoD,GACFpnD,EAAOihD,MAAM,CACX,OAAa,OAANze,EAAI,EAAE,aACb4kB,EAAYjkD,QAAQ,CACjBF,MAAM,CAAC,SAACikD,CAAAA,cAAgB3mC,IAAV2mC,EAAED,GAAG,GACnB/iD,GAAG,CAAC,SAACgjD,CAAAA,SAAMA,EAAED,GAAG,GAChBloD,IAAI,CAAC,KAEd,GAEJ,MAAW2nD,CAAJ,EAAc1mD,EAAOihD,MAAM,CAAC,WAAYnY,OAAO4d,IACxD,EAAE,EAQ8B,SAAC1mD,CAAAA,CAAyBqnD,CAAAA,EACnDA,IAEDA,GAFQ,MAERA,KAAAA,EAAAA,EAAAA,WAAOzrB,GAAa57B,EAAOihD,MAAM,CAAC,cAAe3J,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,OAAC+P,EAAAA,KAAAA,EAAAA,EAAOzrB,OAAPyrB,IAAkB,CAAE,sBAC5EA,EAAAA,KAAAA,EAAAA,EAAOC,OAAPD,MAAOC,GACTtnD,EAAOihD,MAAM,CAAC,gBAAiB3J,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,OAAC+P,EAAAA,KAAAA,EAAAA,EAAOC,OAAPD,MAAoB,CAAE,gBAC1DA,QAAAA,KAAAA,EAAAA,EAAOE,CAAPF,YAAOE,SAAkBhnC,GAC3BvgB,EAAOihD,MAAM,CAAC,sBAAiBoG,EAAAA,KAAAA,EAAAA,EAAOE,OAAPF,MAAoB,CAAC/yB,QAAQ,IAChE,EAAE,EAewC,gBACxCkzB,EAAAA,EAAAA,UAAAA,CACAC,EAAAA,EAAAA,YAAAA,CACAf,EAAAA,EAAAA,QAAAA,CACAgB,EAAAA,EAAAA,aAAAA,CAEA,OAAOhB,GAAY,IAAMe,EAAe,EAAID,EAAaE,CAC3D,EAAE,ECwB8B,oBAC9B5qD,SAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAY,WACZwO,MAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAS,WACTjK,IAAAA,CACAsmD,CADAtmD,CACAsmD,EAAAA,SAAAA,CACAC,EAAAA,EAAAA,QAAAA,CACAC,EAAAA,EAAAA,OAAAA,CACAC,EAAAA,EAAAA,SAAAA,CACAC,EAAAA,EAAAA,WAAAA,CAyBIJ,EAAAA,GAAa,CAAC,EAtBhBK,EAsBEL,EAtBFK,iBAAAA,CACAC,EAqBEN,EArBFM,mBAAAA,CACAl7C,EAoBE46C,EApBF56C,OAAAA,CACAs6C,EAmBEM,EAnBFN,KAAAA,CACAa,EAkBEP,EAlBFO,eAAAA,CACAC,EAiBER,EAjBFQ,YAAAA,CACAC,EAgBET,EAhBFS,cAAAA,CACAC,EAeEV,EAfFU,YAAAA,CACAC,EAcEX,EAdFW,OAAAA,CACAC,EAaEZ,EAbFY,oBAAAA,CACAC,EAYEb,EAZFa,SAAAA,CACAf,EAWEE,EAXFF,YAAAA,CACAf,EAUEiB,EAVFjB,QAAAA,CACA+B,EASEd,EATFc,OAAAA,CACAC,EAQEf,EARFe,gBAAAA,CAAAA,EAQEf,EAPFj4B,KAAAA,CACA62B,CADA72B,CAOEi4B,EANFpB,KAAAA,CACAI,EAKEgB,EALFhB,KAAAA,CACAgC,EAIEhB,EAJFgB,YAAAA,CACAC,EAGEjB,EAHFiB,MAAAA,CACAC,EAEElB,EAFFkB,iBAAAA,CACAC,EACEnB,EADFmB,GAAAA,CAIErkD,GAAMmjD,IAAa,GAAcC,CAAAA,EAA0B,GAAcv8C,GAAzC,GAAyCA,CAAXu8C,EAAQ,KAAU,OAAPv8C,GAA7B,IAAW,OAAPA,GAC9Cy9C,EAAa,CAAE1B,CAAAA,OAAAA,EAAAA,KAAAA,EAAAA,EAAOzrB,OAAPyrB,IAAOzrB,UAAeyrB,EAAAA,KAAAA,EAAAA,EAAOC,OAAPD,MAAOC,CAAa,CAAD,CACxD0B,EAAWC,EAA2B,CAC1CxB,mBAAcA,EAAAA,EAD2BwB,EAEzCvC,eAAUA,EAAAA,EADIe,EAEdC,cAtCFrmD,CAsCiBA,IAtCjBA,IAAAA,EAAO,WAuCLmmD,WAAY,cACd,GAGA,OAAQwB,GACN,IAAK,YACHvkD,GAAO,qBACP,KACF,KAAK,UACHA,GAAO,mBACP,KACF,KAAK,cACCsjD,IACFtjD,GAAO,IAAgB,EADR,IACQ,CAAZsjD,EAAAA,EAEbtjD,GAAO,UACHqjD,IACFrjD,GAAO,IADM,MACQ,CAAVqjD,EAAAA,EAEbrjD,GAAO,gBACP,KACF,KAAK,wBACHA,GAAO,0BACP,KACF,KAAK,sBACHA,GAAO,+BACP,KACF,KAAK,eACHA,GAAO,iBACP,KACF,KAAK,IAEHA,GAAO,UACX,CAOA,GAJiB,WAAbukD,GAAyBE,CAA0B,CAACpsD,EAAU,GAChE2H,GAAO,GAAyC,OAAtCykD,CAA0B,CAACpsD,EAAU,CAAC,MAG9C,CAAC6qD,GAAa,CAAC1iD,OAAOsU,IAAI,CAACouC,GAAY,OAAOljD,EAElD,IAAMzE,EAAS,IAAIugC,gBAEb4oB,EAA4BN,QAAAA,KAAAA,EAAAA,EAAmB5lD,MAAM,CACzD,MADgC4lD,GAC/BO,CAAAA,QAAgC,UAAhBA,IAEfX,GAASzoD,EAAOihD,MAAM,CAAC,UAAWwH,GAClCpB,GAAOgC,EAAiBrpD,EAAQqnD,GAEnB,SAFUgC,OAEM,CAA7BL,GACErC,GAAO2C,EAAiBtpD,EAAQ0mD,GAAsBC,EAAM1iD,MAAjByiD,CAApB4C,GACvB/C,GAAOD,EAAiBtmD,EAAQumD,GAChC4C,GACFnpD,EAAOihD,IAFkBqF,EAEZ,CAAC,oBAAqB6C,EAA0BpqD,IAAI,CAAC,MAChEmpD,GAAiBloD,EAAOihD,MAAM,CAAC,kBAAmBiH,GAClDF,GAAmBhoD,EAAOihD,MAAM,CAAC,oBAAqBnY,OAAOkf,IAC7De,GAAc,iBAAOP,GACvBxoD,EAAOihD,MAAM,CAAC,YAAauH,EAAUl0B,QAAQ,IAC3Cs0B,GAAQ5oD,EAAOihD,MAAM,CAAC,SAAU2H,GAChCT,GAAcnoD,EAAOihD,MAAM,CAAC,eAAgBkH,EAAappD,IAAI,CAAC,MAC9DqpD,UAAkBA,EAAAA,KAAAA,EAAAA,EAAgBnkD,MAAAA,GACpCjE,EAAOihD,KADamH,CACP,CAAC,iBAAkBA,EAAerpD,IAAI,CAAC,MAClDspD,GAAcroD,EAAOihD,MAAM,CAAC,eAAgBoH,EAAatpD,IAAI,CAAC,MAC9DupD,GAAStoD,EAAOihD,MAAM,CAAC,UAAWqH,EAAQvpD,IAAI,CAAC,MAC/CwpD,GAAsBvoD,EAAOihD,MAAM,CAAC,uBAAwBsH,GAC5DN,GAAqBjoD,EAAOihD,MAAM,CAAC,sBAAuBnY,OAAOmf,IACjES,GAAkB1oD,EAAOihD,MAAM,CAAC,mBAAoByH,EAAiBp0B,QAAQ,MAI7Ex3B,GAAWkD,EAAOihD,MAAM,CAAC,YAAankD,GACtC4pD,GAAU1mD,EAAOihD,MAAM,CAAC,WAAYyF,EAASpyB,QAAQ,IACrDmzB,GAAcznD,EAAOihD,MAAM,CAAC,iBAAkBwG,EAAanzB,QAAQ,KAGrEq0B,GAAc3oD,EAAOihD,MAAM,CAAC,eAAgB0H,GAC5CG,GAAK9oD,EAAOihD,MAAM,CAAC,MAAO6H,GAC1B/7C,GAAS/M,EAAOihD,MAAM,CAAC,UAAWl0C,GAEtC,IAAM0zB,EAAczgC,EAAOs0B,QAAQ,GAEnC,MAAO,GAAgBkM,MAAAA,CAAb/7B,EAAI,WAAqCg8B,MAAAA,CAA5BD,mBAAmB9Q,KAlGxCA,IAAAA,EAAQ,OAkGkE+Q,MAAAA,CAAzBA,EAAc,IAAM,IAAiB,OAAZA,EAC9E,EAAE,EErNgC,oBAChCn1B,MAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAS,WACTjK,IAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAO,cACPvE,EAAAA,EAAAA,SAAAA,CACA6qD,EAAAA,EAAAA,SAAAA,CACAC,EAAAA,EAAAA,QAAAA,CACAC,EAAAA,EAAAA,OAAAA,CAoBIF,EAAAA,GAAa,CAAC,EAjBhBO,EAiBEP,EAjBFO,eAAAA,CACAqB,EAgBE5B,EAhBF4B,SAAAA,CACAZ,EAeEhB,EAfFgB,YAAAA,CACAC,EAcEjB,EAdFiB,MAAAA,CACAT,EAaER,EAbFQ,YAAAA,CACAE,EAYEV,EAZFU,YAAAA,CACAC,EAWEX,EAXFW,OAAAA,CACAC,EAUEZ,EAVFY,oBAAAA,CACAP,EASEL,EATFK,iBAAAA,CACAwB,EAQE7B,EARF6B,QAAAA,CACAf,EAOEd,EAPFc,OAAAA,CACAtqD,EAMEwpD,EANFxpD,QAAAA,CACAsrD,EAKE9B,EALF8B,WAAAA,CACAC,EAIE/B,EAJF+B,MAAAA,CACAh6B,EAGEi4B,EAHFj4B,KAAAA,CACAo5B,EAEEnB,EAFFmB,GAAAA,CACA/7C,EACE46C,EADF56C,OAAAA,CAIE48C,GACF/B,IAAa,GAAcC,CAAAA,EAGvB,GAAaA,GAHS,GAGTA,CAAVA,GAA8Cv8C,MAAAA,CAApCu8C,OAAAA,EAAAA,KAAAA,EAAAA,EAAS+B,QAAQ,CAAjB/B,IAAkB,EAAO,GAAK,KAAa,OAAPv8C,GAFjD,IAAW,OAAPA,GAMH,oBADCjK,EAEJsoD,GAAY,oBAIZA,GAAY,cAGZH,IACFG,GAAYH,EAASI,CADT,OACiB,CAAC,KAAOJ,EAAW,GAAY,OAATA,EAAS,MAG9D,IAAMK,EACJ,CAACxB,GAAyC,IAAxBA,EAAapkD,MAAM,EAAUokD,CAAY,CAAC,EAAE,GAAKvrD,EAGnEA,GACEosD,CAA0B,CAACpsD,EAAU,EAC9B,IADT,CAAC,SACDuE,GACAwoD,IAEAF,GAAY,GAAyC,OAAtCT,CAA0B,CAACpsD,EAAU,CAAC,MAGvD,EAJE,EAIIkD,EAAS,IAAIugC,gBACN,mBAAmB,CAA5Bl/B,IACE6mD,GAAiBloD,EAAOkG,GAAG,CAAC,kBAAmBgiD,GAC/CqB,GAAWvpD,EAAOihD,MAAM,CAAC,YAAanY,OAAOygB,IAC7CX,GAAQ5oD,EAAOihD,MAAM,CAAC,SAAU2H,GAChCT,GAAcnoD,EAAOihD,MAAM,CAAC,eAAgBkH,EAAappD,IAAI,CAAC,MAC9DspD,GAAcroD,EAAOihD,MAAM,CAAC,eAAgBoH,EAAatpD,IAAI,CAAC,MAC9DupD,GAAStoD,EAAOihD,MAAM,CAAC,UAAWnY,OAAOwf,IACzCC,GAAsBvoD,EAAOihD,MAAM,CAAC,uBAAwBsH,GAC5DP,GAAmBhoD,EAAOihD,MAAM,CAAC,oBAAqBnY,OAAOkf,IAC7DS,GAASzoD,EAAOihD,MAAM,CAAC,UAAWwH,GAClC/4B,GAAO1vB,EAAOihD,MAAM,CAAC,QAASvxB,GAC9BvxB,IACF6B,EAAOihD,IADK,EACC,CAAC,SAAU,GAAwB9iD,MAAAA,CAArBA,EAASq7C,QAAQ,CAAC,KAAsB,OAAnBr7C,EAASs7C,SAAS,GAC9DgQ,GAAazpD,EAAOihD,MAAM,CAAC,cAAewI,IAE5CC,GACF1pD,EAAOihD,GADG,GACG,CACX,SACA,GAAgCyI,MAAAA,CAA7BA,EAAOI,SAAS,CAACtQ,QAAQ,CAAC,KAAiCkQ,MAAAA,CAA9BA,EAAOI,SAAS,CAACrQ,SAAS,CAAC,KAAgCiQ,MAAAA,CAA7BA,EAAOK,SAAS,CAACvQ,QAAQ,CAAC,KAA8B,OAA3BkQ,EAAOK,SAAS,CAACtQ,SAAS,GAGrH1sC,GACF/M,EAAOihD,IADI,EACE,CAAC,UAAWl0C,IAIzB47C,GAAc3oD,EAAOihD,MAAM,CAAC,eAAgB0H,GAC5CG,GAAK9oD,EAAOihD,MAAM,CAAC,MAAO6H,GAE9B,IAAMkB,EAAchqD,EAAOs0B,QAAQ,GAEnC,OADAq1B,GAAYK,EAAc,IAAgB,OAAZA,GAAgB,GAEhD,EAAE,kEErHK,SAASC,EAAe,CAS9B,QA6BGhyC,EACAiwC,EACAF,IAEArB,EAAAA,EACS,EACTuD,UAOI5C,EACA6C,EAIAC,UA5CkCzC,EAAvBA,EAAAA,IAZY,EAC7Br8C,MAAAA,CAAS,CAATA,CAD6B,EAE7BjK,IAAAA,CACAsmD,CADAtmD,CAF6B,EAG7BsmD,SAAAA,CACAC,EAJ6B,EAI7BA,QAAAA,CACAC,EAL6B,EAK7BA,OAAAA,CAAAA,EAL6B,EAM7BtrD,IAAAA,CAIM8tD,CAJN9tD,CAI2B,EAmF3BqrD,EADoB,GAlFqB,CAAEA,EA0F5C,OA1F4CA,EAAUC,QAAAA,EAASv8C,OAT9DA,CAS8DA,IAT9DA,IAAAA,EAAS,MAS4D,GAmFrEs8C,QAAAA,CACAC,EAFoB,EAEpBA,OAAAA,CACAv8C,EAHoB,EAGpBA,MAAAA,EAMOs8C,IAAa,GAAcC,CAAAA,EAA0B,GAAcv8C,GAAzC,GAAyCA,CAAXu8C,EAAQ,KAAU,OAAPv8C,GAA7B,IAAW,OAAPA,IA3FuB,CAElEo7C,EAA0D,QAA/CiB,EAAmB,QAAnBA,QAAAA,EAAAA,KAAAA,EAAAA,EAAWjB,QAAAA,GAAXiB,KAAAA,MAAAA,QAAuBA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAWhB,CAAXgB,IAAWhB,GAAXgB,KAAAA,MAAAA,KAAAA,EAAAA,EAAkB1jD,MAAAA,GAAzC0jD,KAAAA,IAAAA,EAAAA,EAAmD,EAC9DF,EAAeE,OAAAA,EAAAA,KAAAA,EAAAA,EAAWF,WAAXE,CAAWF,QAAeE,EAAAA,KAAAA,EAAAA,EAAWF,WAAXE,CAAuB,CAAG,EAkBzE,MAhBa,UAAU,CAbvBtmD,CAAAA,KAAAA,IAAAA,EAAO,UAcLgpD,EAASz/C,IAAI,CAAC,UAEdy/C,EAASz/C,IAAI,CAAC,QAGhBy/C,EAASz/C,IAAI,CACXq+C,EAA2B,CACzBxB,mBAAcA,EAAAA,EADUwB,EAExBvC,eAAUA,EAAAA,EADIe,EAEdC,cAAe,CADLhB,aAEVc,WAAY,OACd,GArBFjrD,CAsBEA,IAtBFA,IAAAA,EAAO,WAyBA,GAA0B+tD,MAAAA,CAAvBD,EAAStrD,IAAI,CAAC,KAAK,MAAgC,OAA5BurD,GAiB7B3C,CAAAA,EAjB8CA,GAiBjC,CAAC,GAVhB1vC,OAAAA,GAUE0vC,EATFO,eAAAA,GASEP,EARFK,iBAAAA,CACAX,EAOEM,EAPFN,KAAAA,GAOEM,EANFhB,KAAAA,CAAAA,EAMEgB,EALFpB,KAAAA,EAAAA,CACA2D,KAAAA,KADS,EAKPvC,EAJFuC,YAAAA,EAAe,CAAC,IAChBxD,EAGEiB,EAHFjB,QAAAA,CACAe,EAEEE,EAFFF,YAAAA,CACAiB,EACEf,EADFe,gBAAAA,CAGI9sB,EAAcyrB,OAAAA,EAAAA,KAAAA,EAAAA,EAAOzrB,OAAPyrB,IAAOzrB,GAAegkB,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,KAChCyH,OAAAA,EAAAA,KAAAA,EAAAA,EAAOC,OAAPD,MAAOC,GAAiB3H,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAACC,CAAAA,EAAAA,EAAAA,CAAAA,CAAYA,GAAI,KACzC36C,OAAOq/B,WAAW,CAC7Cr/B,OAAOuU,OAAO,CAAC0wC,GAAcjnD,MAAM,CAAC,gBAAI4pC,EAAAA,YAAAA,CAAAA,EAAAA,OAAOlrC,EAAQkrC,IAAY,IAANA,OAG7B,SAChC50B,QAAAA,EACA2jB,YAAa2uB,EAAW3uB,GACxB0rB,cAAeiD,EAAWjD,IAhB1Bf,CAiBGA,IAjBHA,IAAAA,EAAQ,CAAC,IAkBO,MAAZG,GAAoB,CAACe,IAgD3B,CAAKd,GAAD,KAACA,GAhDsC6D,EAgDtC7D,EAAAA,EAAO1iD,CAAP0iD,KAAO1iD,EAKR,CALgB,CAKf0iD,QAAAA,KAAAA,EAAAA,EAAO1iD,CAAP0iD,KAAO1iD,IAAU,GAAM,GACnB,CACLyiD,QAAQ,CAAEC,QAAAA,KAAAA,EAAAA,EAAO1iD,CAAP0iD,KAAa,EAGpBA,EAAM5sC,MAAM,CAAC,SAAC0wC,CAAAA,CAAM1D,CAAAA,CAAMjgC,CAAAA,EAC/B,IAAMkgC,EACmB,UAAvB,OAAOD,EAAKC,MAAM,CAAgBnoD,MAAMkoD,EAAKC,MAAM,EAAElpC,IAAI,CAAC,CAAEmpC,IAAK,IAAK,GAAKF,EAAKC,MAAM,CAClF7jD,EACqB,UAAzB,OAAO4jD,EAAK5jD,QAAQ,CAAgBtE,MAAMkoD,EAAK5jD,QAAQ,EAAE2a,IAAI,CAAC,CAAEmpC,IAAK,IAAK,GAAKF,EAAK5jD,QAAQ,CAExFunD,EAAa5jC,EAAQ,EAC3B,GAAIkgC,EAAO/iD,MAAM,CAAE,CACjBwmD,CAAI,CAAC,OAAkB,OAAXC,EAAW,aAAW,CAAG1D,EAAO/iD,MAAM,CAClD,IAAM0mD,EAAY3D,EACf/jD,MAAM,CAAC,SAACyN,CAAAA,SAAMA,KAAU6P,MAAR0mC,GAAG,EAA4B,OAAVv2C,EAAEu2C,GAAG,GAC1C/iD,GAAG,CAAC,SAACwM,CAAAA,SAAMA,EAAEu2C,GAAG,GACf0D,EAAU1mD,MAAM,EAAE,CACpBwmD,CAAI,CAAC,OAAkB,OAAXC,EAAW,aAAW,CAAGC,EAAU5rD,IAAI,CAAC,KAExD,CACA,GAAIoE,EAASc,MAAM,CAAE,CACnBwmD,CAAI,CAAC,OAAkB,OAAXC,EAAW,eAAa,CAAGvnD,EAASc,MAAM,CACtD,IAAM2mD,EAAYznD,EAASF,MAAM,CAAC,SAACikD,CAAAA,SAAgB,OAAVA,EAAED,GAAG,GAAW/iD,GAAG,CAAC,SAACgjD,CAAAA,SAAMA,EAAED,GAAG,EACrE2D,GAAU3mD,MAAM,EAAE,CACpBwmD,CAAI,CAAC,OAAkB,OAAXC,EAAW,aAAW,CAAGE,EAAU7rD,IAAI,CAAC,KAExD,CAEA,OAAO0rD,CACT,EAAG,CAAC,GAlCK,CACLI,eAAgB,CAClB,CACF,EAnDKV,GAGDjC,IAAiBkC,EAAelC,eAAe,CAAGA,CAAAA,EAClDF,IAAmBoC,EAAepC,iBAAiB,CAAGA,CAAAA,EAC1C,MAAZtB,IAAkB0D,EAAe1D,QAAQ,CAAGA,CAAAA,EAChC,MAAZA,GAAoBe,IAAc2C,EAAe1D,QAAQ,EAAG,EAC5De,IAAc2C,EAAe3C,YAAY,CAAGA,CAAAA,EAC5CyC,EAAapB,GAAG,GAAEsB,EAAetB,GAAG,CAAGoB,EAAapB,GAAG,EACvDJ,GAAkB0B,GAAe1B,gBAAgB,CAAGA,CAAAA,EAEjD,IAAInoB,gBAAgBuqB,OAKbtxC,OAAO,CALgB4wC,GAKPrwC,MAAM,CAAC,SAAC/Z,CAAAA,CAAAA,CAAAA,qBAASpB,EAAAA,CAAAA,CAAAA,EAAAA,CAAKD,EAAAA,CAAAA,CAAAA,EAAAA,OAClD,WAAI,OAAOA,EACF,mBAAKqB,GAAQ,WAACpB,EAAMkqC,OAAOnqC,KAEf,UAAjB,OAAOA,EACF,mBAAKqB,GAAQ,WAACpB,EAAMmsD,SAASpsD,GAASmqC,OAAOnqC,GAAS,KAE1C,UAAjB,OAAOA,EACF,mBAAKqB,GAAQ,WAACpB,EAAMD,IAEtB,mBAAKqB,GAAQ,WAACpB,EAAM,IAC7B,EAAG,CAAC,IAhBkD01B,QAAQ,IAzChE,CAwEA,SAASi2B,EAAWS,CAAU,EAC5B,MAAO1T,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAAC0T,EAAM,aACtB,CC7HO,IAAMC,EAAqB,gBAChCpD,EAAAA,EAAAA,OAAAA,CACAF,EAAAA,EAAAA,SAAAA,CAKA,GAAI,CAACA,GAAa,CAAC1iD,OAAOsU,IAAI,CAACouC,GAAW1jD,MAAM,CAAE,OAAO4jD,EACzD,IASIF,QAAAA,EAAAA,EAAa,CAAC,EARhBN,EAQEM,EARFN,KAAAA,CACAV,EAOEgB,EAPFhB,CAOEgB,IAPFhB,CACAJ,EAMEoB,EANFpB,KAAAA,CACAsC,EAKElB,EALFkB,iBAAAA,CACAnC,EAIEiB,EAJFjB,QAAAA,CACAiC,EAGEhB,EAHFgB,YAAAA,CACAT,EAEEP,EAFFO,eAAAA,CACAF,EACEL,EADFK,iBAAAA,CAGIhoD,EAAS,IAAIugC,gBACf8mB,GAAOgC,EAAiBrpD,EAAQqnD,GAChCV,GAAO2C,EAAiBtpD,EAAQ0mD,EADT2C,CAC+B1C,EAAM1iD,MAAjByiD,CAApB4C,GACvBtB,GAAmBhoD,EAAOihD,MAAM,CAAC,oBAAqB+G,EAAkB1zB,QAAQ,IAChF4zB,GAAiBloD,EAAOihD,MAAM,CAAC,kBAAmBiH,GAClD3B,GAAOD,EAAiBtmD,EAAQumD,GAChCsC,GAAuBA,EAAkB5kD,IADlBqiD,EACwB,EACjDtmD,EAAOihD,MADgB,CAAC,oBACW4H,EAAkB9pD,IAAI,CAAC,MACxD4pD,GAAc3oD,EAAOihD,MAAM,CAAC,eAAgB0H,GAEhD,IAAMloB,EAAczgC,EAAOs0B,QAAQ,GACnC,MAAO,GAAcmM,MAAAA,CAAXonB,EAAQ,KAAe,OAAZpnB,EACvB,EAAE,kLIxCWn0B,EAAkD,gBAC7Da,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,EACAF,MAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAS,WACThP,EAAAA,EAAAA,KAAAA,CAAAA,EAAAA,EACA6oB,KAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAQ,QACR5Z,WAAAA,CACA/J,CADA+J,CACA/J,EAAAA,QAAAA,CACGoL,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CANHpB,YACAF,SACAhP,QACA6oB,QACA5Z,cACA/J,aAGOuL,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,eAAfA,CAAAA,EAAAA,CACyBy8C,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,GAArCC,EAA6BD,EAA7BC,MAAAA,CAAQ9pB,EAAqB6pB,EAArB7pB,KAAAA,CAAO+pB,EAAcF,EAAdE,SAAAA,CACjBC,EAAmDD,EACrD,CACEzlC,KAAM,QACN,uBAAwB,QACxB,aAAc,GAAmB0b,MAAAA,CAAhBva,EAAQ,EAAE,QAAY,OAANua,EACnC,EACA,CAAC,EAEL,MACE,UAAC7zB,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCL,UAAW4C,IACT,cACA,CACE,CAHSA,cAGkB,WAAX9C,EAChB,eAAgBA,aAChB,kBAA8B,cAAXA,EACnBwS,OAAQ2rC,GAAatkC,IAAUqkC,EAC/B,eAAgBC,CAClB,EACAj+C,IAEEk+C,EACA98C,GAAAA,UAEJ,WAACf,MAAAA,CAAIL,UAAU,iEACD,WAAXF,GACC,iCACE,UAACqD,IAAAA,CAAEnD,UAAU,mBAAWuB,EAAE,YAC1B,UAACsS,EAAAA,EAAIA,CAAAA,CAAChX,KAAK,iBAAiBoY,KAAK,KAAKjV,UAAU,oBAAoB+T,QAAQ,aAGpE,cAAXjU,GACC,iCACE,UAACqD,IAAAA,CAAEnD,UAAU,mBAAWuB,EAAE,eAC1B,UAACsS,EAAAA,EAAIA,CAAAA,CAAChX,KAAK,eAAeoY,KAAK,KAAKjV,UAAU,uBAAuB+T,QAAQ,aAGhF,CAAC,CAACjjB,GACD,UAACqS,IAAAA,CACCH,mBAAiB,cACjBhD,UAAW4C,IAAG,gBAADA,gBAAkC,CAC7Cu7C,SA/CZp+C,CA+CsBA,IA/CtBA,IAAc,KAgDF,wBAAyBk+C,CAC3B,YAECntD,IAGJkF,OAIT,EAAE,sBCnEWoK,EAA8D,gBACzEg+C,EAAAA,EAAAA,SAAAA,CACAhrD,EAAAA,EAAAA,KAAAA,CACA4C,EAAAA,EAAAA,QAAAA,CACAlF,EAAAA,EAAAA,KAAAA,CACAutD,EAAAA,EAAAA,oBAAAA,CACGj9C,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CALHg9C,YACAhrD,QACA4C,WACAlF,QACAutD,yBAGwB39C,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,EAAC,MAAhCoU,EAAiBpU,CAAAA,CAAAA,EAAAA,CAAX49C,EAAW59C,CAAAA,CAAAA,EAAAA,CAElB69C,EAAc,mBACfn9C,GAAAA,CACH2N,OAAQ+F,EACRE,UAAW,kBAAMspC,EAAQ,CAACxpC,IAC1BgJ,cACE,UAACjJ,SAAAA,CAAO7U,UAAU,uBAAuBqF,QAAS,kBAAMi5C,GAAQ,IAAO/qD,KAAK,kBACzEH,MAKP,OAAOtC,EACL,UAACikB,EAAAA,EAAMA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAKwpC,GAAAA,CAAaztD,MAAOA,EAAOutD,qBAAsBA,WAC1DroD,KAEDooD,EACF,UAACrpC,EAAAA,EAAMA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAKwpC,GAAAA,CAAaH,UAAWA,EAAWC,qBAAsBA,WAClEroD,KAED,IACN,EAAE,ECzC+D,gBAAGA,EAAAA,EAAAA,QAAAA,CAC5D,EAAc+nD,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,GAApBS,OAAAA,CAER,MACE,UAACn+C,MAAAA,CAAImB,GAAIg9C,EAASC,YAAU,SAASz+C,UAAU,kBAC5ChK,GAGP,aCPM0oD,EAA4D,oBAChEtrD,KAAAA,CAAQ,CAARA,CAAQ,EACRurD,SAAAA,CACAC,CADAD,CACAC,EAAAA,IAAAA,CAE4Eb,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,GAA5EE,EAAoEF,EAApEE,SAAAA,CAAWO,EAAyDT,EAAzDS,OAAAA,CAASR,EAAgDD,EAAhDC,MAAAA,CAAQ9pB,EAAwC6pB,EAAxC7pB,KAAAA,CAAO2qB,EAAiCd,EAAjCc,WAAAA,CAAaC,EAAoBf,EAApBe,eAAAA,CAExD,OAAOb,EACL,UAAC59C,MAAAA,CAAIL,UAAU,iFACb,UAACK,MAAAA,CAAIL,UAAU,iFACb,UAAC++C,EAAAA,CAAUA,CAAAA,CACTC,SAAUR,EACVprD,MAXRA,CAWeA,IAXfA,IAAAA,EAAQ,SAYAurD,UAXRA,CAWmBA,IAXnBA,IAAY,KAYJ3jD,QAASgjD,EACT9pB,MAAOA,EACP2qB,YAAaA,EACbC,gBAAiBA,EACjBF,KAAMA,QAIV,IACN,ECjBMK,EAAoD,gBASpCv+C,EARpBtN,EAAAA,EAAAA,KAAAA,CACAurD,EAAAA,EAAAA,SAAAA,CACAC,EAAAA,EAAAA,IAAAA,CACA5oD,EAAAA,EAAAA,QAAAA,CACAgF,EAAAA,EAAAA,OAAAA,CACAkkD,EAAAA,EAAAA,aAAAA,CACG99C,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CANHhO,QACAurD,YACAC,OACA5oD,WACAgF,UACAkkD,kBAGMC,EAAAA,QAAcz+C,EAAAA,EAAAA,QAAc,CAAC3J,GAAG,CACpCf,EACA,SAACkf,CAAAA,SAAUxU,EAAAA,cAAoB,CAACwU,IAAUA,EAAM3hB,IAAI,GAAK4L,GAAS+V,EAAJ/V,IAF5CuB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAGjB5K,MAAM,CAACtB,SAEJ4qD,EAAS1+C,EAAAA,QAAc,CAAC3J,GAAG,CAC/BooD,EACA,SAACjqC,CAAAA,CAAOyE,CAAAA,SACNjZ,EAAAA,cAAoB,CAACwU,IACrBxU,EAAAA,YAAkB,CAAQwU,EAAiE,CACzFyE,MAAAA,CACF,KAEEua,EAAQxzB,EAAAA,QAAc,CAACqf,KAAK,CAACq/B,GAEnC,MACE,WAACC,EAAAA,EAAKA,CAAAA,CAACrkD,QAASA,EAASk5B,MAAOA,EAAOgrB,cAAeA,YACpD,UAACI,EAAaA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAKl+C,GAAAA,UAAOg+C,KAC1B,UAACV,EAAcA,CAACtrD,MAAOA,EAAOurD,GAAfD,OAA0BC,EAAWC,KAAMA,MAGhE,+HG5BMW,EAAqBznD,OAAOC,MAAM,CAAC,CACvCuH,MAAO,YACPkgD,QAAS,SACTC,OAAQ,QACV,GAKaC,EAAqB,gBAChC5/C,EAAAA,EAAAA,MAAAA,CACA9J,EAAAA,EAAAA,QAAAA,CACAgK,EAAAA,EAAAA,SAAAA,CACA2/C,EAAAA,EAAAA,UAAAA,CACGv+C,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAJHtB,SACA9J,WACAgK,YACA2/C,eAGA,MACE,WAACt/C,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCL,UAAW4C,IACT,gBADWA,+BAEX,CACE,4BAAwC,UAAX9C,EAC7B,8BAA0C,YAAXA,EAC/B,4BAAwC,WAAXA,CAC/B,EACAE,GAEFy+C,YAAWc,CAAkB,CAACz/C,EAAO,CACrC8/C,eAAa,EACb/8C,cAAY,sBACRzB,GAAAA,WAEHu+C,EACC,UAAC9rC,EAAAA,EAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAK8rC,IAEV,iCACc,UAAX7/C,GAAsB,UAAC+T,EAAAA,EAAIA,CAAAA,CAAChX,KAAK,eAAekX,QAAQ,UAC7C,YAAXjU,GAAwB,UAAC+T,EAAAA,EAAIA,CAAAA,CAAChX,KAAK,eAAekX,QAAQ,aAG9D/d,KAGP,EAAE,0JE1CW6pD,EAAcn/C,EAAAA,UAAgB,CACzC,WAAuDC,CAAAA,MAApDX,EAAAA,EAAAA,SAAAA,CAAWoS,EAAAA,EAAAA,QAAAA,CAAUhf,EAAAA,EAAAA,KAAAA,CAAAA,EAAAA,EAAO6hB,IAAAA,CAAgB7T,CAAhB6T,CAAgB7T,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA5CpB,YAAWoS,WAAUhf,QAAO6hB,SAC7B,MACE,WAACJ,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACC3a,IAAKyG,EACLpN,KAAK,SACLyM,UAAW4C,IAAG,gBAADA,4CAA8D5C,GAC3EoS,SAAUA,GACNhR,GAAAA,WAEJ,UAAC8B,OAAAA,CAAKlD,UAAU,mBAAW5M,IAC3B,UAACygB,EAAAA,EAAIA,CAAAA,CAAChX,KAAK,iBAAiBoY,KAVHA,CAUSA,IAVTA,IAAAA,EAAO,YAatC,GACA,EAEUzQ,WAAW,CAAG,cCjBnB,IAAMs7C,EAAep/C,EAAAA,UAAgB,CAC1C,WAAuDC,CAAAA,MAApDX,EAAAA,EAAAA,SAAAA,CAAW5M,EAAAA,EAAAA,KAAAA,CAAOgf,EAAAA,EAAAA,QAAAA,CAAAA,EAAAA,EAAU6C,IAAAA,CAAgB7T,CAAhB6T,CAAgB7T,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA5CpB,YAAW5M,QAAOgf,WAAU6C,eAC7B,WAACJ,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACC3a,IAAKyG,EACLpN,KAAK,SACLyM,UAAW4C,IAAG,gBAADA,cAAgC5C,GAC7CoS,SAAUA,GACNhR,GAAAA,WAEJ,UAAC8B,OAAAA,CAAKlD,UAAU,mBAAW5M,IAC3B,UAACygB,EAAAA,EAAIA,CAAAA,CAAChX,KAAK,QAAQoY,KATQA,CASFA,IATEA,IAAAA,EAAO,eAYtC,EAEWzQ,WAAW,CAAG,eCfpB,IAAMu7C,EAAcr/C,EAAAA,UAAgB,CACzC,WAAuDC,CAAAA,MAApDX,EAAAA,EAAAA,SAAAA,CAAWoS,EAAAA,EAAAA,QAAAA,CAAUhf,EAAAA,EAAAA,KAAAA,CAAAA,EAAAA,EAAO6hB,IAAAA,CAAgB7T,CAAhB6T,CAAgB7T,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA5CpB,YAAWoS,WAAUhf,QAAO6hB,SAC7B,MACE,WAACJ,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACC3a,IAAKyG,EACLpN,KAAK,SACLyM,UAAW4C,IAAG,gBAADA,4CAA8D5C,GAC3EoS,SAAUA,GACNhR,GAAAA,WAEJ,UAAC8B,OAAAA,CAAKlD,UAAU,mBAAW5M,IAC3B,UAACygB,EAAAA,EAAIA,CAAAA,CAAChX,KAAK,kBAAkBoY,KAVJA,CAUUA,IAVVA,IAAAA,EAAO,YAatC,GACA,EAEUzQ,WAAW,CAAG,0KEpBpBw7C,EAAejrD,CAAAA,EAAAA,EAAAA,aAAAA,CAAaA,CAAe,CAAC,GAErCgpD,EAAW,WACtB,IAAM5tC,EAAU9R,CAAAA,EAAAA,EAAAA,UAAAA,CAAUA,CAAC2hD,GAC3B,QAAgB5sC,IAAZjD,EACF,KADyB,CACfue,MAAM,yDAElB,OAAOve,CACT,ECNakvC,EAAuD,oBAClErkD,OAAAA,CACAk5B,CADAl5B,CACAk5B,EAAAA,KAAAA,CACAl+B,EAAAA,EAAAA,QAAAA,CACAgK,EAAAA,EAAAA,SAAAA,CACAk/C,EAAAA,EAAAA,aAAAA,CACA19C,EAAAA,EAAAA,EAAAA,CACGJ,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CANHpG,UACAk5B,QACAl+B,WACAgK,YACAk/C,gBACA19C,OAGMy+C,EAAav/C,EAAAA,KAAW,GAEFA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,CAAC1F,KAV3CA,IAAAA,EAAU,KAUiCA,GAApCgjD,EAAqBt9C,CAAAA,CAAAA,EAAAA,CAAbw/C,EAAax/C,CAAAA,CAAAA,EAAAA,CACtBu9C,EAAY/pB,EAAQ,EACpB4qB,EAAkBp+C,EAAAA,WAAiB,CAAC,WACxC,IAAMiZ,EAAQqkC,EAAS,EAAI,EAAI9pB,EAAQ,EAAI8pB,EAAS,EACpDkC,EAAUvmC,GACVulC,GAAiBA,EAAcvlC,EAAO,WACxC,EAAG,CAACqkC,EAAQ9pB,EAAOgrB,EAAc,EAE3BL,EAAcn+C,EAAAA,WAAiB,CAAC,WACpC,IAAMiZ,EAAQqkC,EAAS,GAAK9pB,EAAQ,EAAI8pB,EAAS,EACjDkC,EAAUvmC,GACVulC,GAAiBA,EAAcvlC,EAAO,OACxC,EAAG,CAACumC,EAAWhB,EAAelB,EAAQ9pB,EAAM,EAEtCisB,EAAcz/C,EAAAA,WAAiB,CACnC,SAACiZ,CAAAA,EACCumC,EAAUvmC,GACVulC,GAAiBA,EAAcvlC,EACjC,EACA,CAACumC,EAAWhB,EAAc,EAG5B,MACE,UAACc,EAAaroD,QAAQ,EAATqoD,MACJ,CACLhC,OAAAA,EACAQ,SAAAA,KA3BUh9C,EAAAA,EAAM,SAAoB,EAA1BA,IAA0B,CAAXy+C,GA4BzBhC,UAAAA,EACA/pB,MAAAA,EACA2qB,YAAAA,EACAC,gBAAAA,EACAoB,UAAWC,CACb,WAEA,UAACvsC,UAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAQ5T,UAAW4C,IAAG,gBAADA,kBAAoC5C,IAAgBoB,GAAAA,UACvEpL,MAIT,EAAE,mPEhDIoqD,EAAkF,gBACtFpgD,EAAAA,EAAAA,SAAAA,CACAhK,EAAAA,EAAAA,QAAAA,CACAqqD,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,EACAC,qBAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAwB,iBACxB7vD,EAAAA,EAAAA,QAAAA,CACA8vD,EAAAA,EAAAA,aAAAA,CAEMpiD,EAASqiD,CAAAA,EAAAA,EAAAA,EAAAA,CAASA,CAAC,CAAE/vD,SAAAA,CAAS,GAC9BgwD,EAAQC,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAACviD,GAEhBwiD,EAAkBC,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAAC,CAAE/C,KAAMwC,EAAKliD,OAAAA,EAAQhE,QAD3CsmD,CAC2CtmD,CADnC,CAAE0mD,QAAS,MAAgD,EAAI,CAAC,CACrB,GAC7DxnD,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,GAEtBwnD,EAAqB,CACzB,UAAWP,EACX,YAAa,CAACA,CAChB,SAEA,EAaKlnD,EAQEonD,CArBG,CAsBR,MATa,GASb,EAACv9C,OAAAA,CACCgM,aAAW,IACXlP,UAAW4C,IACT,gBADWA,mEAEX5C,aAGF,UAACkD,OAAAA,CAAKlD,UAAU,kCACd,WAACkD,OAAAA,CAAKlD,UAAW4C,IAAG,gBAADA,4BAA8Ck+C,aAC9DH,EAAgBI,KAAK,CAACC,OAAO,CAC7BL,EAAgBI,KAAK,CAAC3M,IAAI,MAG/B,WAAClxC,OAAAA,CAAKlD,UAAU,mCACd,WAACkD,OAAAA,CACClD,UAAW4C,IAAG,gBAADA,2BAA6C09C,EAAuB,CAC/E,mCAAoCC,EACpC,mCAAoC,CAACA,CACvC,aAECI,EAAgBN,GAAG,CAACW,OAAO,CAC5B,UAAC99C,OAAAA,CAAKlD,UAAU,kCAA0B2gD,EAAgBN,GAAG,CAACjM,IAAI,MAEpE,UAAClxC,OAAAA,CAAKlD,UAAW4C,IAAG,gBAADA,4BAA8Ck+C,YAC9DH,EAAgBE,OAAO,SAK9B,WAAC39C,OAAAA,CACCgM,aAAW,IACXlP,UAAW4C,IACT,gBADWA,6DAEX5C,EACA,CACE,MAAOugD,EACP,OAAQ,CAACA,CACX,aAGF,UAACr9C,OAAAA,CACClD,UAAW4C,IACT,gBADWA,+NAEX09C,EACA,CACE,WAAYC,EACZ,WAAY,CAACA,CACf,YAGDI,EAAgBN,GAAG,CAACW,OAAO,GAE9B,WAAC99C,OAAAA,CAAKlD,UAAU,0BACd,UAACkD,OAAAA,CACClD,UAAW4C,IACT,gBADWA,wGAEXk+C,YAGDH,EAAgBI,KAAK,CAAC3M,IAAI,GAE7B,UAAClxC,OAAAA,CACClD,UAAW4C,IAAG,gBAADA,qCAAuDk+C,YAEnEH,EAAgBE,OAAO,SAvE5B,UAAC39C,OAAAA,CAAKlD,UAAU,2GACd,UAACkD,OAAAA,CAAKlD,UAAW4C,IAAG,gBAADA,SAA2B69C,EAAQ,OAAS,YAdjE,WAACv9C,OAAAA,CAAKlD,UAAU,4GACd,UAAC6T,EAAAA,EAAIA,CAAAA,CAAChX,KAAK,WAAWoY,KAAK,KAAKlB,QAAQ,QAAQ/T,UAAU,iBACzDhK,EACC,UAACkN,OAAAA,CAAKF,mBAAiB,sBAAsBhD,UAAU,sCACpDhK,IAED,OAmFZ,wBChGO,SAASirD,EAAapD,CAAI,CAAE1jD,CAAO,EACxC,IAAM+mD,EAAQC,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACtD,QAAM1jD,EAAAA,KAAAA,EAAAA,EAASinD,EAAE,EAGtC,CAHoCA,IAATjnD,EAC3B+mD,EAAMG,OAAO,CAAC,GACdH,EAAMI,QAAQ,CAAC,EAAG,EAAG,EAAG,GACjBJ,CACT,gBCJO,SAASK,EAAYC,CAAS,CAAEC,CAAW,CAAEtnD,CAAO,EACzD,IAAmCunD,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAcA,OAC/CvnD,EAAAA,KAAAA,EAAAA,EAASinD,EAAE,CACXI,EADSJ,GAETK,CAFAtnD,EADKwnD,EAA4BD,CAAAA,CAAAA,EAAAA,CAAhBE,EAAgBF,CAAAA,CAAAA,EAAAA,CAKnC,OACEC,EAAWp9C,WAAW,KAAOq9C,EAAar9C,WAAW,IACrDo9C,EAAWE,QAAQ,KAAOD,EAAaC,QAAQ,EAEnD,CCJO,SAASC,EAAUN,CAAS,CAAEC,CAAW,CAAEtnD,CAAO,EACvD,IAAgCunD,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAcA,OAC5CvnD,EAAAA,KAAAA,EAAAA,EAASinD,EAAE,CACXI,EACAC,GAAAA,CAFAtnD,EADK4nD,EAAyBL,CAAAA,CAAAA,EAAAA,CAAdM,EAAcN,CAAAA,CAAAA,EAAAA,CAKhC,MAAO,CAACO,CAAAA,EAAAA,EAAAA,CAAAA,CAAUA,CAACF,IAAe,CAACE,CAAAA,EAAAA,EAAAA,CAAAA,CAAUA,CAACD,EAChD,CCvBO,SAASE,EAAQrE,CAAI,CAAEsE,CAAa,EACzC,MAAO,CAAChB,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACtD,GAAQ,CAACsD,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACgB,EACjC,CCFO,SAASC,EAASvE,CAAI,CAAEsE,CAAa,EAC1C,MAAO,CAAChB,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACtD,GAAQ,CAACsD,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACgB,EACjC,qEKGME,EAAc3hD,EAAAA,UAAgB,CAClC,WAAkEC,CAAAA,MAA/DX,EAAAA,EAAAA,SAAAA,CAAWsiD,EAAAA,EAAAA,OAAAA,CAASC,EAAAA,EAAAA,OAAAA,CAASC,EAAAA,EAAAA,QAAAA,CAAUC,EAAAA,EAAAA,WAAAA,CAAgBrhD,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAvDpB,YAAWsiD,UAASC,UAASC,WAAUC,sBACxC,UAAC5tC,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACC7U,UAAW4C,IACT,gBADWA,wMAEX,oHACA,CACE,sBAAuB,CAAC4/C,GAAYF,EACpC,YAAa,CAACE,GAAY,CAACF,GAAWC,EACtC,+HACEC,EACF,YAAaD,EACb,sBAAuBE,EACvBziD,UAAAA,CACF,IAEEoB,GAAAA,CACJ7N,KAAK,SACL2G,IAAKyG,OAKX0hD,EAAY79C,WAAW,CAAG,cC0B1B,IAAMk+C,EAAS,aAKTC,EAAgBjiD,EAAAA,UAAgB,CACpC,WAiBEC,CAAAA,MAfE0/C,EAAAA,EAAAA,GAAAA,CACAuC,EAAAA,EAAAA,MAAAA,CAAAA,EAAAA,EACAC,OAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAU,MACVC,EAAAA,EAAAA,aAAAA,CACA/B,EAAAA,EAAAA,KAAAA,CACAgC,EAAAA,EAAAA,WAAAA,CACA5kD,EAAAA,EAAAA,MAAAA,CACA6B,EAAAA,EAAAA,SAAAA,CACAgjD,EAAAA,EAAAA,kBAAAA,CACAC,EAAAA,EAAAA,cAAAA,CACAC,EAAAA,EAAAA,QAAAA,CAAAA,EAAAA,EACA1iB,KAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAQ,IAAIl8B,KAAAA,EACM6+C,EAAAA,EAAlBC,gBAAAA,CAAkBD,EAAAA,KAAAA,MAAyB,EAAE,CAA3BA,EACJE,EAAAA,EAAdC,YAAAA,CAAcD,EAAAA,KAAAA,IAAAA,EAAqB,EAAE,CAAvBA,EAIVtC,EAAQwC,GAAetC,EAAazgB,GAEpCgjB,EAAe,KAFoBvC,IAEnBwC,CAAAA,EACpB,IAKeC,EACAA,EACAA,EAPTC,EAASF,aAAan/C,KACtBo/C,EAAaC,EAAS,CAAC,GAAI,GAAI,GAAG,CAAGF,EAAE/pD,KAAK,CAAC,KAC7CmkD,EAAa8F,EACfF,EACA,IAAIn/C,KACFs/C,SAAsB,QAAbF,EAAAA,CAAU,CAAC,KAAXA,KAAAA,IAAAA,EAAAA,EAAiB,GAAI,IAC9BE,SAAsB,QAAbF,EAAAA,CAAU,CAAC,KAAXA,KAAAA,IAAAA,EAAAA,EAAiB,GAAI,IAAM,EACpCE,SAASF,QAAAA,EAAAA,CAAU,CAAC,KAAXA,KAAAA,IAAAA,EAAAA,EAAiB,GAAI,KAEpC,MAAOvZ,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAAC0T,EAAM6E,EACtB,EAEMU,EAAmB1iD,EAAAA,OAAa,CACpC,kBAAMyiD,EAAuBpsD,GAAG,CAACysD,IACjC,CAACL,EAAuB,EAGpBG,EAAe5iD,EAAAA,OAAa,CAChC,kBAAM2iD,EAAmBtsD,GAAG,CAACysD,IAC7B,CAACH,EAAmB,EAGhBQ,EAAkBnjD,EAAAA,OAAa,CACnC,iBAAMojD,CAAAA,EAAAA,EAAAA,EAAAA,CAAmBA,CAAC,CAAEjG,KAAMkD,EAAO5iD,OAAAA,CAAO,IAChD,CAAC4iD,EAAO5iD,EAAO,EAEX4lD,EAAOC,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAAC,CAAE7lD,OAAAA,CAAO,GAC9B8lD,EAAgBrD,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAAC,CAClC/C,KAAMkD,EACN5iD,OAAAA,EACAhE,QAAS,CAAE+pD,UAAW,MAAO,CAC/B,GACMC,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,CAAYA,CAACjmD,GAAU,OAAS,GAC3CmhB,EAASohC,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAACviD,GACnB,GAAgC8lD,MAAAA,CAA7BA,EAAcI,IAAI,CAACrD,OAAO,EAA8BiD,MAAAA,CAA3BA,EAAcI,IAAI,CAACjQ,IAAI,CAAC,KAAiC6P,MAAAA,CAA9BA,EAAclD,KAAK,CAACC,OAAO,EAA4B,OAAzBiD,EAAclD,KAAK,CAAC3M,IAAI,EACjH,GAA+B+P,MAAAA,CAA5BF,EAAclD,KAAK,CAAC3M,IAAI,CAAC,KAAc6P,MAAAA,CAAXE,GAAsC,OAA3BF,EAAcI,IAAI,CAACrD,OAAO,EAClEx/C,EAAKd,EAAAA,KAAW,GAChB4jD,EAAU,kBAAqB,OAAH9iD,GAElC,MACE,WAACnB,MAAAA,CAAInG,IAAKyG,EAAcX,UAAW4C,IAAG,gBAADA,eAAiC5C,aACpE,UAAC+C,KAAAA,CACC/C,UAAU,gDACVwB,GAAI8iD,EACJzhD,cAAY,wBACZ47C,YAAU,kBAETn/B,IAEH,WAACilC,QAAAA,CAAM/rC,KAAK,OAAOxY,UAAU,SAASwkD,kBAAiBF,YACrD,UAACG,QAAAA,UACC,UAACx8C,KAAAA,UACE87C,EAAKhtD,GAAG,CAAC,SAAC8pD,CAAAA,QACT,UAAC74C,KAAAA,CAAG08C,MAAM,MAAoB1kD,UAAU,yCACtC,UAACkD,OAAAA,CAAKgM,aAAW,aAAE2xC,KADAA,SAM3B,UAAC8D,QAAAA,UACEd,EAAM9sD,GAAG,CAAC,SAAC6tD,CAAAA,CAAGvvB,CAAAA,MACJuvB,EAAAA,QAAT,UAAC38C,KAAAA,UACE28C,EAAE7tD,GAAG,CAAC,SAAC0sD,CAAAA,EACN,GAAIA,EAAG,CACL,MHxH6BtpD,IAElB,EAAtB0qD,CAF+C,GGwH9BrC,EAAW,GAAQV,EAAU2B,EAAGpD,IAAUuC,CAAdd,EAAwBA,EAAU2B,EAAGb,GACjEkC,EAD6DhD,GAErDA,EAAU2B,EAAGjjB,IAAWyiB,CAAfnB,EJ/IM,IAAxCX,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACtD,EAAM1jD,CI+IsD4qD,GJ/ItD5qD,CAAAA,GAAa6qD,CAAb7qD,MAAoB,CAAXinD,CAAAA,CI+I8D2D,EACxDzB,EJhJJ,EAAXnpD,IIgJkC,CAChC,CAACmpD,EAAa3tD,QAAQ,CAACw0C,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACsZ,EAAGf,KACjCI,IAEAV,EAASqB,EAAGxB,CAAAA,EAAAA,CAAJG,CAAIH,CAAAA,CAAUA,CADtB,KACkCC,EAAQuB,EAAGjR,CAAAA,EAAJ0P,EAAI1P,CAAAA,CAAOA,CAAChS,EAAOqiB,GAAAA,EAC1DP,IACJjC,KAAOuC,IHjIUqC,EGiImB,CAAEC,EAAtBC,GHjIS,CGiIoB9E,EAAK+E,IAAKxC,CAAO,EHhI5EyC,EAAO,CAAClE,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACtD,EAAM1jD,IAAAA,CAAAA,IAAAA,CACE,MADOinD,CAAAA,CACP,IAC3B,CAACD,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAAC8D,EAASC,KAAK,CAAE/qD,QAAAA,KAAAA,EAAAA,EAASinD,EAAE,CAAXjnD,CACxB,CADiCinD,CAChCD,EAAAA,EAAAA,CAAAA,CAAMA,CAAC8D,EAASG,GAAG,OAAEjrD,EAAAA,KAAAA,EAAAA,EAASinD,EAAE,EAClC,CADgCA,IAC3B,CAAC,SAAC79C,CAAAA,CAAGgK,CAAAA,SAAMhK,EAAIgK,OAHQ,IAAX+3C,EAAW,KAKtBD,GAAQR,GAAaQ,GAAQC,GG2HZ7C,EAAcW,EAAiBztD,QAAQ,CAACw0C,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACsZ,EAAGf,IAElD6C,EAAY,kBAAMxC,EAAYU,IAyCpC,MACE,UAAC+B,KAAAA,CAAqBxlD,UAAU,eAC7BuhD,EAAYkC,EAAG1C,GACd,IADUQ,CACV,MAACc,EAAWA,CACV7gD,GAAI,KADM6gD,EACa,OAAZoB,EAAE/iB,OAAO,IACpBtuB,SAAUA,EACVowC,SAAUA,EACVF,QAASA,EACTG,YAAaA,EACbF,QAAST,EAAU2B,EAAGjjB,GACtBvwB,EADkB6xC,QAjDR,CAkDC7xC,QAlDAqL,CAAAA,EACjB,IF5JcnhB,EAIhCA,EAAAA,EAEAL,CANuC,CAMvCA,EAHAK,EAAAA,EAAAA,UEyJsBsrD,GAAO,EACX,OAAQnqC,EAAE7pB,GAAG,EACX,IAAK,IACL,IAAK,QACH8zD,IACAE,GAAO,EACP,KACF,KAAK,aACHzC,EAAmBS,EAAE/iB,OAAO,GAAI8R,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAACiR,EAAG,GAAG/iB,OAAO,IACrD,KACF,KAAK,YACHsiB,EAAmBS,EAAE/iB,OAAO,GAAIglB,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAACjC,EAAG,GAAG/iB,OAAO,IACrD+kB,GAAO,EACP,KACF,KAAK,YACHzC,EAAmBS,EAAE/iB,OAAO,GAAI8R,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAACiR,EAAG,GAAG/iB,OAAO,IACrD+kB,GAAO,EACP,KACF,KAAK,UACHzC,EAAmBS,EAAE/iB,OAAO,GAAIglB,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAACjC,EAAG,GAAG/iB,OAAO,IACrD+kB,GAAO,EACP,KACF,KAAK,OACHzC,EAAmBS,EAAE/iB,OAAO,GAAIilB,CAAAA,EAAAA,EAAAA,CAAAA,CAAWA,CAAClC,GAAG/iB,OAAO,IACtD+kB,GAAO,EACP,KACF,KAAK,MACHzC,EAAmBS,EAAE/iB,OAAO,GAAIklB,CFtLlD9rD,EAAiB+rD,CAAAA,EAAAA,EAAAA,CAAAA,CAAiBA,GEsL6BD,EFjLvB,QAH5CzrD,EAE2B,QAF3BA,EACsC,QADtCA,EAAAA,CAAAA,KACAA,EAAAA,KAAAA,EAAe,QAAfA,EAAAA,CAAAA,CAASgE,MAAAA,GAAThE,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAiBA,OAAAA,EADjBA,CACAA,KAAAA,EADS2rD,EACT3rD,EAAAA,KAAAA,EAAAA,CADqB,CACK2rD,YAAAA,CAD1B3rD,EAAAA,KAAAA,IAAAA,EAAAA,EAEAL,EAAegsD,YAAAA,GAFf3rD,GAAAA,EAAAA,IAAAA,EAAAA,EAGqB,QAArBL,EAAAA,EAAeqE,MAAM,GAArBrE,KAAAA,MAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAuBK,OAAAA,GAAvBL,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgCgsD,YAAAA,GAHhC3rD,KAAAA,IAAAA,EAAAA,EAIA,EAGIkmD,EAAMa,CADNA,EAAQC,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CE8KkDsC,QF9K3CtpD,EAAAA,KAAAA,EAAAA,EAASinD,EAAE,GAAFA,IAATjnD,EACH,GAGxB+mD,EAAMI,QAAQ,CAAC,EAAG,EAAG,EAAG,GACxBJ,EAAMG,OAAO,CAACH,EAAM8D,OAAO,IAHd,CAGmBe,EAHZD,EAAe,CAAC,GAAI,EAAK,GAAKzF,CAAAA,CAAMyF,CAAAA,CAAW,GAK5D5E,GEuKkExgB,OAAO,IACxD+kB,GAAO,CAIX,CACIA,IACFnqC,EADQ,eACS,GACjBA,EAAE0qC,cAAc,GAEpB,EAaQ3gD,QAAS,SAAC4gD,CAAAA,EACJA,EAAIC,OAAO,EAAID,EAAIE,OAAO,EAAE,GAGlC,EACAC,QAAS,kBAAMpD,EAAmBS,EAAE/iB,OAAO,KAC3ChhB,SAAUolC,EAAO,EAAI,CAAC,YAEtB,UAAC5hD,OAAAA,CAAKlD,UAAU,mBAAWkjD,EAAWA,EAASO,GAAK,KACpD,UAACvgD,OAAAA,CAAKgM,aAAW,aACdu0C,EAAE4C,kBAAkB,CAACC,EAAAA,EAAgBA,CAAE,CACtCjG,IAAK,SACP,QAGF,MAzBGoD,EAAE/iB,OAAO,GA4BtB,CACA,OAAO,IACT,IAvFOkkB,QAAAA,EAAAA,QAAAA,EAAAA,CAAC,CAAC,KAAFA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAMlkB,OAAO,KAAbkkB,KAAAA,IAAAA,EAAAA,EAAmBvvB,YA8FxC,GAGFstB,EAAcn+C,WAAW,CAAG,+BCjPtB+hD,EAAe,aAsDRC,EAAwD,gBACnEC,EAAAA,EAAAA,YAAAA,CACA3D,EAAAA,EAAAA,aAAAA,CACA9sD,EAAAA,EAAAA,QAAAA,CACAmI,EAAAA,EAAAA,MAAAA,CACAkiD,EAAAA,EAAAA,GAAAA,CACAuC,EAAAA,EAAAA,MAAAA,CACAC,EAAAA,EAAAA,OAAAA,CACAE,EAAAA,EAAAA,WAAAA,CACA2D,EAAAA,EAAAA,cAAAA,CACAxD,EAAAA,EAAAA,QAAAA,CACAyD,EAAAA,EAAAA,YAAAA,CACAtgB,EAAAA,EAAAA,OAAAA,CACAugB,EAAAA,EAAAA,MAAAA,CACAC,EAAAA,EAAAA,KAAAA,CACAC,EAAAA,EAAAA,QAAAA,CACA1D,EAAAA,EAAAA,gBAAAA,CACAE,EAAAA,EAAAA,YAAAA,CAAAA,EAAAA,EACA9iB,KAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAQ,IAAIl8B,KAAAA,EACZyiD,EAAAA,EAAAA,0BAAAA,CACG3lD,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAnBHqlD,eACA3D,gBACA9sD,WACAmI,SACAkiD,MACAuC,SACAC,UACAE,cACA2D,iBACAxD,WACAyD,eACAtgB,UACAugB,SACAC,QACAC,WACA1D,mBACAE,eACA9iB,QACAumB,+BAGM7sD,EAAMwG,EAAAA,MAAY,CAAiB,MACnCsmD,EAAYtmD,EAAAA,MAAY,CAAiB,MACzCumD,EAAYvmD,EAAAA,MAAY,CAAiB,MACXA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,MAA3CwmD,EAA6BxmD,CAAAA,CAAAA,EAAAA,CAAjBymD,EAAiBzmD,CAAAA,CAAAA,EAAAA,CAC9B0mD,EAAmB1mD,EAAAA,MAAY,CAAoB,MACnD2mD,EAAe3mD,EAAAA,MAAY,CAAoB,MAC3BA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,CAACugD,EAAaZ,GAAO7f,IAAAA,GAARygB,EAA3BvgD,CAAAA,CAAAA,EAAAA,CAAZ4mD,EAAY5mD,CAAAA,CAAAA,EAAAA,CACnBa,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,kBAAfA,CAAAA,EAAAA,CACNimD,GAAUlH,EAAM7N,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAAC6N,EAAK,GAAKA,EAClCmH,IAAe1E,GAAwBvB,EAAYR,EAAOvgB,GAC1DinB,GAAkB/mD,CADgC6gD,CAChC7gD,CADa,KACD,CAAC2/C,GAAO7f,GAEtCknB,GAAc,SAACjE,CAAAA,EACfiD,GAAkBjD,EAChBpD,CADmB,EACZ,CAACuC,EACN6D,EAIE3E,EAAU2B,EALE,IAKSvB,CAAZJ,CAAoB2B,EAJjB,GAIgBvB,EACfuB,CADyB,EAE/BrB,EAASqB,EAAGpD,IAAJ+B,EAAU,GAQzBF,EAAQuB,EAAGpD,GAAJ6B,EACMuB,CADI,EAEVrB,EAASqB,EAAGpD,IAAJ+B,EACLqB,IAIhBV,EAAYU,GACZiD,OAAetzC,IAGjB2vC,EAAYU,GAEVsD,GAA8BtD,GAAG,CACnCgE,GAAgBzsD,OAAO,EAAGyoD,EAE5Br0C,CAAAA,EAAAA,EAAAA,EAAAA,CAAUA,CAAC,oCACb,EAEMu4C,GAAc,SAAClE,CAAAA,EACnB,GAAIP,EAAU,CACZ,IAAIwD,IAAkBjD,GAAG,CACnBpD,GAAQuC,EAoBZ,EApBW,IAAS,CAoBbM,EAASO,EAAG,IAnBjB,GAAIgD,EAAc,CAChB,GAAI3E,EAAU2B,EAAGpD,IAAQ6B,CAAZJ,CAAoB2B,EAAGpD,GAAJ6B,GAAU,IACjCgB,EAASO,EAAG,IAErB,GAAIrB,EAASqB,EAAGpD,GACd,CADU+B,EAAU,IACbc,EAASO,GAAG,EAEvB,KAAO,CACL,GAAIvB,EAAQuB,EAAGpD,GAAJ6B,GAAU,IACZgB,EAASO,GAAG,GAErB,GAAIrB,EAASqB,EAAGpD,GACd,CADU+B,EAAU,IACbc,EAASO,EAAG,GAEvB,CAOJ,OAAOP,EAASO,EAClB,CAGA,OAAOA,EAAE4C,kBAAkB,CAACloD,EAAQ,CAAEypD,UAAW,MAAO,EAC1D,EAEMC,GAAgB,SAACpE,CAAAA,EACrB6D,EAAS7D,EACX,EAEMT,GAAqB,SAACS,CAAAA,CAAWqE,CAAAA,CAAeC,CAAAA,EACpD,GAAID,EAAM,KAKuBb,EAF/B,GAFAE,EAAcW,GAEV,CAACvG,EADgC,IAAhBwG,EAAoBhH,EAAQiH,CAAAA,CAChCC,CADgCD,EAAAA,CAAAA,CAASA,CAACjH,EAAO,GACnC+G,GAAO,CACpC,GAAIA,EAAOrE,EAAG,CACZ,GAAIsE,KAAqB,CAAC,UAACd,EAAAA,EAAUjsD,OAAAA,GAAVisD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmBiB,YAAAA,EAAc,OAC5DL,GAAcG,CAAAA,EAAAA,EAAAA,CAAAA,CAASA,CAACjH,EAAO,GACjC,CACI+G,EAAOrE,GAAqB,GAAG,CAAnBsE,GACdF,GNhKDG,CAAAA,EAAAA,EAAAA,CAAAA,EMgKyBjH,GAAVoH,IAAiB,KAARA,CAE3B,CACF,CACF,EAaA,OAXAznD,EAAAA,SAAe,CAAC,WACVxG,EAAIc,OAAO,EAAE,sBACO,WACpB,IAAgBd,EAAVa,EAAqB,QAAXb,EAAAA,EAAIc,OAAAA,GAAJd,KAAAA,MAAAA,KAAAA,EAAAA,EAAa8T,aAAa,CAAoB,QAAmB,OAAXk5C,IAClEnsD,GACFA,EAAQkT,IADG,CACE,EAEjB,EAEJ,EAAG,CAACi5C,EAAYhtD,EAAI,EAGlB,WAACmG,MAAAA,CAAInG,IAAKA,EAAK8F,UAAU,mBAAmB6C,cAAY,+BACrD,CAAC,CAACw9C,GACD,iCACE,UAAC+H,QAAAA,CACC70D,KAAK,SACLsJ,KAAMgqD,EACNrlD,GAAI,GAAaqlD,MAAAA,CAAVD,EAAO,KAAS,OAANC,GACjBr1D,MAAO6uD,GAAOlW,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACkW,EAAKkG,KAE5B,UAAC6B,QAAAA,CACC70D,KAAK,SACLsJ,KAAMiqD,EACNtlD,GAAI,GAAaslD,MAAAA,CAAVF,EAAO,KAAY,OAATE,GACjBt1D,MACEoxD,EAASzY,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACyY,EAAQ2D,GAAgBlG,GAAOlW,CAAAA,EAAAA,EAAAA,EAAAA,CAAMA,CAACqI,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAAC6N,EAAK,GAAIkG,QAK9EQ,EACC,UAACA,EAAAA,CACCsB,qBAAsBZ,GAAgBzsD,OAAO,CAC7CstD,cAAeT,KAEf,KACJ,WAACxnD,MAAAA,CACCL,UAAW4C,IAAG,gBAADA,OAAyB,CACpC0P,OAAQ,CAAC,CAACy0C,CACZ,aAEA,UAAClH,EAAAA,EAAWA,CAAAA,CACVx6C,QAAS,kBAAMwiD,GNjNhBG,CAAAA,EAAAA,EAAAA,CAAAA,CAASA,CAACnK,EAAM,CAAC0K,EADcpuD,EMkNgB,INjNtBA,CADa,GMmNrCD,IAAKktD,EACLh1C,SAAUo1C,GACVp0D,MAAOmO,EAAE,mBAEX,UAACw+C,EAAAA,EAAWA,CAAAA,CACV16C,QAAS,kBAAMwiD,GAAcG,CAAAA,EAAAA,EAAAA,CAAAA,CAASA,CAACjH,EAAO,KAC9C7mD,IAAKmtD,EACLj0D,MAAOmO,EAAE,kBAKb,WAAClB,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAIL,UAAU,YAAYwY,KAAK,cAAc7U,aAAYgjD,GAAkBvlD,GAAAA,WAC1E,UAACf,MAAAA,CAAIo+C,YAAU,SAASz+C,UAAU,mBAC/BqmC,IAEH,WAAChmC,MAAAA,CAAIL,UAAU,sCACb,UAAC2iD,EAAaA,CACZzoD,IAAK8sD,EACLjE,IAFYJ,QAEC+E,GACbvpD,OAAQA,EACRkiD,IAAKA,EACLuC,OAAQA,GAAU2E,GAClBxG,MAAOA,EACP8B,QAASA,EACTqE,WAAYA,EACZlE,mBAAoB,SAACS,CAAAA,CAAGqE,CAAAA,SAAS9E,GAAmBS,EAAGqE,EAAM,IAC7D7E,cAAc,IACdC,SAAUyE,GACV7E,cAAeA,EACftiB,MAAOA,EACP4iB,iBAAkBA,EAClBE,aAAcA,IAEhB,UAACX,EAAaA,CACZzoD,IAAK+sD,EACLlE,IAFYJ,QAEC+E,GACbvpD,OAAQA,EACRkiD,IAAKA,EACLuC,OAAQA,GAAU2E,GAClB1E,QAASA,EACT9B,MAAOiH,CAAAA,EAAAA,EAAAA,CAAAA,CAASA,CAACjH,EAAO,GACxB/gD,UAAU,kBACVknD,WAAYA,EACZlE,mBAAoB,SAACS,CAAAA,CAAGqE,CAAAA,SAAS9E,GAAmBS,EAAGqE,EAAM,IAC7D5E,SAAUyE,GACV7E,cAAeA,EACftiB,MAAOA,EACP4iB,iBAAkBA,EAClBE,aAAcA,IAEfttD,WAKX,EAAE,EEvQgC,gBAChC8sD,EAAAA,EAAAA,aAAAA,CACA2D,EAAAA,EAAAA,YAAAA,CACApG,EAAAA,EAAAA,GAAAA,CACAmI,EAAAA,EAAAA,YAAAA,CACAtF,EAAAA,EAAAA,QAAAA,CACAuF,EAAAA,EAAAA,QAAAA,CACA7F,EAAAA,EAAAA,MAAAA,CACA8F,EAAAA,EAAAA,eAAAA,CACApF,EAAAA,EAAAA,YAAAA,CACA7yD,EAAAA,EAAAA,QAAAA,CACAoyD,EAAAA,EAAAA,OAAAA,CACAkE,EAAAA,EAAAA,0BAAAA,CAEM,EAAQzlD,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,mBAArBC,CAAAA,CACsBlH,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAC,OAAhCgsC,EAAuBhsC,CAAAA,CAAAA,EAAAA,CAAdsuD,EAActuD,CAAAA,CAAAA,EAAAA,CACxB,EAAeuuD,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAA3BC,QAAAA,CACF1qD,EAASqiD,CAAAA,EAAAA,EAAAA,EAAAA,CAASA,CAAC,CAAE/vD,SAAAA,CAAS,GA2BpC,MACE,UAAC+1D,EAAQA,CACPI,KADOJ,EACA,uBACPK,MAAM,cACNC,SAAS,gBACThE,cAAeA,EACf2D,aAAcA,EACd5D,QAASA,EACT1kD,OAAQA,EACRkiD,IAAKA,EACLuC,OAAQA,EACRG,YArCgB,CAqCHA,QArCIU,CAAAA,EACfA,GAAG,CACLoF,EAASL,EAAc/E,EAAG,CAAEqF,aAAa,EAAMC,gBAAgB,CAAK,GAEpEF,EAASH,EADaD,EAAWhF,EAAIb,GAAUR,EAASQ,EAAQa,GAAKjR,CAC3C2H,EAD2C3H,EAAAA,CAAAA,CAAOA,CAACiR,EAAG,GAAKb,EAC5C,CAAEkG,aAAa,EAAMC,gBAAgB,CAAK,GACnFJ,EACEpnD,EAAEknD,EAAW,wBAA0B,sBAAuB,CAC5DO,SAAUvF,EAAE4C,kBAAkB,CAACloD,EAAQ,CAAEypD,UAAW,MAAO,EAC7D,IAGN,EA2BIlB,eA1BmB,CA0BHA,QA1BIjD,CAAAA,EACtBoF,EAASH,EAAiBjF,EAAG,CAAEqF,aAAa,EAAMC,gBAAgB,CAAK,GACnEtF,GAAG,EAEHliD,EAAE,yBAA0B,CAC1BynD,QAAQ,OAAE3I,EAAAA,KAAAA,EAAAA,EAAKgG,KAALhG,aAAuB,CAACliD,EAAQ,CACxCypD,UAAW,MACb,GACAzG,OAAQsC,EAAE4C,kBAAkB,CAACloD,EAAQ,CAAEypD,UAAW,MAAO,EAC3D,GAGN,EAeIjB,aAAcplD,EAAE,gBAChB8kC,QAASA,EACTid,aAAcA,EACdJ,SAAUA,EACV6D,2BAA4BA,GAGlC,EAAE,oBCvCWkC,EAAa,gBACxBC,EAAAA,EAAAA,oBAAAA,CACAnC,EAAAA,EAAAA,0BAAAA,CACAoC,EAAAA,EAAAA,oBAAAA,CACArG,EAAAA,EAAAA,aAAAA,CAAAA,EAAAA,EACA2D,YAAAA,CAAe,CAAfA,CAAe,EACf2C,oBAAAA,CAAuB,CAAvBA,CAAuB,EACvBX,QAAAA,CAAAA,EAAAA,KAAAA,IAAW,SACXY,mBAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAsB,UACtB9hC,EAAAA,EAAAA,aAAAA,CACAxc,EAAAA,EAAAA,YAAAA,CACAta,EAAAA,EAAAA,QAAAA,CAAAA,EAAAA,EACAoyD,OAAAA,CAAU,CAAVA,CAAU,EACVv7B,iBAAAA,CAAAA,EAAAA,KAAAA,IAAAA,GAAoB,MACpBg8B,YAAAA,CACAttD,CADAstD,CACAttD,EAAAA,QAAAA,CACAszD,EAAAA,EAAAA,SAAAA,CACA9hC,EAAAA,EAAAA,eAAAA,CACA1L,EAAAA,EAAAA,MAAAA,CACA9G,EAAAA,EAAAA,SAAAA,CACA0S,EAAAA,EAAAA,YAAAA,CACA3Y,EAAAA,EAAAA,MAAAA,CAEAw6C,CADA,CACAA,EAAAA,cAAAA,CAEM,EAAQjoD,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,UAHU,SAG/BC,CAAAA,CACFpD,EAASqiD,CAAAA,EAAAA,EAAAA,EAAAA,CAASA,CAAC,CAAE/vD,SAAAA,CAAS,GACZiQ,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,CAAC8oD,GAAAA,GAAhC10C,EAAiBpU,CAAAA,CAAAA,EAAAA,CAAX49C,EAAW59C,CAAAA,CAAAA,EAAAA,CAClB2c,EAAY3c,EAAAA,MAAY,CAAoB,MACXkoD,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAA7CC,EAA+BD,EAA/BC,QAAAA,CAAU10D,EAAqBy0D,EAArBz0D,KAAAA,CAAOs1D,EAAcb,EAAda,SAAAA,CACnBjB,EAAe,GAAuB,OAApBa,EAAoB,gBACtCX,EAAkB,GAAuB,OAApBW,EAAoB,kBAEzChJ,GAAMqJ,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,CAAE7sD,KAAM2rD,CAAa,GACpC5F,GAAS8G,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,CAAE7sD,KAAM6rD,CAAgB,GAENhoD,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,CAI9C,SAJHipD,GAAmCjpD,EAAAA,CAAAA,EAAAA,CAApBkpD,GAAoBlpD,EAAAA,CAAAA,EAAAA,CAMpCmpD,GAAiB,CAACviC,GAAqB,CAAE+4B,CAAAA,IAAOuC,EAAAA,CAAK,CAC3DliD,EAAAA,SAAe,CAAC,WACd,GAAI,CAAC2/C,IAAO/4B,EAAmB,CAC7B,IAAMwiC,EAAa7H,CAAAA,EAAAA,EAAAA,CAAAA,CAAUA,CAAC,IAAI39C,MAC5BylD,EAAgBtB,EAAWqB,EAAatX,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAACsX,EAAY,GAElEjB,EAASL,EAAcsB,EAAY,CAAEhB,aAAa,CAAK,GACvDD,EAASH,EAAiBqB,EAAe,CAAEjB,YAAa,EAAK,EAC/D,CACF,EAAG,CAACzI,GAAKmI,EAAcC,EAAUC,EAAiBG,EAAUvhC,EAAkB,EAE9E,IAAM47B,GAAW7C,GAAMA,GAAIgG,kBAAkB,CAACloD,EAAQ,CAAEypD,UAAW,MAAO,GAAK,GACzEoC,GAAcvB,EAChBvF,GACAN,GACAA,GAAOyD,kBAAkB,CAACloD,EAAQ,CAAEypD,UAAW,MAAO,GACtD,GAEEL,GAAUlH,GAAM7N,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAAC6N,GAAK,GAAKA,GAElC4J,GAAYrJ,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAAC,CAAE/C,KAAMwC,GAAKliD,OAAAA,CAAO,GAC9C+rD,GAAetJ,CAAAA,EAAAA,EAAAA,EAAAA,CAAaA,CAAC,CAAE/C,KAAM+E,GAAQzkD,OAAAA,CAAO,GAQpDgsD,GAAiC,WACrC7L,GAAQ,GACRnqD,EAAM,mBAAKs1D,KAAAA,CAAavP,MAAO,WAAKyP,MAAmB,CAAES,mBAAmB,CAAK,SACjFp1C,GAAAA,GACF,EAc0CtU,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAfxCsU,OAesD,EAAC,MAAlDq1C,GAAmC3pD,EAAAA,CAAAA,EAAAA,CAApB4pD,GAAoB5pD,EAAAA,CAAAA,EAAAA,CAapC6pD,GAAiB,CACrBC,UAAW,CAACljC,EACZl0B,MAAOmO,EAAE,cACTkpD,UAAWJ,GAAgB9oD,EAAE,2BAAwB6R,CACvD,EAEM/Z,GAAWC,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,GAE5B,MACE,WAAC+G,MAAAA,CAAIL,UAAU,6BACZ+K,OAAAA,EAAAA,KAAAA,EAAAA,EAAc2/C,SAAAA,GAAab,EAA3B9+C,CACC,UAAC4/C,EAAAA,EAASA,CAAAA,CACRv3D,MAAOmO,EAAE,QACT0lB,QAAQ,OAAElc,EAAAA,KAAAA,EAAAA,EAAc6/C,aAAa,CAA3B7/C,UACA,yHACV/H,mBAAiB,uBAEjB,KACJ,WAAC6nD,EAAAA,EAAYA,CAAAA,CACXC,qBAAqB,uBACrB9qD,UAAU,SACVlP,MAAOuvD,GAAM9+C,EAAE,UAAYA,EAAE,YAC7BwN,OAAQ+F,EACRE,UAAWm1C,GACXY,SAAUZ,GACVl1C,KAAK,MACLq0C,UApDuB,CAoDZ0B,UAnDf1M,GAAQ,GAEJ+B,IAAO,CAACuC,IACViG,EAASH,EAAiBD,EAAWpI,GAAM7N,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAAC6N,GAAK,GAAI,CAC1DyI,aAAa,EACbC,eAAgB,EAClB,SAEFO,GAAAA,GACF,EA2CM2B,QAvCa,CAuCJC,KA5Cb5B,KAMAgB,IAAiB,GACjBn2D,EACE,mBACKs1D,KAAAA,CACHvP,MAAO,CAAEzrB,YAAa,KAAM0rB,cAAe,KAAMgR,WAAW,CAAM,IAEpE,CAAEf,mBAAmB,CAAK,GAE5B5wC,WAAW,kBAAM8wC,GAAiB,KAAQ,KACtC5iC,GAAcA,GACpB,EA6BM7c,cAAe,CAAE1W,MAAOo2D,EAAe,EACvCzsC,cACE,UAACjJ,SAAAA,CACC7U,UAAU,gKACVgD,mBAAiB,kBACjBxB,GAAG,kBACHtH,IAAKmjB,EACL9pB,KAAK,SACLoQ,aAAY,GAAmBu/C,MAAAA,CAAhB3hD,EAAE,WAAW,KAA2CA,MAAAA,CAAxC2hD,IAAsB3hD,EAAE,KAAb2hD,OAAyB,MACjE8G,MAAAA,CADqEzoD,EAAE,YAAY,KAEpF,OADCyoD,IAA4BzoD,EAAE,QAAhByoD,KAEhB3kD,QA5EQ,CA4EC+lD,UA3EjB9M,GAAQ,GACRsL,GAAiByB,IAAU5B,IAAYvP,KAAK,MAAlBmR,GAC1BvvC,GAAAA,GACF,EAyEUjZ,WA1ERiZ,GA0EoB,sBAGZ1J,SAAU,CAAC/Y,YAEVrD,EACCA,EAAS,CAAEqqD,IAAK4J,GAAWrH,OAAQsH,EAAa,GAEhD,iCACE,WAAC9J,EAAqBA,CAACC,IAAKA,GAAK5vD,SAAUA,KAArB2vD,OACpB,UAACl9C,OAAAA,CAAKlD,UAAU,iDAAyCuB,EAAE,aAC3D,UAAC2B,OAAAA,CAAKlD,UAAU,+CAAuCuB,EAAE,iBAE1D,EAKG,KAJF,WfrFH6+C,EeqFyBA,CAACC,IAAKuC,IAAU2E,GAAS92D,OfrF7B2vD,EAAC,CeqFGA,WACpB,UAACl9C,OAAAA,CAAKlD,UAAU,iDAAyCuB,EAAE,cAC3D,UAAC2B,OAAAA,CAAKlD,UAAU,+CAAuCuB,EAAE,gCAQrE,UAAClB,MAAAA,CACC2C,mBAAiB,eACjBhD,UAAU,0DAEV,UAACsrD,EAAkBA,CACjBxI,cAAeA,CADEwI,CAEjB7E,aAvKVA,CAuKwBA,IAvKxBA,IAAAA,GAAe,EAwKLpG,IAAKA,GACLmI,aAAcA,EACdC,SAAUA,EACV7F,OAAQ6F,EAAWpI,GAAMuC,GACzB8F,gBAAiBA,EACjB7F,QAtKVA,CAsKmBA,IAtKnBA,IAAAA,EAAU,MAuKAS,aArKVA,CAqKwBA,IArKxBA,IAAAA,EAAe,EAAE,GAsKPJ,SAAU,SAACO,CAAAA,CAAG8H,CAAAA,SACZhqD,EAAE,WAAY,CACZs8C,KAAM4F,EAAE4C,kBAAkB,CAACloD,EAAQ,CAAEypD,UAAW,MAAO,GACvDr0D,KAAMgO,EAAEgqD,EAAU,UAAY,WAChC,IAEF96D,SAAUA,EACVs2D,2BAA4BA,MAG/BoC,EACC,UAAC9oD,MAAAA,CAAIL,UAAU,wEACb,UAACmpD,EAAAA,CAAqB9I,IAAKA,GAAKuC,OAAQA,OAExC,KACH,CAACr7B,GAAiB2hC,GAAwBC,EACzC,WAAC9oD,MAAAA,CAAIL,UAAU,2CACZ,EAQG,KAPF,UAACwrD,EAAAA,EAASA,CAAAA,CACRp4D,YAAOm2D,EAAAA,EAAkBhoD,EAAE,qBAC3BhO,KAAK,WACLsJ,KAAK,kBACLuV,SApMdg3C,CAoMwBA,IApMxBA,IAAuB,KAqMT/jD,QAASmiB,IAGZ0hC,GAA8C,KAC9CC,EACC,UAAC9oD,GAFqB6oD,GAErB7oD,CAAIL,UAAU,2BACb,UAACmpD,EAAAA,CAAqB9I,IAAKA,GAAKuC,OAAQA,OAExC,QAEJ,UAIZ,EAAE,WC9QK,SAAS6I,EAA0B,CAQzC,MAPCzC,EADwC,EACxCA,QAAAA,CACAv4D,EAFwC,EAExCA,QAAAA,CACA0wD,EAHwC,EAGxCA,MAAAA,CAMM,EAAQ7/C,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,mBAArBC,CAAAA,CACFpD,EAASqiD,CAAAA,EAAAA,EAAAA,EAAAA,CAASA,CAAC,CAAE/vD,SAAAA,CAAS,GAC9Bi7D,EAAiB1C,EAAWA,EAAS3C,kBAAkB,CAACloD,EAAQ,CAAEypD,UAAW,MAAO,GAAK,GACzF+D,EAAexK,EAASA,EAAOkF,kBAAkB,CAACloD,EAAQ,CAAEypD,UAAW,MAAO,GAAK,GACnFgE,EAAS5C,GAAY7H,EAAS0K,CAAAA,EAAAA,EAAAA,CAAAA,CAAgBA,CAAC1K,EAAQ6H,GAAY,EACzE,MACE,UAAC9lD,OAAAA,CAAKlD,UAAU,mBACbuB,EAAE,YAAa,CAAEynD,SAAU0C,EAAgBvK,OAAQwK,EAAc5rC,MAAO6rC,CAAO,IAGtF,yREJA,WACA,MAA+C,OAAkB,IACjE,WACA,MACA,IACA,gBACA,WACA,OACA,cACA,eACA,WACA,CAAI,EACJ,EAAqB,QAAY,OACjC,EAAqB,QAAY,OACjC,SAAkC,OAAoB,EACtD,OACA,cACA,UACA,CAAG,EACH,MAAyB,SAAG,CAC5B,EACA,CACA,QACA,aACA,aACA,UAAiB,OAAK,GACtB,QAAe,OAAK,GACpB,cAAqB,OAAK,GAC1B,OACA,eACA,aAAoB,aAAiB,mBACrC,QACA,UACA,EAEA,EACA,gBACA,sBACA,EAAoB,YAAgB,CACpC,QACA,kBAAY,QAAiC,EAC7C,SACA,EAA+B,OAAe,iBAC9C,MAA2B,SAAG,CACxB,IAAS,QACf,CACA,cACA,yBACA,uBACA,4BACA,uBACA,KACA,MACA,QAAiB,OAAoB,0BACrC,EAEA,GAEA,gBACA,qBACA,WACA,iBACA,CAAC,EACD,MACA,kBAAU,uCAAiD,EAC3D,SACA,MAAyB,SAAG,IAAmB,8BAA4C,UAAc,UAA0C,SAAG,CAAC,GAAQ,EAAI,2BAA+D,SAAG,CAAC,GAAe,EAAI,kCAA2C,EAAG,GAAI,CAC3S,EACA,gBACA,sBACA,EAAoB,YAAgB,CACpC,QACA,2BACA,YAAY,qBAAyD,EACrE,uBACA,eAA2C,SAAG,CAAC,GAAQ,EAAI,2BAA+D,SAAG,IAAsB,WAAoC,EAAG,MAC1L,GAEA,gBACA,MAAwB,YAAgB,CACxC,QACA,kBAAY,QAAiC,EAC7C,SACA,MAGsB,SAAG,CAAC,GAAY,EAAI,GAAI,IAAI,kDAAgF,SAAG,CAC7H,IAAS,KACjB,CACA,uBACA,KACA,MACA,OAAmB,gCACnB,EACA,CAAS,CAET,GAEA,kBACA,EAAoB,YAAgB,CACpC,QACA,2BACA,YAAY,qBAAyD,EACrE,uBACA,MAA2B,SAAG,CAAC,GAAQ,EAAI,mCAA+E,SAAG,IAAuB,WAAoC,EAAoB,SAAG,IAA0B,WAAoC,EAAG,CAChR,EAEA,iBACA,MAAyB,YAAgB,CACzC,QACA,2BACA,EAAuB,QAAY,OACnC,EAAyB,OAAe,mBAKxC,OAJI,WAAe,MACnB,gBACA,WAA0B,QAAU,GACpC,CAAK,KACsB,SAAG,CAC9B,EACA,CACA,KACA,MACA,iBACA,+BACA,iBAA0B,OAAoB,wBAC9C,mBACA,6BACA,CAAS,EACT,qBAA8B,OAAoB,4BAClD,6BACA,+BACA,mBACA,kBACA,CAAS,EACT,eAAwB,OAAoB,CAC5C,iBACA,sBAEA,EAEA,GAEA,EAA4B,YAAgB,CAC5C,QACA,2BACA,EAAoC,QAAY,KAChD,EAAqC,QAAY,KACjD,MAA2B,SAAG,CAC9B,EACA,CACA,KACA,MACA,aACA,+BACA,qBACA,wBACA,qBACA,yCACA,oBAEA,aACA,YACA,CAAS,CACT,sBACA,yBACA,qBACA,aACA,6CACA,gBAGA,eACA,mCACA,mBACA,oDACA,kBAEA,CACA,EAEA,GAEA,EAAwB,YAAgB,CACxC,QACA,kBAAY,yDAA+E,EAC3F,SACA,EAAuB,QAAY,OACnC,EAAyB,OAAe,MAExC,MADI,QAAc,GACS,UAAI,CAAC,UAAQ,EAAI,UACtB,SAAG,CACjB,GAAU,CAClB,CACA,WACA,QACA,UACA,mBACA,qBACA,SAAoC,SAAG,CAC3B,IAAgB,CAC5B,CACA,cACA,eACA,mCACA,4BACA,uBACA,KACA,MACA,gCACA,EAEA,GAEsB,UAAI,CAAC,UAAQ,EAAI,UACf,SAAG,IAAiB,kBAA0B,EAC9C,SAAG,eAAuB,gCAAkD,EACpG,CAAS,EACT,CAAO,CACP,GAEA,gBACA,EAAkB,YAAgB,CAClC,QACA,kBAAY,QAA+B,EAC3C,SACA,MAA2B,SAAG,CAAC,IAAS,KAAO,wBAAuD,CACtG,GAEA,gBACA,yBAQA,CAPwB,YAAgB,CACxC,QACA,kBAAY,QAAqC,EACjD,SACA,MAA2B,SAAG,CAAC,IAAS,IAAM,8BAAmE,CACjH,GAEA,cACA,oBACA,EAAkB,YAAgB,CAClC,QACA,kBAAY,QAA+B,EAC3C,SACA,MAA2B,SAAG,CACxB,IAAS,QACf,CACA,cACA,KACA,MACA,QAAiB,OAAoB,kCACrC,EAEA,GAGA,cACA,wBACA,CAHA,gBAIA,2BACA,MAA2C,OAAa,IACxD,cACA,YACA,iBACA,CAAC,EACD,YAAsB,EAAS,IAC/B,WACA,OAAuB,cAAgC,kBAAkB,YAA8B;;AAEvG,4BAA4B,YAA8B;;AAE1D,4EAA4E,WAA6B,EAOzG,OANE,WAAe,MACjB,GAEA,CADA,4BACA,gBAEA,CAAG,QACH,IACA,EAEA,eAA4B,kBAA2B,IACvD,QAFA,4BAGA,2DAA2E,UAAU,QAAQ,EAAE,eAAuC,GAQtI,OAPE,WAAe,MACjB,kDACA,MAEA,CADA,4BACA,eAEA,CAAG,UACH,IACA,+CCpQaE,GD0Qb,ECxQaC,GAAarrD,EAAAA,UAAgB,CAIxC,EANsBorD,GAAG/2C,IAMzB,CANqC,CAAC,CAyBpCpU,MAjBEy9C,EAAAA,EAAAA,SAAAA,CACApoD,EAAAA,EAAAA,QAAAA,CACAgK,EAAAA,EAAAA,SAAAA,CACAgsD,EAAAA,EAAAA,oBAAAA,CACAC,EAAAA,EAAAA,eAAAA,CACAC,EAAAA,EAAAA,sBAAAA,CACAC,EAAAA,EAAAA,oBAAAA,CACAruC,EAAAA,EAAAA,aAAAA,CACA/O,EAAAA,EAAAA,MAAAA,CACAje,EAAAA,EAAAA,KAAAA,CAAAA,EAAAA,EACAmkB,IAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAO,OACPm3C,EAAAA,EAAAA,aAAAA,CACAp3C,EAAAA,EAAAA,SAAAA,CACAqpC,EAAAA,EAAAA,oBAAAA,CAAAA,EAAAA,EACAgO,YAAAA,CAAAA,EAAAA,KAAAA,IAAAA,GAAe,EACfvB,EAAAA,EAAAA,oBAAAA,CAIIwB,EAAW5rD,EAAAA,MAAY,CAA0B,MACjD6rD,EAAY7rD,EAAAA,MAAY,CAA0B,MAIxD,OAFAA,EAAAA,mBAAyB,CAACC,EAAc,kBAAM4rD,EAAUvxD,OAAO,GAG7D,WAAC+Z,EAAW,CAACD,CAAD,IAAO/F,YAChB+O,EAAgB,UDoOzB,ECpOwC,CAACW,IAAD,GAAQ,aAAEX,IAAkC,KAC5E,UDoOR,ECpOsB,UACZ,UAAC/I,EAAc,CAAC/U,IAAD,MAAY4C,KAAG,eAADA,mBAAoCspD,YAC/D,UDoOZ,ECpO2B,iBAEbM,wBAAkBp5C,EAClBpT,UAAW4C,KACT,eADWA,2DAEX,CACE,WAAqB,OAATqS,EACZ,WAAqB,OAATA,EACZ,WAAYA,SACZ,WAAqB,SACrB,WAAqB,OAATA,EACZ,YAAsB,QAATA,EACb,YAAaA,UACb,YAAsB,QAATA,EACb,YAAsB,QAATA,EACb,YAAaA,UACb,aAAuB,SAATA,EACd,+CAAyD,cAATA,EAChD,OAAQo3C,EACR,OAAQD,CACV,EACAH,GAEFQ,kBAAmBz3C,EACnB03C,gBAAiB13C,GACZ81C,EAAyB,WAACA,GAAuB,GAAS,gBAE/D,WAACzqD,MAAAA,CAAIL,UAAU,SAAS9F,IAAKoyD,YAC1BjO,EAAuB,KAAOvtD,EAC7B,WAACuP,MAAAA,CACCL,UAAW4C,KAAG,eAADA,+BAAgD,CAC3D,+BAAgCypD,CAClC,aAEA,UAACt3C,EAAY,CACX/U,EADW,QACA4C,KACT,eADWA,iHAEXupD,GAEFnpD,mBAAiB,4BAEhBlS,IAEFkkB,GACC,UAAC23C,GAAAA,CACC3sD,UAAWgsD,EACXh3C,UAAWA,EACXq3C,aAAcA,OAKpB,UAACt3C,EAAY,CAACpR,EAAD,WAAay6C,EAAWp+C,UAAU,WAEhD,CAAClP,GAASkkB,EACT,UAAC3U,MAAAA,CAAIL,UAAU,yBACb,UAAC2sD,GAAAA,CAAY33C,UAAWA,EAAWq3C,aAAcA,MAEjD,KACJ,UAAChsD,MAAAA,CAAIL,UAAW4C,KAAG,MAAO5C,SAAR4C,GAAqB5M,IACtCo2D,cAOf,GACA,SAIOO,GAAY,CAI0D,MAH7E33C,EADmB,EACnBA,SAAAA,CACAq3C,EAFmB,EAEnBA,YAAAA,CACArsD,EAHmB,EAGnBA,SAAAA,CAEM,EAAQsB,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAArBC,CAAAA,CACR,MACE,UAACwT,EAAY,CAAC0J,EAAD,KAAQ,aACnB,UAACqhC,GAAAA,CAAYA,CAAAA,CACXz6C,QAAS2P,EACThV,UAAW4C,KACT,eADWA,GAEX,CACE,WAAY,CAACypD,EACb,QAASA,CACX,EACArsD,GAEF5M,MAAOmO,EAAE,YAIjB,CAxBAwqD,GAAWvnD,WAAW,CAAG,aClJlB,IAAMuQ,GAAmF,SAC9FvkB,CADiBukB,EAGjB,IAAMw3C,EAAY7rD,EAAAA,MAAY,CAA0B,MACxD,MAAO,UAACqrD,GAAUA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAKv7D,GAAAA,CAAO0J,IAAKqyD,IACrC,EAAE,YEaIK,GAASC,CAAAA,EAAAA,EAAAA,UAAAA,CAAUA,CACvB,WAAgDlsD,CAAAA,MAA7CvN,EAAAA,EAAAA,KAAAA,CAAO8M,EAAAA,EAAAA,cAAAA,CAAgBF,EAAAA,EAAAA,SAAAA,CAAcoB,EAAAA,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAArChO,QAAO8M,iBAAgBF,cACxB,MACE,WAAC6U,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAWzT,GAAAA,CAAMpB,UAAW4C,KAAG,aAAc5C,EAAf4C,CAA2B1I,IAAKyG,EAAcpN,KAAK,mBAC/EH,EACA8M,EAAiB,UAACgD,OAAAA,CAAKlD,UAAU,mBAAWE,IAAyB,QAG5E,GAKK,SAAS4sD,GAAc,CAMV,MASPC,EAQAC,IAvBiB,EAC5BniD,aAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAgB,CAAC,IACjBogD,EAF4B,EAE5BA,OAAAA,CACA3B,EAH4B,EAG5BA,SAAAA,CACAyB,EAJ4B,EAI5BA,QAAAA,CAAAA,EAJ4B,EAK5BkC,kBAAAA,CAAAA,EAAAA,KAAAA,IAAAA,GAAqB,EAEf,EAAQ3rD,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAArBC,CAAAA,CACAyrD,EAA2BniD,EAA3BmiD,MAAAA,CAAQD,EAAmBliD,EAAnBkiD,OAAAA,CAAS54D,EAAU0W,EAAV1W,KAAAA,CACnB+4D,EAAkB/4D,OAAAA,EAAAA,KAAAA,EAAAA,EAAOq2D,OAAPr2D,EAAOq2D,UAAar2D,EAAAA,KAAAA,EAAAA,EAAOf,KAAK,EAElD+5D,EAAU,CACd,mBACKJ,GAAAA,CACH1nD,QAASikD,EACTl2D,MAAO25D,QAAAA,EAAAA,QAAAA,KAAAA,EAAAA,EAAS35D,GAAT25D,EAAS35D,GAAT25D,KAAAA,MAAAA,EAAkBxrD,EAAE,QAC3BvB,UAAW,cACX,cAAe,sBACf9F,GAAG,OAAE6yD,EAAAA,KAAAA,EAAAA,EAAS7yD,GAAG,GAEnB,GAFO6yD,EAEP,cACKC,GAAAA,CACH3nD,QAAS0lD,EACT33D,MAAO45D,QAAAA,QAAAA,EAAAA,KAAAA,EAAAA,EAAQ55D,KAAAA,GAAR45D,KAAAA,IAAAA,EAAAA,EAAiBzrD,EAAE,UAC1BvB,UAAW,sBACX9F,GAAG,OAAE8yD,EAAAA,KAAAA,EAAAA,EAAQ9yD,GAAG,GAEnB,CAACnD,CAFOi2D,EAEJ,CAAC,SAACx8D,CAAAA,QACL,UAACukB,EAAY,CAAmB0J,EAAnB,KAA0B,aACrC,oBAACmuC,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAWp8D,GAAAA,CAAOiB,IAAKjB,EAAM4C,KAAK,KADlB5C,EAAM4C,KAAK,IAKhC,MACE,WAACiN,MAAAA,CACCL,UAAW4C,KAAG,eAADA,4CAA6D,CACxE,qBAAsBsqD,EACtB,iBAAkB,CAACA,EACnB,cAAe,CAACD,CAClB,aAECC,EACC,UAAC7sD,MAAAA,CAAIL,UAAU,0BACb,WAAC6U,SAAAA,CACC7U,UAAU,kDACV6C,cAAY,uBACZwC,QAAS,kBAAM4lD,QAAAA,KAAAA,EAAAA,KAAAA,GACZ,OAAE92D,EAAAA,KAAAA,EAAAA,EAAO+F,GAAG,CACf3G,GADKY,EACA,yBAEJA,EAAAA,KAAAA,EAAAA,EAAOf,KAAK,CACZe,CADAA,MACAA,EAAAA,KAAAA,EAAAA,EAAO+L,OAAP/L,OAAO+L,EACN,UAACgD,OAAAA,CAAKlD,UAAU,UAAUy+C,YAAU,YAAYjmC,KAAK,uBAClDrkB,EAAAA,KAAAA,EAAAA,EAAO+L,OAAP/L,OAAqB,GAEtB,UAGN,KACJ,UAACkM,MAAAA,CACCL,UAAW4C,KAAG,eAADA,OAAwB,CACnC,cAAe,CAACqqD,CAClB,YAECE,MAIT,CCnGO,SAAStC,GAAa,OAC3BhgD,EAD2B,EAC3BA,aAAAA,CACAkgD,EAF2B,EAE3BA,QAAAA,CACAzB,EAH2B,EAG3BA,SAAAA,CACAt0C,EAJ2B,EAI3BA,SAAAA,CACAi2C,EAL2B,EAK3BA,OAAAA,CACAgC,EAN2B,EAM3BA,kBAAAA,CACGG,EAAAA,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAPwB,GAC3BviD,gBACAkgD,WACAzB,YACAt0C,YACAi2C,UACAgC,uBAGMV,EAAY7rD,EAAAA,MAAY,CAA0B,MAUlD0rD,EACJ,UAACU,GAAaA,CACZjiD,SADYiiD,KACGjiD,EACfogD,QAASA,EACTF,SAZiB,CAYPsC,QAZQ3+D,CAAAA,QACpBq8D,GAAAA,EAAWr8D,EACb,EAWI46D,UATkB,CASPgE,CAZbvC,OAGqBr8D,CAAAA,QACrB46D,GAAAA,EAAY56D,EACd,EAQIu+D,aATF3D,MASsB2D,IAGxB,MACE,UAAClB,GAAUA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACLqB,GAAAA,CACJp4C,UAAWA,EACXo3C,cAAeA,EACflyD,IAAKqyD,IAGX,CDPAK,GAAOpoD,WAAW,CAAG,yPItCf+oD,EAAgBV,CAAAA,EAAAA,EAAAA,UAAAA,CAAUA,CAC9B,WAAuC3yD,CAAAA,UAApCymB,KAAAA,CAAQ,CAARA,CAAQ,EAAI6sC,MAAAA,CAAgBpsD,CAAhBosD,CAAgBpsD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAA5Buf,QAAY6sC,iBACb,WAACn9C,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCnW,IAAKA,EACLse,KAAK,MACLtJ,aAAW,IACXs+C,OALWA,CAKHA,IALGA,IAAAA,EAAS,KAMpB7sC,MANDA,CAMQA,IANRA,IAAAA,EAAQ,KAOPrQ,QAAQ,aACJlP,GAAAA,WAEJ,UAACoP,IAAAA,CAAEG,KAAK,wBACN,UAAC88C,SAAAA,CAAO7qD,GAAG,KAAK8qD,GAAG,KAAKC,EAAE,SAE5B,WAACn9C,IAAAA,CAAEK,UAAU,gCAAgCJ,OAAO,UAAUM,cAAc,mBAC1E,UAAC7c,OAAAA,CAAKuvD,EAAE,8BAA8B/yC,YAAY,MAClD,UAACxc,OAAAA,CAAKuvD,EAAE,+BAA+B/yC,YAAY,eAM3D68C,EAAc/oD,WAAW,CAAG,gBCZ5B,IAAMopD,EAAYltD,EAAAA,UAAgB,CAChC,WAAgCxG,CAAAA,MAA7BoF,EAAAA,EAAAA,KAAAA,CAAOU,EAAAA,EAAAA,SAAAA,CAAcoB,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAArB9B,QAAOU,cACFrN,EAAW,CAAC2M,OAAAA,EAAAA,KAAAA,EAAAA,EAAOuuD,KAAAA,EAAQ/1D,OAAOg2D,MAAM,CAACxuD,EAAMuuD,KAAK,EAAI,OAACvuD,EAAAA,KAAAA,EAAAA,EAAO+mC,OAAP/mC,CAAe,EAAExJ,MAAM,CACpF,SAAC4pC,CAAAA,QAAmB,UAAb,OAAOA,IAEVquB,EAAWp7D,EAASmE,MAAM,CAAG,EAEnC,MACE,UAACuJ,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCnG,IAAKA,EACL8F,UAAW4C,IAAG5C,EAAW,CACvBsS,OAAQ,CAACy7C,EACT,GAFWnrD,WAEImrD,CACjB,IACI3sD,GAAAA,UAEH2sD,GACC,UAAC1tD,MAAAA,CAAIL,UAAU,mCACZrN,EAASoE,GAAG,CAAC,SAACsvC,CAAAA,QACb,WAAChmC,MAAAA,CAECL,UAAU,kFAEV,UAACutD,EAAaA,CAAAA,GACd,OADcA,CACd,EAACrqD,OAAAA,UAAMmjC,MAJF1K,OAAO0K,UAW1B,GAGFunB,EAAUppD,WAAW,CAAG,YChBjB,IAAMwpD,EAAqD,gBAChEl6D,EAAAA,EAAAA,YAAAA,CACAyyB,EAAAA,EAAAA,QAAAA,CACAvwB,EAAAA,EAAAA,QAAAA,CAAAA,EAAAA,EACAi4D,YAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAe,CAAEC,KAAM,YAAaC,aAAc,KAAM,QACxDpnC,cAAAA,CAAiB,CAAjBA,CAAiB,EACjB4H,MAAAA,CACGvtB,CADHutB,CACGvtB,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CANHtN,eACAyyB,WACAvwB,WACAi4D,eACAlnC,iBACA4H,WAGOptB,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAAfA,CAAAA,EAAAA,CACN8sD,EAAoB1tD,EAAAA,OAAa,CAAC,kBAAMutD,GAAc,CAACA,EAAa,EAEpEI,EAAUC,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAAoB,SACzCJ,KAAM,YACNC,aAAc,OACXC,IAEL,EAEIC,EADFE,SAAAA,CAAah8D,EAAAA,EAAAA,MAAAA,CAAQi8D,EAAAA,EAAAA,WAAAA,CAEjBC,EAAY32D,OAAOsU,IAAI,CAAC7Z,GAAQuE,MAAM,CAAG,EAQ/C,MACE,WAAC43D,EAAAA,EAAYA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAKL,GAAAA,WACftnC,CAzBLA,KAAAA,IAAiB,OA0BX,UAAC1mB,MAAAA,CACCmY,KAAK,QACLxY,UAAW4C,IAAG,gBAADA,YAA8B,CACzC,WAAY6rD,GAAaD,CAC3B,YAECC,GAAaD,GACZ,UAACzrD,KAAAA,UACC,UAAC6qD,EAASA,CACR5tD,MADQ4tD,IACE,qBACVtuD,MAAO,CAAE+mC,QAASvyC,GAAgByN,EAAE,eAAgB,QAM9D,UAAC6vC,OAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAKziB,OAzCVA,CAyCkBA,IAzClBA,IAAAA,EAAS,UAyCqBvtB,GAAAA,CAAMutD,UAAU,IAACpoC,SAAU8nC,EAAQO,YAAY,CAAChqC,SAzBtBxlB,CAAAA,EAClDmnB,GACFA,EAASnnB,EAAMivD,EAEnB,CAHgB,WAyBTr4D,QAIT,EAAE,EC3EoB,gBAA0BA,EAAAA,EAAAA,QAAAA,CACxCq4D,EAAUzF,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAC9B,MAA2B,YAApB,OAAO5yD,EAA0BA,EAASq4D,GAAWr4D,CAC9D,aCAM64D,EAAkBnuD,EAAAA,UAAgB,CACtC,WAA+CxG,CAAAA,MAA5C8F,EAAAA,EAAAA,SAAAA,CAAWqmC,EAAAA,EAAAA,OAAAA,CAAS34B,EAAAA,EAAAA,OAAAA,CAASlM,EAAAA,EAAAA,EAAAA,CAAOJ,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAApCpB,YAAWqmC,UAAS34B,UAASlM,OACxB,EAAQF,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,YAArBC,CAAAA,CACF5O,EAAWjB,MAAMC,OAAO,CAAC00C,GAAWA,EAAU,CAACA,EAAQ,CAE7D,MACE,UAAChmC,MAAAA,CAAImB,GAAIA,EAAIxB,UAAU,2BACpB0N,EACC,WAACrN,MAAAA,CAAIL,UAAU,uBACb,UAAC8uD,EAAAA,CAAOA,CAAAA,CAAC75C,KAAK,OACd,UAAC9R,IAAAA,UAAG5B,EAAE,gBAGR5O,UACAA,EAAAA,KAAAA,EAAAA,EAAUoE,GAAG,CAAC,MAAdpE,GAAenB,CAAAA,CAAOmoB,CAAAA,QACpB,UAACtZ,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCnG,IAAKA,EACL8F,UAAW4C,IAAG,gBAADA,+BAAiD5C,IAE1DoB,GAAAA,UAEJ,UAAC+B,IAAAA,UAAG3R,MAHC,gBAA0B,OAAVmoB,EAAQ,QASzC,GAGFk1C,EAAgBrqD,WAAW,CAAG,kBClC9B,IAAMuqD,EAAsE,gBAC1E9nC,EAAAA,EAAAA,QAAAA,CACA+nC,EAFmBD,EAEnBC,QAAAA,CAEOztD,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAAfA,CAAAA,EAAAA,CAEN2tD,EAAehoC,GAAY1lB,EAAE,YAC7B2tD,EAAeF,GAAYztD,EAAE,YAE7B6yC,EAAO6a,GAAgBC,EAE7B,OAAO9a,EACL,iCACG,IACD,WAAClxC,OAAAA,CAAKlD,UAAU,sCAA4B,IAAEo0C,EAAK,UAEnD,IACN,EChBMuW,EAA0D,gBAC9Dv3D,EAAAA,EAAAA,KAAAA,CACA6zB,EAAAA,EAAAA,QAAAA,CACA+nC,EAAAA,EAAAA,QAAAA,CACAjB,EAAAA,EAAAA,QAAAA,CACA/tD,EAAAA,EAAAA,SAAAA,CACAhK,EAAAA,EAAAA,QAAAA,CACGoL,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CANHhO,QACA6zB,WACA+nC,WACAjB,WACA/tD,YACAhK,aAGA,MACE,WAAC5C,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACC4M,UAAW4C,IAAG,QAAS5C,EAAW,CAChC,KADW4C,SACImrD,CACjB,IACI3sD,GAAAA,WAEJ,WAAC8B,OAAAA,WACE9P,EACD,UAAC27D,EAAeA,CAAC9nC,SAAUA,EAAU+nC,SAAUA,OAEhDh5D,GAFiB+4D,EAKxB,EClBavD,EAET,gBACFp4D,EAAAA,EAAAA,KAAAA,CACAyJ,EAAAA,EAAAA,IAAAA,CACAoqB,EAAAA,EAAAA,QAAAA,CACA+nC,EAAAA,EAAAA,QAAAA,CACAG,EAAAA,EAAAA,eAAAA,CACAC,EAAAA,EAAAA,cAAAA,CACAC,EAAAA,EAAAA,WAAAA,CACA3hD,EAAAA,EAAAA,OAAAA,CACA1N,EAAAA,EAAAA,SAAAA,CACAsvD,EAAAA,EAAAA,kBAAAA,CACGluD,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAVHhO,QACAyJ,OACAoqB,WACA+nC,WACAG,kBACAC,iBACAC,cACA3hD,UACA1N,YACAsvD,uBAGM9tD,EAAKd,EAAAA,KAAW,GAChB6uD,EAAU,eAAkB,OAAH/tD,GACzBguD,EAAW,gBAAmB,OAAHhuD,GAC1BD,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAAfA,CAAAA,EAAAA,CAIRsnD,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAFhB6G,EAEE7G,EAFF6G,QAAAA,CACAlB,EACE3F,EADF2F,SAAAA,CAAah8D,MAAAA,CAETm9D,EAAa92D,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAACrG,EAAQsK,GACzBkxD,EAAW,CAAC,CAAC2B,EAEfC,EAAiB,GACjBC,EAAa,GACjB,OAAQxuD,EAAK7N,IAAI,EACf,IAAK,WACHo8D,EAAiB,gBACjBC,EAAa,uBACb,KACF,KAAK,QACHD,EAAiB,aACjBC,EAAa,eACb,KACF,SACED,EAAiB,mBAErB,CAEA,MACE,WAACtvD,MAAAA,CAAIL,UAAWsvD,YACd,UAAC3E,EAASA,CACRv3D,MADQu3D,EAER1jC,SAAUA,EACV+nC,SAAUA,EACVjB,SAAUA,EACV/tD,UAAW4C,IAAG,aAAcgtD,EAAYR,CAA3BxsD,WAEb,UAACwlD,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACC70D,KAAK,QACD6N,GAAAA,CACJpB,UAAW4C,IAAG+sD,EAAgB3vD,EAAW,CACvC,WADW4C,EACGmrD,CAChB,GACA8B,eAAc9B,EACd9mC,SAAUA,EACVulC,mBAAkB,GAAcgD,MAAAA,CAAXD,EAAQ,KAAenuD,MAAAA,CAAZouD,EAAS,KAAoC,OAAjCpuD,OAAAA,EAAAA,KAAAA,EAAAA,CAAM,CAAC,MAAPA,aAAO,GAAuB,MACtEquD,EAAS5yD,EAAM,SACjBoqB,WAAUA,GAAW1lB,EAAE,kBACpB4tD,CADuC,OAKhD,UAACvB,EAASA,CAACpsD,GAAI+tD,EAASjwD,CAAdsuD,KAAqB8B,IAC/B,UAACb,EAAeA,CAACrtD,GAAIguD,EAAUnpB,OAAfwoB,CAAwBQ,EAAa3hD,QAASA,MAGpE,EAAE,+BEtEIoiD,EAAmB,SAACC,CAAAA,CAAoBC,CAAAA,EAC5C,IAAMC,EAAWD,EAAcE,MAAM,CAACH,GACtC,GAAI,CAACE,EAASE,kBAAkB,EAAI,QAACF,EAAAA,KAAAA,EAAAA,EAAUG,IAAAA,EAAM,IAAhBH,GAAuBF,EAC5D,IAAMM,EAAmB,QAAGN,GAC5B,GAAIE,OAAAA,EAAAA,KAAAA,EAAAA,EAAUE,UAAVF,QAA4B,UAAIA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAUG,IAAAA,GAAVH,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB18D,IAAAA,EAAM,CACxD,IADkC08D,EACVA,EAAAA,EAAlBK,QAAkBL,EAAAA,KAAAA,EAAAA,OAAAA,GAAAA,EAAAA,IAAc,GAAdA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAgBM,IAAAA,GAAhBN,KAAAA,MAAAA,KAAAA,EAAAA,EAAsBn6D,MAAM,CAClD,SAAC06D,CAAAA,QAAqBT,OAAAA,EAAAA,KAAAA,EAAAA,EAAYj5D,MAAAA,EAAS05D,IAArBT,MAExBO,GAAAA,EAAiB1+C,OAAO,CAAC,SAAC6+C,CAAAA,CAAa92C,CAAAA,EACA,CADvC22C,IAC4C,CAAtCD,CAAe,CAACI,EAAM92C,EAAM,EAC9B02C,EAAgBK,MAAM,CAACD,EAAM92C,EAAO,EAAG,IAE3C,EACF,CACA,OAAO02C,EAAgBz+D,IAAI,CAAC,IAAIi9C,IAAI,EACtC,EAEM8hB,EAA4F,gBAChG3wD,EAAAA,EAAAA,SAAAA,CACAsvD,EAAAA,EAAAA,kBAAAA,CACAl8D,EAAAA,EAAAA,KAAAA,CACAg8D,EAAAA,EAAAA,cAAAA,CACAvyD,EAAAA,EAAAA,IAAAA,CACAsyD,EAAAA,EAAAA,eAAAA,CAAAA,EAAAA,EACAloC,QAAAA,CAAAA,EAAAA,KAAAA,IAAAA,GAAW,EACR7lB,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAPHpB,YACAsvD,qBACAl8D,QACAg8D,iBACAvyD,OACAsyD,kBACAloC,aAOI2hC,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAHhB2F,EAGE3F,EAHF2F,SAAAA,CAAah8D,MAAAA,CACbk9D,EAEE7G,EAFF6G,QAAAA,CACA5G,EACED,EADFC,QAAAA,CAE8BnoD,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,QAAc,CAAgB,SAAvDkwD,EAAyBlwD,CAAAA,CAAAA,EAAAA,CAAfmwD,EAAenwD,CAAAA,CAAAA,EAAAA,CACzBa,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAAfA,CAAAA,EAAAA,CACNE,EAAKd,EAAAA,KAAW,GAChB6uD,EAAU,eAAkB,OAAH/tD,GACzB1N,EAAe8E,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAACrG,EAAQsK,GAGjC,MACE,WAACwD,MAAAA,CAAIL,UAAWsvD,YACd,UAAC3E,EAASA,CAACv3D,MAAOA,CAARu3D,CAAe1jC,SAAUA,EAAUjnB,UAAW4C,IAAG,aAAcwsD,GAAfxsD,SACxD,UAACvC,MAAAA,CACCL,UAAW4C,IACT,gBADWA,2FAEX5C,EACA,CACE,aAAc,CAAC,CAAClM,EAChB,sBAAuB,CAAC88D,EACxB,sBAAoC,qBAAbA,EACvB,6BAA2C,gBAAbA,EAC9B,0BAAwC,aAAbA,GAAwC,QAAbA,EACtD,qBAAmC,QAAbA,EACtB,yBAA0BA,cAC1B,4BAA0C,eAAbA,EAC7B,0BAAwC,aAAbA,EAC3B,sBAAoC,SAAbA,CACzB,YAGF,UAACxI,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACKhnD,GAAAA,CACJyuD,eAAc,CAAC,CAAC/7D,EAChB04D,mBAAkB+C,EAClBuB,aAAa,YACb9wD,UAAU,eACV+wD,UAAU,YACNtB,EAAS5yD,EAAM,SACjByjB,SAAU,gBAEI0vC,EAAAA,EAAAA,EAFSx+D,EAAAA,EAAViS,MAAAA,CAAUjS,KAAAA,CACrBq3D,EAAShsD,EAAMizD,EAAiBC,EAAYC,MAC5Ca,EAAYb,EADgCA,KAAaA,CAC7CA,EAAAA,OAAAA,GAAAA,IAAAA,MAAoB,CAACD,EAAAA,GAArBC,KAAAA,MAAAA,KAAAA,EAAsC,OAAtCA,GAAAA,EAAkCI,IAAI,GAAtCJ,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwCz8D,IAAAA,GAAxCy8D,KAAAA,IAAAA,EAAAA,EAAgD,KAC9D,EACA/oC,WAAUA,GAAW1lB,EAAE,0BACvByvD,EADmD,SACvC,SAACx/D,CAAAA,eAAUA,EAAAA,KAAAA,EAAAA,EAAOuX,OAAPvX,CAAe,MAAO,KAC7Cy/D,SAAU,SAAClB,CAAAA,QACT,CAACA,GACDC,IAAAA,MAAoB,CAACD,GAAYmB,OAAO,EACxC3vD,EAAE,4BACD4tD,KAAAA,CAELloC,SAAUA,EACVhS,KAAMk8C,UAIXr9D,EAAe,URhDP85D,CQ4C0BwD,CAITxD,CAACpsD,GAAI+tD,EAASjwD,CRhDtBsuD,CQgDQA,CRhDP,GQgD4B95D,IAAmB,OAGxE,ECxFMu9D,EAEF,gBACFj+D,EAAAA,EAAAA,KAAAA,CACAyJ,EAAAA,EAAAA,IAAAA,CACAmyD,EAAAA,EAAAA,QAAAA,CACA/nC,EAAAA,EAAAA,QAAAA,CACAkoC,EAAAA,EAAAA,eAAAA,CACAC,EAAAA,EAAAA,cAAAA,CACAC,EAAAA,EAAAA,WAAAA,CACA3hD,EAAAA,EAAAA,OAAAA,CACA1N,EAAAA,EAAAA,SAAAA,CACAsvD,EAAAA,EAAAA,kBAAAA,CACAt5D,EAAAA,EAAAA,QAAAA,CACGoL,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAXHhO,QACAyJ,OACAmyD,WACA/nC,WACAkoC,kBACAC,iBACAC,cACA3hD,UACA1N,YACAsvD,qBACAt5D,aAGMwL,EAAKd,EAAAA,KAAW,GAChB6uD,EAAU,eAAkB,OAAH/tD,GACzBguD,EAAW,gBAAmB,OAAHhuD,GAC1BD,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAAfA,CAAAA,EAAAA,CAIRsnD,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAFhB6G,EAEE7G,EAFF6G,QAAAA,CACAlB,EACE3F,EADF2F,SAAAA,CAAah8D,MAAAA,CAETm9D,EAAa92D,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAACrG,EAAQsK,GACzBkxD,EAAW,CAAC,CAAC2B,EAEnB,MACE,WAACrvD,MAAAA,CAAIL,UAAWsvD,YACd,UAAC3E,EAASA,CACRv3D,MADQu3D,EAER1jC,SAAUA,EACV+nC,SAAUA,EACVjB,SAAUA,EACV/tD,UAAW4C,IAAG,aAAcwsD,GAAfxsD,SAEb,UAAC0uD,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACKlwD,GAAAA,CACJpB,UAAW4C,IAAG5C,EAAW,CACvB,aADW4C,CACI,CAACxB,EAAKmwD,QAAQ,CAC7B,mBAAoBnwD,EAAKmwD,QAAQ,CACjC,aAAcxD,CAChB,GACA9mC,SAAUA,EACV4oC,eAAc9B,EACdvB,mBAAkB,GAAcgD,MAAAA,CAAXD,EAAQ,KAAY,OAATC,KAC5BC,EAAS5yD,EAAM,SACjBoqB,WAAUA,GAAW1lB,EAAE,kBACpB4tD,CADuC,IACvCA,UAGJn5D,OAGL,UAAC43D,EAASA,CAACpsD,GAAI+tD,EAASjwD,CAAdsuD,KAAqB8B,IAC/B,UAACb,EAAeA,CAACrtD,GAAIguD,EAAUnpB,OAAfwoB,CAAwBQ,EAAa3hD,QAASA,MAGpE,EC1DM8jD,EAEF,gBACFp+D,EAAAA,EAAAA,KAAAA,CACAyJ,EAAAA,EAAAA,IAAAA,CACAmyD,EAAAA,EAAAA,QAAAA,CACA/nC,EAAAA,EAAAA,QAAAA,CACAkoC,EAAAA,EAAAA,eAAAA,CACAC,EAAAA,EAAAA,cAAAA,CACAC,EAAAA,EAAAA,WAAAA,CACA3hD,EAAAA,EAAAA,OAAAA,CACA1N,EAAAA,EAAAA,SAAAA,CACAsvD,EAAAA,EAAAA,kBAAAA,CACAmC,EAAAA,EAAAA,SAAAA,CACGrwD,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAXHhO,QACAyJ,OACAmyD,WACA/nC,WACAkoC,kBACAC,iBACAC,cACA3hD,UACA1N,YACAsvD,qBACAmC,cAGMjwD,EAAKd,EAAAA,KAAW,GAChB6uD,EAAU,eAAkB,OAAH/tD,GACzBguD,EAAW,gBAAmB,OAAHhuD,GAC1BD,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,cAAfA,CAAAA,EAAAA,CAKRsnD,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAHhB6G,EAGE7G,EAHF6G,QAAAA,CACAiC,EAEE9I,EAFF8I,KAAAA,CACAnD,EACE3F,EADF2F,SAAAA,CAAah8D,MAAAA,CAGTo/D,EAAaD,KACbhC,CADmBkC,CACNh5D,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAACrG,KACjBw7D,EAAW,CADc6D,CACZlC,EAEb54D,EAAS66D,OAAAA,EAAAA,KAAAA,EAAAA,EAAY76D,MAAAA,GAAU,EAC/B+6D,CADSF,CACC,GAAc76D,EAAS26D,GAAc,EAC/CK,EAAYL,GAAaA,EAAY36D,EAE3C,MACE,WAACuJ,MAAAA,CAAIL,UAAWsvD,YACd,UAAC3E,EAASA,CACRv3D,MADQu3D,EAER1jC,SAAUA,EACV+nC,SAAUA,EACVjB,SAAUA,EACV/tD,UAAW4C,IAAG,aAAcwsD,GAAfxsD,SAEb,WAACvC,MAAAA,CAAIL,UAAU,qBACb,UAAC+xD,WAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACK3wD,GAAAA,CACJqwD,UAAWA,EACXxqC,SAAUA,EACVjnB,UAAW4C,IAAG,gBAADA,OAAyB5C,EAAW,CAC/C,aAAc+tD,CAChB,GACA8B,eAAc9B,EACdvB,mBAAkB,GAAcgD,MAAAA,CAAXD,EAAQ,KAAY,OAATC,KAC5BC,EA5BI5yD,EA4BgB,SACtBoqB,WAAUA,GAAW1lB,EAAE,kBACpB4tD,CADuC,KAI7C,CAAC,CAACsC,GACD,WAACtuD,IAAAA,CACCs7C,YAAU,SACVz+C,UAAW4C,IACT,gBADWA,sGAEX,CACE,gBAAiBivD,EAAU,GAC3B,YAAaA,GAAW,IAAOA,EAAU,EACzC,cAAeA,GAAW,CAC5B,GAEFhvD,cAAY,kCAEZ,WAACK,OAAAA,CAAKgM,aAAW,cACdpY,EAAO,IAAE26D,KAEZ,UAACvuD,OAAAA,CAAKlD,UAAU,mBAAWuB,EAAE,YAAa,CAAEwe,MAAO+xC,CAAU,aAKrE,UAAClE,EAASA,CAACpsD,GAAI+tD,EAASjwD,CAAdsuD,KAAqB8B,IAC/B,UAACb,EAAeA,CAACrtD,GAAIguD,EAAUnpB,OAAfwoB,CAAwBQ,EAAa3hD,QAASA,MAGpE,+HE2PaskD,EAAe,IAAI7uC,IAAK,QAxVZ,CACvB,WACA,SACA,gBACA,aACA,YACA,aACA,MACA,kBACA,UACA,eACA,iBACA,gBACA,SACA,MACA,oBACA,oBACA,aACA,oBACA,oBACA,aACA,qBACA,qBACA,cACA,oBACA,kBACA,kBACA,WACA,wBACA,wBACA,iBACA,wBACA,wBACA,iBACA,yBACA,yBACA,kBACA,uBACA,uBACA,wBACA,qBACA,sBACA,sBACA,eACA,oBACA,YACA,eACA,KACA,iBACA,QACA,MACA,QACA,UACA,SACA,OACA,WACA,QACA,MACA,OACA,MACA,kBACA,YACA,uBACA,SACA,kBACA,aACA,kBACA,WACA,eACA,aACA,OACA,SACA,YACA,eACA,WACA,YACA,eACA,oBACA,QACA,sBACA,kBACA,oBACA,mBACA,iBACA,gBACA,OACA,qBACA,WACA,QACA,QACA,eACA,eACA,QACA,kBACA,YACA,SACA,iBACA,UACA,YACA,mBACA,UACA,iBACA,SACA,OACA,YACA,cACA,eACA,WACA,UACA,mBACA,cACA,SACA,WACA,OACA,WACA,UACA,gBACA,OACA,cACA,oBACA,QACA,UACA,gBACA,gBACA,WACA,SACA,eACA,iBACA,WACA,UACA,aACA,WACA,YACA,OACA,SACA,kBACA,cACA,eACA,UACA,cACA,OACA,cACA,WACA,YACA,aACA,oBACA,gBACA,OACA,aACA,QACA,mBACA,MACA,YACA,QACA,SACA,QACA,cACA,cACA,OACA,OACA,OACA,gBACA,UACA,iBACA,iBACA,QACA,QACA,QACA,kBACA,cACA,oBACA,cACA,YACA,YACA,OACA,gBACA,OACA,eACA,YACA,UACA,yBACA,SACA,WACA,OACA,OACA,eACA,WACA,OACA,SACA,UACA,SACA,OACA,OACA,eACA,UACA,qBACA,UACA,YACA,OACA,gBACA,YACA,4BACA,cACA,UACA,aACA,SACA,QACA,SACA,QACA,gBACA,YACA,aACA,QACA,gBACA,WACA,UACA,aACA,aACA,oBACA,cACA,UACA,kBACA,eACA,eACA,UACA,eACA,QACA,oBACA,SACA,eACA,YACA,cACA,OACA,oBACA,mBACA,oBACA,SACA,WACA,cACA,OACA,QACA,QACA,eACA,iBACA,UACA,SACA,wBACA,0BACA,OACA,MACA,UACA,SACA,gBACA,gBACA,SACA,kBACA,YACA,SACA,UACA,aACA,SACA,UACA,SACA,YACA,eACA,gBACA,kBACA,iBACA,YACA,eACA,oBACA,eACA,OACA,UACA,OACA,SACA,WACA,QACA,WACA,SACA,kBACA,MACA,YACA,eACA,WACA,UACA,SACA,UACA,YACA,WACA,MACA,oBACA,mBACA,OACA,eACA,UACA,aACA,qBACA,cACA,YACA,OACA,eACA,WACA,SACA,WACA,UACA,YACA,QACA,YACA,SACA,UACA,aACA,SACA,SACA,cACA,WACA,cACA,UACA,mBACA,KACA,cACA,UACA,SACA,SACA,cACA,YACA,cACA,OACA,QACA,QACA,aACA,SACA,eACA,YACA,eACA,eACA,UACA,WACA,OACA,IACA,OACA,UACD,CAAU,ECjUE8uC,EAAiB,IAAI9uC,IAAK,QArBZ,CACzB,YACA,CAmBsD,SAlBtD,QACA,UACA,UACA,eACA,SACD,CAAU,EAeE+uC,EAAiB,IAAI/uC,IAAK,QAAGgvC,CAZxC,YACA,CAWsD,OAVtD,UACA,qBACA,iBACA,mBACD,CAAU,EAQEC,EAAiB,IAAIjvC,IAAK,QANZ,CAAC,MAAO,OAMqB,QANN,CAAU,ECf/CkvC,EAAmB,CAC9BC,GAAI,KACJC,GAAI,KACJtqB,GAAI,KACJuqB,GAAI,KACJC,GAAI,KACJ,MAAO,KACP,MAAO,KACP,MAAO,KACP,MAAO,IACT,EAAE,EAEgB,6BAELC,EAAgB,GAAY,OAAT7W,EAAS,UAAQ,SAgDjChoC,EAAK,CAQT,MAPV7T,EADmB,EACnBA,SAAAA,CACArQ,EAFmB,EAEnBA,SAAAA,CACAkN,EAHmB,EAGnBA,IAAAA,CAAAA,EAHmB,EAInBoY,IAAAA,CACAnkB,CADAmkB,CAJmB,EAKnBnkB,KAAAA,CAAAA,EALmB,EAMnBijB,OAAAA,CAAU,CAAVA,CANmB,EAOnBD,OAAAA,CAEA,CAFAA,EAEkB,OAAdnkB,GAAsB,CAACuiE,EAAe1e,GAAG,CAAC32C,IAG5B,GAHmC,CAAZq1D,GAGrCviE,GAAsB,CAACsiE,EAAeze,GAAG,CAAC32C,IAG5B,GAHmC,CAAZo1D,GAGrCtiE,GAAsB,CAACyiE,EAAe5e,GAAG,CAAC32C,IAI1C,CAAClN,EAJgD,CAAZyiE,CAItBJ,EAAaxe,GAAG,CAAC32C,GATlC,GAS6Bm1D,CAA4B,GATlD,KAYT,IAAMW,EAAeN,CAAgB,CAlBrCp9C,KAAAA,IAAAA,EAAO,OAkBoC,CACrCnR,EAAMnU,EACR,GAAoBA,MAAAA,CAAjB+iE,EAAc,KAAgB71D,MAAAA,CAAblN,EAAU,KAAQ,OAALkN,EAAK,QACtC,GAAmBkX,MAAAA,CA1EG8nC,EA0EN,KAAch/C,EA1EC,IA0EDA,CAAXkX,KAnBvBA,IAAAA,EAAU,YAmBqB,KAAQ,OAALlX,EAAK,QAEvC,MACE,UAAC+1D,EAAAA,CAAQA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACPC,gBAAiB,SAACxiD,CAAAA,MAQHA,CAPb,CAACvf,GAASuf,EAAIyB,YAAY,CAAC,cAAe,QAC1ChhB,GAASuf,EAAIyB,YAAY,CAAC,aAAchhB,GACxCuf,EAAIyB,YAAY,CAAC,OAAQ,gBACzBzB,EAAIyB,YAAY,CAAC,QAAS6gD,GAC1BtiD,EAAIyB,YAAY,CAAC,SAAU6gD,GAC3BtiD,EAAIyB,YAAY,CAAC,UAAW,aAC5BzB,EAAIyB,YAAY,CAAC,cAAe,QAAa,OAALjV,IACxCmD,GAAaqQ,CAAAA,EAAAA,EAAIyiD,SAAS,EAACzvC,GAAG,OAAjBhT,EAAkB,QAAGrQ,EAAUtG,KAAK,CAAC,MACpD,EACAq5D,eAAgB,SAAC1iD,CAAAA,EACf,GAAIA,EAAK,CACP,IAAmBA,EAAb2iD,EAA8B,QAAjB3iD,EAAAA,EAAIhO,aAAAA,GAAJgO,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmBhO,aAAa,CAC/C2wD,GACFA,EAAW1wD,OADG,QACY,CAAC,QAE/B,CACF,EACAwB,IAAKA,GACAhT,EAAQ,CAAEA,MAAAA,CAAM,EAAI,OACzBke,MAAO,CAAEw+C,OAAQ,GAAgB,OAAbmF,EAAa,MAAKhyC,MAAO,GAAgB,OAAbgyC,EAAa,KAAI,EACjE7+C,QA3CJA,CA2CaA,IA3CbA,IAAAA,EAAU,SA4CN9T,UAAU,8BAGhB,CCvHO,IAAMizD,EAAwE,CACnFC,eAAgB,mBAChBC,eAAgB,kBAChBC,eAAgB,kBAChBC,aAAc,gBACdC,MAAO,QACPC,SAAU,kBACVC,eAAgB,kBAChBC,OAAQ,SACRC,UAAW,YACXC,cAAe,SACfC,WAAY,cACZC,OAAQ,SACRC,WAAY,cACZC,iBAAkB,oBAClBC,cAAe,oBACfC,gBAAiB,SACjBC,eAAgB,SAChBC,cAAe,MACfC,cAAe,YACfC,YAAa,UACbC,SAAU,OACVC,KAAM,OACNC,eAAgB,YAChBC,WAAY,OACZC,cAAe,kBACfC,OAAQ,SACRC,aAAc,UACdC,SAAU,YACVC,WAAY,aACZC,YAAa,eACbC,YAAa,eACbC,eAAgB,UAChBC,OAAQ,SACRC,YAAa,eACbC,IAAK,MACLC,IAAK,MACLC,YAAa,eACbC,YAAa,QACf,EAAE,IChCF,EAAe1hD,IAAIA,EAAC,iJCKP2hD,EAAiE,gBAC5Ex/D,EAAAA,EAAAA,QAAAA,CACAy/D,EAAAA,EAAAA,MAAAA,CACAriE,EAAAA,EAAAA,KAAAA,CACAiS,EAAAA,EAAAA,OAAAA,CACAqwD,EAAAA,EAAAA,IAAAA,CAEM,EAAiBtlD,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,GAAvBulD,UAAAA,CACF,EAAQr0D,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,kBAArBC,CAAAA,CACFq0D,EAAc93D,CAAAA,EAAAA,EAAAA,MAAAA,CAAMA,CAAoB,MACxC1K,EAAQyiE,GAAat0D,EAAE,YAE7B,MACE,iCACE,WAAC4N,EAAAA,EAAWA,CAAAA,CACVnP,UAAU,6BACV6C,cAAa,eAA0C,OAA3B4yD,EAAS,IAAW,OAAPA,GAAW,IACpDv7D,IAAK07D,EACLvwD,QAASA,YAET,UAACnC,OAAAA,CAAKlD,UAAU,mBAAW5M,IAC3B,UAACygB,EAAAA,EAAIA,CAAAA,CACHhX,KAAK,cACLkX,QAAQ,UACRkB,KAAK,KACLjV,UAAU,wDAEZ,UAAC6T,EAAAA,EAAIA,CAAAA,CACHhX,KAAK,cACLkX,QAAQ,QACRkB,KAAK,KACLjV,UAAU,gEAGd,WAAC0P,EAAAA,EAAYA,CAAAA,CACX1P,UAAU,oBACV6C,cAAa,gBAA2C,OAA3B4yD,EAAS,IAAW,OAAPA,GAAW,IACrDC,KAAMA,YAEN,UAACr1D,MAAAA,CAAIL,UAAU,4BACb,UAAC8/C,EAAAA,CAAYA,CAAAA,CAAC1sD,MAAOmO,EAAE,QAAS,CAAEnO,MAAAA,CAAM,GAAIiS,QAASswD,EAAY1gD,KAAK,SAExE,UAAC5U,MAAAA,CAAIL,UAAU,wDAAgDhK,SAIvE,EAEa8/D,EAA0D,gBACrEL,EAAAA,EAAAA,MAAAA,CACAz/D,EAAAA,EAAAA,QAAAA,CACA5C,EAAAA,EAAAA,KAAAA,CACAiS,EAAAA,EAAAA,OAAAA,CACAqwD,EAAAA,EAAAA,IAAAA,CACGt0D,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CALHq0D,SACAz/D,WACA5C,QACAiS,UACAqwD,eAGA,UAAC7mD,EAAAA,EAAKA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAKzN,GAAAA,UACT,UAACo0D,EAAAA,CAAiBpiE,MAAOA,EAAOqiE,OAAQA,EAAQpwD,QAASA,EAASqwD,KAAMA,WACrE1/D,QAGL,mNEjEW+/D,EAAmC,CAC9CvvD,cAAe,2BACfC,gBAAkB,qXAgBlBC,eAAgB,0BAClB,EAAE,EAwB6B,CAC7BF,cAAe,UACfC,gBAAkB,yMAUlBC,eAAgB,SAClB,EAAE,EAqBqC,CACrCF,cAAe,kBACfC,gBAAkB,qhDAiDlBC,eAAgB,iBAClB,EAAE,EAqBiC,CACjCF,cAAe,cACfC,gBAAkB,sYAkBlBC,eAAgB,aAClB,EAAE,EAkBkD,CAClDF,cAAe,+BACfC,gBAAkB,qKAKlBC,eAAgB,8BAClB,EAAE,EChN0B,CAC1BsvD,aAAc,gBACdC,aAAc,gBACdC,KAAM,iBACNC,QAAS,UAETC,MAAO,QACPC,WAAY,cACZC,UAAW,aAEXC,YAAa,eAEbC,WAAY,cACZC,MAAO,iBAEPC,IAAK,KAIP,EAAW,ECXa,SAAC75D,CAAAA,EACvB,OAAQA,GACN,IAAK,eACL,IAAK,uBACH,OAAO85D,EAAaX,UAADW,EAAa,KAC7B,eACL,IAAK,uBACH,OAAOA,EAAaV,UAADU,EAAa,KAC7B,OACH,OAAOA,EAAaT,IAAI,KACrB,CADgBS,OAEnB,OAAOA,EAAaF,KAAK,KAANE,aAEnB,OAAOA,EAAaH,UAADG,SAEnB,MAAO,EACX,CACF,EAEaC,EAAQ,CACnBC,IAAK,MACLC,KAAM,MACR,EAAW,SAIKC,EAAc,CAc7B,cAsB6BC,EAUbC,EAAAA,EAwEAA,EAAAA,IAtHa,EAC5BzuD,IAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAO,SADqB,EAE5B/X,QAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAW,SAFiB,EAG5B8C,IAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAO,gBACP2jE,EAJ4B,EAI5BA,SAAAA,CAAAA,EAJ4B,EAK5BC,cAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAiBP,EAAMC,GAAG,GAC1BO,EAN4B,EAM5BA,iBAAAA,CASO71D,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,wBAAfA,CAAAA,EAAAA,CASRsnD,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAPhByO,EAOEzO,EAPFyO,QAAAA,CACAC,EAME1O,EANF0O,WAAAA,CACAzO,EAKED,EALFC,QAAAA,CACA6I,EAIE9I,EAJF8I,KAAAA,CACAnD,EAGE3F,EAHF2F,SAAAA,CAAagJ,aAAAA,CACb9H,EAEE7G,EAFF6G,QAAAA,CACAuH,EACEpO,EADFoO,aAAAA,CAGsC38D,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAA1Cm9D,EAAiCn9D,CAAAA,CAAAA,EAAAA,CAAnBo9D,EAAmBp9D,CAAAA,CAAAA,EAAAA,CAElCq9D,EACK,OAATlvD,GAAiB,CAACgvD,GAAgBL,IAAmBP,EAAMC,GAAG,CAE1Dc,EAAcl4B,CAAAA,EAAAA,EAAAA,WAAAA,CAAWA,CAC7B,SAACm4B,CAAAA,SAA2BV,EAAY,GAAgBU,MAAAA,CAAbV,EAAU,KAAS,OAANU,GAAUA,GAClE,CAACV,EAAU,EAGPW,EAAgD,QAA1Bb,EAAAA,EAAcW,EAAY,iBAA1BX,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0Cc,SAAS,CAEzEvsB,EAAUmmB,EAAMiG,EAAY,eAC5BI,EAAOrG,EAAMiG,EAAY,SACzBtrC,EAAQqlC,EAAMiG,EAAY,UAExBv4D,EAA2B44D,CFzCnCpuD,EE0CE,CAAEnZ,MF1CmD,GE0CnDA,EAAU+X,KAAAA,EAAMjV,KAAAA,CAAK,EFzCzB4G,EE0CE,CAAE0R,IF1C2F,IE0ClF,CAAC,CAACrD,CAAK,EFxCbkD,CAAAA,EAAAA,EAAAA,CAAAA,CAAQA,CAAqD,SAClEC,SAAU,CAACoqD,EAAkCnsD,EAAU,EACpDzP,KEoCGiF,IAAAA,CAIF64D,EAAShB,OAAAA,EAAAA,KAAAA,EAA2B,QAA3BA,EAAAA,EAAkBiB,QAAlBjB,CAAkBiB,GAAlBjB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAA6B,CAAC,EAAE,GAAhCA,KAAAA,MAAAA,KAAAA,EAAAA,EAAkCgB,MAAAA,GAAU,EAAE,CAG7DxhE,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACJ0gE,IAAmBP,EAAMC,GAAG,EAAE,CACd,CAACc,EAAY,SAAS,EAAE,EAC/BA,EAAY,SAAUM,EAAOnhE,MAAM,CAAG,EAAI,eAAiB,GAG1E,EAAG,CAAC6gE,EAAa9O,EAAUoP,EAAQV,EAAeJ,EAAe,EAEjE,IAIIgB,GF1BJvuD,EE2BE,CACEnZ,MF5BkC,GE4BlCA,EACA2nE,EAHAD,SAGYzG,EAAMiG,EAAY,EAHfQ,YAIjB,EF7BFh+D,EE8BE,CACE0R,IF/B0E,IEgCxE,CAAC,CAAC,4BAA4BnX,IAAI,CAAC62C,IAC1B,OAAT/iC,GACA,CAAE2uD,CAAAA,IAAmBP,EAAME,IAAI,EAAI,CAACe,CAAAA,CAAkB,EFhCrDnsD,CAAAA,EAAAA,EAAAA,CAAAA,CAAQA,CAAoC,SACjDC,SAAU,CAAC0sD,EAAiBzuD,EAAU,EACnCzP,KEkBHiF,GAGE+4D,EAHF/4D,IAAAA,CACA5I,GAEE2hE,EAFF3hE,SAAAA,CACA8I,GACE64D,EADF74D,KAAAA,CAcF7I,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACR,GAAI6hE,GAAiB,KAEhBA,EAAAA,EAAAA,EACAA,EAAAA,EAAAA,EAY6BA,EAAAA,EAAAA,EACCA,EAAAA,EAAAA,CAd/B,QAACA,GAAAA,KAAAA,EAAwB,QAAxBA,EAAAA,GAAiBC,KAAjBD,EAAwB,GAAxBA,KAAAA,IAAAA,EAAAA,KAAAA,EAA+B,QAA/BA,EAAAA,EAA0B/tB,KAAK,GAA/B+tB,KAAAA,IAAAA,EAAAA,KAAAA,EAAwC,QAAxCA,EAAAA,EAAiCE,OAAO,GAAxCF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0CP,IAAAA,IAC1CO,CAAD,QAACA,KAAAA,EAAAA,QAAAA,EAAAA,EAAAA,CAAiBC,OAAAA,GAAjBD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAA0B/tB,KAAAA,GAA1B+tB,KAAAA,IAAAA,EAAAA,KAAAA,EAAwC,QAAxCA,EAAAA,EAAiCE,OAAO,GAAxCF,KAAAA,MAAAA,KAAAA,EAAAA,EAA0CjsC,KAAAA,GAC3C,EASYsrC,EAAY,eACxBL,EAAYK,EAAY,SACxB9O,EAAS8O,EAAY,cAASW,GAAAA,KAAAA,EAAAA,QAAAA,EAAAA,GAAiBC,KAAjBD,EAAwB,GAAxBA,KAAAA,IAAAA,EAAAA,KAAAA,EAA+B,QAA/BA,EAAAA,EAA0B/tB,KAAAA,GAA1B+tB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAiCE,OAAAA,GAAjCF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0CP,IAAI,EAC5ElP,EAAS8O,EAAY,eAAUW,GAAAA,KAAAA,EAAAA,OAAAA,GAAAA,GAAiBC,KAAjBD,EAAiBC,GAAjBD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAA0B/tB,KAAAA,GAA1B+tB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAiCE,OAAAA,GAAjCF,KAAAA,MAAAA,KAAAA,EAAAA,EAA0CjsC,KAAK,EAC9EorC,GAAgB,KAZhBA,EAAgB,IAChB5O,EAAS8O,EAAY,QAAS,IAC9B9O,EAAS8O,EAAY,SAAU,gBAC/BN,EAASM,EAAY,cAAe,CAClCpkE,KAAM,WACN8yC,QAAS9kC,EAAE,+BACb,GAQJ,MAAO,GAAIjC,GAAO,CAChB,IAAM/M,EAAS6zB,KAAK2lB,KAAK,CAAC3lB,KAAKC,SAAS,CAAC/mB,KACpC,uBAAL,QAAK,IAAe/M,EAAOsiD,aAAa,oBAAnC,4BAAqC,CAArC,IAAMv1C,EAAN,eACCA,EAAAA,KAAAA,EAAAA,EAAO+mC,OAAAA,CAAP/mC,GAAmB,aAAa,CAClCm4D,GAAgB,GAChB5O,EAAS8O,EAAY,QAAS,IAC9B9O,EAAS8O,EAAY,SAAU,gBAC/BN,EAASM,EAAY,cAAe,CAClCpkE,KAAM,WACN8yC,QAAS9kC,EAAE,+BACb,GAEJ,WAVK,yEAWP,CACF,EAAG,CAAC+2D,GAAiBzP,EAAU8O,EAAaN,EAAU91D,EAAG+1D,EAAah4D,GAAM,EAE5E7I,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WAEJ2gE,IACE5gE,GAAW4gE,GAAkB,GAC5BA,GAAkB,GAFF,EAItB,CAAC5gE,GAAW4gE,EAAkB,EAEjC,IAAMqB,SAASxB,EAAAA,KAAAA,EAA2B,OAA3BA,GAAAA,EAAkBiB,QAAlBjB,CAAkBiB,GAAlBjB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAA6B,CAAC,KAA9BA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkCyB,cAAc,QAC/D,IAAgB,MAAD,IAAWhkE,IAAI,CAAC8T,GAK7B,IALoC,CAKpC,0BACGiwD,GAAO1hE,GAAG,CAAC,gBAAG8F,EAAAA,EAAAA,IAAAA,CAAMzJ,EAAAA,EAAAA,KAAAA,CAAO6zB,EAAAA,EAAAA,QAAAA,QAC1B,IAA8C,UAATpqB,GAA6B,SAATA,CAAS,CAAK,CAC9D,EADkE,CAClE,OAACurD,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAA8B70D,KAAK,UAAak8D,EAASkI,EAAY96D,KAA1D86D,EAAY96D,IAG7BA,aAAoBo7D,EAAOnhE,MAAM,CAAG,EAEpC,CAFuC,EAEvC,QAACu6D,EAAAA,EAAUA,CAAAA,CACTj+D,MAAOA,EACPg8D,eAAe,SACfvyD,KAAM86D,EAAY96D,GAElBi0D,aAAc6F,EAAaF,KAAK,CAChCzH,IAD0B2H,KAChB,CAAC1vC,EACXkoC,gBAAiB,CACf8B,SAAU,SAACz/D,CAAAA,QACT,CAAKy1B,GAGY,OAHF,UAGRz1B,CAA4B,IAACA,IACvB,OAATgX,EACEjH,EAAE,uBACFA,EAAE,0BAEV,CACF,EAFQ,UAIR,UAACo3D,SAAAA,CAAOvmD,QAAQ,IAACE,MAAM,IAAC9gB,MAAM,wBAC3B+P,EAAE,kBAEJ02D,EAAOlhE,GAAG,CAAC,SAACs1B,CAAAA,QACX,UAACssC,SAAAA,CAAOnnE,MAAO66B,EAAM76B,KAAK,UACvB66B,EAAMxvB,IAAI,EADoBwvB,EAAM76B,KAAK,MApBzCmmE,EAAY96D,IA6BrB,UAAC2uD,EAAAA,EAASA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACRp4D,MAAOA,EACPg8D,eAAe,mBACfvyD,KAAM86D,EAAY96D,GAClBi0D,aAAc8H,EAAgB/7D,GAC9B6Q,QAAkB,eAAT7Q,GAAyBrG,GAClCw4D,SAAU,CAAC/nC,EAEXkoC,gBAAiB,CACf8B,SAAU,SAACz/D,CAAAA,EACT,GAAI,CAACy1B,GAAez1B,CAAD,EAAmB,cAAe,CAAxBqL,EAC3B,OAAO,EAET,OAAQA,GACN,IAAK,eACL,IAAK,uBACH,GAAI2L,MAAe,GACjB,OAAOjH,EAAE,0BAEX,OAAOA,EAAE,6BACX,KAAK,QACH,OAAOA,EAAE,yBACX,KAAK,OACH,GAAa,MAAM,CAAfiH,EACF,OAAOjH,EAAE,sBAEX,OAAOA,EAAE,qBACX,KAAK,aACH,GAAa,OAATiH,EAAe,CACjB,GAAI,4BAA4B9T,IAAI,CAAClD,GAAQ,CAC3C,GAAI,CAACgmE,GAAgB,QAACc,GAAAA,KAAAA,EAAAA,GAAiBC,OAAAA,CAAO,CAAD,EAAO,EAACR,CAAD,CAA9BO,CAAuC,CAACjsC,CAAAA,CAAI,CAChE,EADoE,KAC7D9qB,EAAE,gCAEX,OAAO,CACT,CACA,GAAc,KAAV/P,CAAiB,IAACumE,GAAQ,CAAC1rC,CAAAA,CAAI,EAAe,eAAe,CAAxB94B,EACvC,OAAOgO,EAAE,2BAEX,MAAiB,KAAV/P,EACH+P,EAAE,yBACFA,EAAE,0BACR,CACA,QAAO0lB,KAAYz1B,GAAe+P,EAAE,GAAT,wBAC7B,SACE,GAAa,yBAAT1E,EAAiC,OAAO0E,EAAE,8BAC9C,GAAa,yBAAT1E,EAAiC,OAAO0E,EAAE,8BAC9C,OAAOA,EAAE,WAAgB,OAAL1E,EAAK,UAC7B,CACF,CACF,GACc,iBAATA,GACLA,4BACS,iBAATA,GACS,yBAATA,GACS,SAATA,EACI,CAAE40D,UAAW,EAAG,EAChB,CAAC,GAjDAkG,EAAY96D,GAoDvB,KAxGK,IA2GX,2BCvPag8D,EAIT,gBA4CkC,EA3CpCzlE,EAAAA,EAAAA,KAAAA,CACAyJ,EAAAA,EAAAA,IAAAA,CACAoqB,EAAAA,EAAAA,QAAAA,CACA+nC,EAAAA,EAAAA,QAAAA,CACAG,EAAAA,EAAAA,eAAAA,CACAC,EAAAA,EAAAA,cAAAA,CACApvD,EAAAA,EAAAA,SAAAA,CACAsvD,EAAAA,EAAAA,kBAAAA,CACAwJ,EAAAA,EAAAA,yBAAAA,CACG13D,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CATHhO,QACAyJ,OACAoqB,WACA+nC,WACAG,kBACAC,iBACApvD,YACAsvD,qBACAwJ,8BAGMt3D,EAAKu3D,CAAAA,EAAAA,EAAAA,KAAAA,CAAKA,GACVvJ,EAAW,gBAAmB,OAAHhuD,GAC1BD,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,wBAAfA,CAAAA,EAAAA,CAIRsnD,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAFhB6G,EAEE7G,EAFF6G,QAAAA,CAAAA,EAEE7G,EADF2F,SAAAA,CAAah8D,EAAAA,EAAAA,MAAAA,CAAQglE,EAAAA,EAAAA,aAAAA,CAGjB7H,EAAyB92D,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAACrG,EAAQsK,GACrCm8D,EAAepgE,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAAC2+D,EAAe16D,GAClCkxD,EAAW,CAAC,CAAC2B,EAEbuJ,EAAmB,CACvB,CAAE1lE,KAAM,SAAU8yC,QAAS9kC,EAAE,+BAAgC,EAC7D,CAAEhO,KAAM,eAAgB8yC,QAAS9kC,EAAE,qCAAsC,EACzE,CAAEhO,KAAM,eAAgB8yC,QAAS9kC,EAAE,qCAAsC,EACzE,CAAEhO,KAAM,mBAAoB8yC,QAAS9kC,EAAE,yCAA0C,EAClF,CAED,MACE,WAAClB,MAAAA,CAAIL,UAAW4C,IAAK,WAAC0sD,EAA+B,CAAC,CAACA,CAArC1sD,aAChB,UAAC+nD,EAAAA,EAASA,CAAAA,CACRv3D,MAAOA,EACP6zB,SAAUA,EACV+nC,SAAUA,EACVjB,SAAUA,EACV/tD,UAAW4C,IAAG,aACZ,GADWA,EACX,MAACwsD,EAA2B,CAAC,CAACA,aAGhC,UAAChH,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACKhnD,GAAAA,CACJpB,UAAW4C,IAAG,cAAc,EAAfA,CAAe,EAC1B,QAD0B,EACzB5C,EAAsB,CAAC,CAACA,GACzB,QAF0B,EAE1B,aAAc+tD,GAFY,IAI5B8B,eAAc9B,EACdvB,mBAAkBgD,IACdC,EAAS5yD,EAAM,SACjBo0D,SAAU,CACRhqC,SAAU,SAACz1B,CAAAA,QACT,kEAAkEkD,IAAI,CAAClD,IACvE+P,EAAE,mBACJ23D,OAAQ,SAAC1nE,CAAAA,QAAkB,UAAUkD,IAAI,CAAClD,IAAU+P,EAAE,iCACtD43D,aAAc,SAAC3nE,CAAAA,QACb,cAAckD,IAAI,CAAClD,IAAU+P,EAAE,uCACjC63D,aAAc,SAAC5nE,CAAAA,QACb,cAAckD,IAAI,CAAClD,IAAU+P,EAAE,uCACjC83D,iBAAkB,SAAC7nE,CAAAA,QACjB,iCAAiCkD,IAAI,CAAClD,IACtC+P,EAAE,0CACN,GACG4tD,QAIT,UAAC/rD,KAAAA,CACC5B,GAAIguD,EACJxvD,UAAW4C,IAAG,gBAADA,yBACX,WAACk2D,EAAsC,CAAC,CAACA,aAG1CG,EAAiBliE,GAAG,CAAC,gBACQ24D,EADLrpB,EAAAA,EAAAA,OAAAA,CAAS9yC,EAAAA,EAAAA,IAAAA,CAC1B+lE,QAAsB5J,EAAAA,KAAAA,EAAiB,OAAjBA,GAAAA,EAAY7B,EAAZ6B,GAAiB,GAAjBA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,CAAmB,CAACn8D,EAAK,CACrD,MACE,WAAC+P,KAAAA,CAECtD,UAAW4C,IAAG,gBAADA,kCAAoD,CAC/D,cAAe02D,EACf,eAAgB,CAACA,GAAuBN,CAC1C,aAECM,GAAuB,UAAC/L,EAAAA,EAAaA,CAAAA,CAACvtD,UAAU,oBAChD,CAACs5D,GAAuB,CAACN,GACxB,UAAC3oD,MAAAA,CACCmI,KAAK,MACLtJ,aAAW,IACXoB,QAAQ,WACRk9C,OAAO,KACP7sC,MAAM,KACN3gB,UAAU,2BAEV,UAACytD,SAAAA,CAAO7qD,GAAG,IAAI8qD,GAAG,IAAIC,EAAE,IAAIh9C,KAAK,cAGpC,CAAC2oD,GAAuBN,GACvB,UAAC3oD,MAAAA,CACCmI,KAAK,MACLtJ,aAAW,IACXoB,QAAQ,WACRqQ,MAAM,KACN6sC,OAAO,KACPxtD,UAAU,2BAEV,UAAC9L,OAAAA,CACCuvD,EAAE,eACFhzC,OAAO,UACPE,KAAK,OACLC,SAAS,UACTG,cAAc,QACdwoD,eAAe,YAIrB,UAACr2D,OAAAA,UAAMmjC,MAtCF,mBAAwB,OAAL9yC,GAyC9B,OAIR,EAAE,EC5IA,yFAAyF,EACtE,qBAAqB,EC4B8B,gBACtE0zB,EAAAA,EAAAA,QAAAA,CACA9sB,EAAAA,EAAAA,OAAAA,CACAm1D,EAAAA,EAAAA,kBAAAA,CACAkK,EAAAA,EAAAA,SAAAA,CACApK,EAAAA,EAAAA,cAAAA,CACArmB,EAAAA,EAAAA,YAAAA,CACA31C,EAAAA,EAAAA,KAAAA,CACAsa,EAAAA,EAAAA,OAAAA,CACA+rD,EAAAA,EAAAA,uBAAAA,CAAAA,EAAAA,EACA58D,IAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAO,UACP68D,EAAAA,EAAAA,gBAAAA,CACAC,EAAAA,EAAAA,UAAAA,CACAC,EAAAA,EAAAA,iBAAAA,CAEMp4D,EAAKu3D,CAAAA,EAAAA,EAAAA,KAAAA,CAAKA,GACVvJ,EAAW,gBAAmB,OAAHhuD,GAC3Bq4D,EAAgB,sBAAyB,OAAHr4D,GACtC+tD,EAAU,eAAkB,OAAH/tD,GACxBD,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,wBAAfA,CAAAA,EAAAA,CAIRsnD,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,GAFhB6G,EAEE7G,EAFF6G,QAAAA,CACAlB,EACE3F,EADF2F,SAAAA,CAAah8D,MAAAA,CAGTunE,EAAoClhE,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAACrG,EAAQ,GAAQ,OAALsK,EAAK,iBACxDk9D,EAAqCnhE,CAAAA,EAAAA,EAAAA,EAAAA,CAAGA,CAACrG,EAAQ,GAAQ,OAALsK,EAAK,kBACzDkxD,EAAW,CAAC,CAAC+L,GAAyB,CAAC,CAACC,EAExCC,EAAazgE,CAAAA,EAAAA,EAAAA,OAAAA,CAAOA,CACxB,wBACEY,EAAAA,KAAAA,EAAAA,EAASpD,GAAG,CAAC,KAAboD,IAAa,OAAG0C,EAAAA,EAAAA,IAAAA,CAAM2L,EAAAA,EAAAA,IAAAA,CAAMyxD,EAAAA,EAAAA,WAAAA,OAC1B,UAACtB,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAECnnE,MAAO,GAAiBgX,MAAAA,CAAdyxD,GAAmB,OAALzxD,IACnB,GAAiBA,MAAAA,CAAdyxD,GAAmB,OAALzxD,KAAWugC,EAAe,CAAEyZ,UAAU,CAAK,EAAI,CAAC,aACtE,IAAmB3lD,MAAAA,CAAfo9D,EAAY,KAAQ,OAALp9D,KAHd,UAAe,OAAL2L,OAKrB,CAACugC,EAAc5uC,EAAQ,EAGzB,MACE,WAACkG,MAAAA,CACCL,UAAW4C,IACT,WAAC0sD,EAA+B,CAAC,CAACA,CADvB1sD,aAIb,WAACvC,MAAAA,CACCL,UAAW4C,IAAG,gBAADA,QAA0B,CACrC,YAAa62D,EACbnnD,OAAQ,CAACmnD,CACX,aAEA,UAAC9O,EAAAA,EAASA,CAAAA,CACRv3D,MAAOmO,EAAE,2BACT0lB,SAAUA,EACV8mC,SAAU,CAAC,CAACgM,EACZ/5D,UAAW4C,IACT,WAACwsD,EAA2B,CAAC,CAACA,CADnBxsD,YAIb,UAACM,OAAAA,CAAKlD,UAAW4C,IAAG,gBAADA,kBACjB,WAAC0uD,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCvoB,aAAcA,EACd+nB,aAAc6F,EAAaR,OAAO,CAClCn2D,EAD0B22D,QACf/zD,IAAG,gBAADA,6CAKX,SAJA,QAAS,CAAC62D,EACV,kBAAmBA,EACnB,aAAc,CAAC,CAACM,EAChB3nD,SAAU1E,GACT8rD,EAAsB,CAAC,CAACA,IAE3BpnD,SAAU1E,EACV7K,cAAY,qBACZgtD,eAAc,CAAC,CAACkK,EAChBvN,mBAAkBgD,GACdC,EAAS,GAAQ,OAAL5yD,EAAK,iBAAgB,CACnCoqB,SAAU,CAAEz1B,OAAO,EAAM60C,QAAS9kC,EAAE,0BAA2B,CACjE,eAECm4D,EACC,UAACf,SAAAA,CAA2BnnE,MAAM,GAAG4gB,QAAQ,aAC1C7Q,EAAE,mCADO,iBAGV,WAEHpH,EAAAA,KAAAA,EAAAA,EAASpD,GAAG,CAAC,KAAboD,IAAa,OAAG0C,EAAAA,EAAAA,IAAAA,CAAM2L,EAAAA,EAAAA,IAAAA,CAAMyxD,EAAAA,EAAAA,WAAAA,OAC3B,UAACtB,SAAAA,CAECnnE,MAAO,GAAiBgX,MAAAA,CAAdyxD,GAAmB,OAALzxD,YACxB,IAAmB3L,MAAAA,CAAfo9D,EAAY,KAAQ,OAALp9D,IAFd,UAAe,OAAL2L,cAOxBuxD,GAA0B,UAACnM,EAAAA,EAASA,CAAAA,CAACpsD,GAAI+tD,EAASjwD,MAAOy6D,IAE1D,UAACpP,EAAAA,EAASA,CAAAA,CACRv3D,MAAOA,GAASmO,EAAE,eAClB0lB,SAAUA,EACV8mC,SAAU,CAAC,CAAC+L,EACZ95D,UAAW4C,IACT,WAACwsD,EAA2B,CAAC,CAACA,CADnBxsD,YAIb,UAACM,OAAAA,CAAKlD,UAAW4C,IAAG,gBAADA,8BACjB,UAACwlD,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACC0I,aAAc6F,EAAaD,GAAG,CAC9BnjE,KAAK,CADqBojE,KAE1B32D,UAAW4C,IAAG,gBAADA,mDAEX,SADA,aAAc,CAAC,CAACk3D,GACfN,EAAsB,CAAC,CAACA,IAE3B3J,eAAc,CAAC,CAACiK,EAChBtN,mBAAkB,GAAcgD,MAAAA,CAAXD,EAAQ,KAAY,OAATC,GAChC3sD,cAAY,oBACZ4uD,UAAW,IACPhC,EAAS,GAAQ,OAAL5yD,EAAK,gBAAe,CAClCoqB,SAAU,CAAEz1B,OAAO,EAAM60C,QAAS9kC,EAAE,yBAA0B,EAC9D24D,QAAS,CAAE1oE,MAAO2oE,EAAO9zB,GAAF8zB,KAAW54D,EAAE,yBAA0B,CAChE,SAILu4D,GAAyB,UAAClM,EAAAA,EAASA,CAAAA,CAACpsD,GAAI+tD,EAASjwD,MAAOw6D,IACzD,UAACjL,EAAAA,EAAeA,CAAAA,CAACrtD,GAAIguD,EAAU9hD,QAASA,OAE1C,WAACrN,MAAAA,CAAIL,UAAW4C,IAAG,CAAE,eAAHA,GAAsB62D,CAAwB,aAC9D,UAAC9O,EAAAA,EAASA,CAAAA,CACRv3D,MAAOA,GAASmO,EAAE,eAClB0lB,SAAUA,EACV8mC,SAAUA,EACV/tD,UAAW4C,IACT,WAACwsD,EAA2B,CAAC,CAACA,CADnBxsD,YAIb,WAACM,OAAAA,CACClD,UAAW4C,IAAG,OAAQ,CACpB,QADWA,GACC,CAAC62D,EACb,+BAAgCA,CAClC,aAEA,WAACnI,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCvoB,aAAcA,EACd+nB,aAAc6F,EAAaR,OAAO,CAClCn2D,EAD0B22D,QACf/zD,IAAG,gBAADA,6CAKX,SAJA,QAAS,CAAC62D,EACV,kBAAmBA,EACnB,aAAc,CAAC,CAACM,EAChB3nD,SAAU1E,GAAWisD,GACpBH,EAAsB,CAAC,CAACA,IAE3BpnD,SAAU1E,GAAWisD,EACrB92D,cAAY,qBACZgtD,eAAc,CAAC,CAACkK,EAChBvN,mBAAkBgD,GACdC,EAAS,GAAQ,OAAL5yD,EAAK,iBAAgB,CACnCoqB,SAAU,CACRz1B,OAAO,EACP60C,QAASuzB,GAAwCr4D,EAAE,eAAtBq4D,WAC/B,CACF,eAECF,EACC,UAACf,SAAAA,CAA2BnnE,MAAM,GAAG4gB,QAAQ,aAC1C7Q,EAAE,mCADO,iBAGV,KACHy4D,MAGH,UAAC5R,QAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACC0I,aAAc6F,EAAaD,GAAG,CAC9BnjE,KAAK,CADqBojE,KAE1B32D,UAAW4C,IAAG,gBAADA,qCAGX,SAFA,gBAAiB62D,EACjB,aAAc,CAAC,CAACK,GACfN,EAAsB,CAAC,CAACA,IAE3B3J,eAAc,CAAC,CAACiK,EAChBtN,mBAAkB,GAAcqN,MAAAA,CAAXtK,EAAQ,KAAiB,OAAdsK,GAChCh3D,cAAY,oBACZ4uD,UAAW,IACPhC,EAAS,GAAQ,OAAL5yD,EAAK,gBAAe,CAClCoqB,SAAU,CAAEz1B,OAAO,EAAM60C,QAAS9kC,EAAE,yBAA0B,EAC9D24D,QAAS,CAAE1oE,MAAO2oE,EAAO9zB,GAAF8zB,KAAW54D,EAAE,yBAA0B,CAChE,KACA6Q,SAAUunD,UAIfI,GAA0B,UAACnM,EAAAA,EAASA,CAAAA,CAACpsD,GAAI+tD,EAASjwD,MAAOy6D,IACzDD,GAAyB,UAAClM,EAAAA,EAASA,CAAAA,CAACpsD,GAAI+tD,EAASjwD,MAAOw6D,IACzD,UAACjL,EAAAA,EAAeA,CAAAA,CAACrtD,GAAIguD,EAAU9hD,QAASA,IACxC,UAACmhD,EAAAA,EAAeA,CAAAA,CACdrtD,GAAIq4D,EACJnsD,QAASA,EACT24B,QAASjzC,GAASmO,EAAE,eACpBvB,UAAU,iBAKpB,EAAE,WClOIo6D,EAAY,gBAAGpkE,EAAAA,EAAAA,QAAAA,OAAwC,UAACmN,IAAAA,CAAEnD,UAAU,gBAAQhK,KAC5EqkE,EAAc,gBAAG72D,EAAAA,EAAAA,IAAAA,CAASpC,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAToC,eAAsC,UAACvD,EAAAA,EAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAC3I,IAAKkM,GAAUpC,KAC5Ek5D,EAA4B,gBAAGtkE,EAAAA,EAAAA,QAAAA,OACnC,UAACmN,IAAAA,CAAEnD,UAAU,8BAAsBhK,KAGxBukE,EAAmB,gBAC9BC,EAAAA,EAAAA,eAAAA,CACAC,EAAAA,EAAAA,0BAAAA,CACAhqE,EAAAA,EAAAA,QAAAA,CACAQ,EAAAA,EAAAA,MAAAA,CAOMypE,QAAiBF,EAAAA,KAAAA,EAAAA,EAAiBE,cAAc,CAChDC,EADiBH,MACTE,EAAAA,KAAAA,EAAAA,EAAgBE,gBAAhBF,GAAmC,CAAC,EAAE,CAC9CG,EAASthE,CAAAA,EAAAA,EAAAA,OAAAA,CAAOA,CACpB,iBAAMohE,CAAAA,QAAAA,KAAAA,EAAAA,EAAOE,CAAPF,KAAa,CAAC7kE,MAAM,CAAC,SAACglE,CAAAA,QAAU,CAACA,SAAAA,KAAAA,EAAAA,EAAAA,SAAOC,MAAc,EAAE,EAC9D,OAACJ,EAAAA,KAAAA,EAAAA,EAAOE,MAAM,CAAbF,EAEGv0D,EAAqB7M,CAAAA,EAAAA,EAAAA,OAAAA,CAAOA,CAChC,eACEohE,EAAAA,SAAAA,OAAAA,SAAAA,EAAAA,KAAAA,EAAAA,QAAAA,CAAAA,CAAAA,EAAOE,MAAM,CAACplE,IAAI,CAAC,SAACqlE,CAAAA,eAAUA,EAAAA,KAAAA,EAAAA,EAAOE,OAAPF,eAA6B,KAA3DH,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA8DK,sBAAAA,GAA9DL,KAAAA,IAAAA,EAAAA,EAAwF,IAC1F,OAACA,EAAAA,KAAAA,EAAAA,EAAOE,MAAM,CAAbF,EAGGM,EAA6B,SACjCvsE,CAAAA,CACAirB,CAAAA,EAEA8gD,EAA2B,SAACS,CAAAA,EAC1B,IAAkBxsE,QAAZysE,CAAAA,GACFA,KADczsE,EAAAA,EAAM+U,EACT,IADe,GAAZ/U,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAc0sE,OAAAA,EAEvB,QAAIF,GAAAA,MAAAA,CAAJ,CAAkBvhD,EAAM,EAExBuhD,EAAaplE,MAAM,CAAC,SAACu/B,CAAAA,SAAMA,IAAM1b,GAE5C,EACF,EAEA,MACE,iCACGkhD,GACCA,EAAO9jE,GAAG,CAAC,SAAC+jE,CAAAA,CAAOnhD,CAAAA,EACjB,IAAQohD,EAA0CD,EAA1CC,SAAAA,CAAWM,EAA+BP,EAA/BO,oBAAAA,CAAsBx+D,EAASi+D,EAATj+D,IAAAA,QACzC,EACS,KAGP,IAJa,CAIb,MAAC+W,UAAAA,WACC,UAAC43C,EAAAA,EAASA,CAAAA,CACR3uD,KAAM,aAAmB,OAAN8c,GACnBvmB,MAAOyJ,EACPtJ,KAAK,WACL67D,eAAe,SACfJ,UAAU,EACVxC,mBAAkB,aAAmB,OAAN7yC,GAC/Bw1C,gBAAiB,CACf7uC,SAAU,SAAC5xB,CAAAA,SAAUusE,EAA2BvsE,EAAOirB,GACzD,IAED0hD,GACC,UAAC/6D,EAAAA,CAAQA,CAAAA,CACP7P,SAAUA,EACVQ,OAAQA,EACRkJ,QAAS,CACPmhE,WAAY,GACZC,UAAW,CACTp4D,EAAGm3D,EACH/2D,EAAG,CACDi4D,UAAWnB,EACX7pE,MAAO,CACLwP,UAAW,0DACXG,aAAa,CACf,CACF,CACF,CACF,WAECk7D,MA9BOP,EAAMW,GAAG,CAmC3B,GACF,UAACn7D,EAAAA,CAAQA,CAAAA,CACPrP,OAAQA,EACRR,SAAUA,EACV0J,QAAS,CACPmhE,YAAY,EACZC,UAAW,CACTp4D,EAAGi3D,EACH72D,EAAG,CACDi4D,UAAWnB,EACX7pE,MAAO,CACLwP,UAAW,0DACXG,aAAa,CACf,CACF,CACF,CACF,WAECiG,MAIT,EAAE,WCjGWm0D,EAAmB,gBAC9BmB,EAAAA,EAAAA,KAAAA,CACAC,EAAAA,EAAAA,EAF2BpB,KAE3BoB,CACAnB,EAAAA,EAAAA,eAAAA,CACAoB,EAAAA,EAAAA,0BAAAA,CACAC,EAAAA,EAAAA,6BAAAA,CACAprE,EAAAA,EAAAA,QAAAA,CACAQ,EAAAA,EAAAA,MAAAA,CAEOsQ,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,wBAAfA,CAAAA,EAAAA,CACN8vC,EAAOwX,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,UAEtB8S,GACClB,IADM,GACNA,EAAAA,KAAAA,EAAAA,EAAiBsB,cAAAA,GAAjBtB,CAAoC,sBAgGxC,CAhG+D,EAgG/D,8BACGA,OAAAA,EAAAA,KAAAA,EAAAA,EAAiBuB,iBAAjBvB,GAAiBuB,GAChB,iCACE,UAACvQ,EAAAA,EAASA,CAAAA,CACR3uD,KAAK,0BACLzJ,MAAOmO,EAAE,kCACThO,KAAK,WACL67D,eAAe,SACfJ,UAAU,EACVxC,mBAAiB,6BAEnB,UAACrpD,IAAAA,CAAE3B,GAAG,2BAA2BxB,UAAU,8BACzC,UAACg8D,EAAAA,EAAKA,CAAAA,CAACz6D,EAAGA,EAAG06D,QAAQ,8CACnB,UAACh8D,EAAAA,EAAIA,CAAAA,CAAC3I,IAAI,8DAA8D6I,WAAW,UAGvF,UAACgD,IAAAA,UAAG5B,EAAE,gBAGV,UAAC4B,IAAAA,UACC,WAAC64D,EAAAA,EAAKA,CAAAA,CAACz6D,EAAGA,EAAG06D,QAASP,EAAQ,eAAiB,sBAC7C,UAACz7D,EAAAA,EAAIA,CAAAA,CACH3I,IAAK,IAAa,OAAT7G,EAAS,yBAClBuP,UAAU,gDACVG,WAAW,MAEb,UAACF,EAAAA,EAAIA,CAAAA,CACH3I,IAAK,GAAa7G,MAAAA,CAAVQ,EAAO,KAAY,OAATR,EAAS,gCAC3BuP,UAAU,gDACVG,WAAW,MAEb,UAACF,EAAAA,EAAIA,CAAAA,CACH3I,IAAK,GAAa7G,MAAAA,CAAVQ,EAAO,KAAY,OAATR,EAAS,iDAC3BuP,UAAU,gDACVG,WAAW,cAhIf,iCACE,UAACqrD,EAAAA,EAASA,CAAAA,CACR3uD,KAAK,mBACLzJ,MAAOmO,EAAE,mBACThO,KAAK,WACL67D,eAAe,SACfJ,UAAU,EACVxC,mBAAiB,cAEnB,UAACrpD,IAAAA,CAAE3B,GAAG,YAAYxB,UAAU,8BAC1B,UAACg8D,EAAAA,EAAKA,CAAAA,CAACz6D,EAAGA,EAAG06D,QAASN,EAAU,4BAA8B,+BAC5D,UAAC17D,EAAAA,EAAIA,CAAAA,CAAC3I,IAAK,GAAa7G,MAAAA,CAAVQ,EAAO,KAAY,OAATR,EAAS,gCAA+B0P,WAAW,UAI9E,EAyDG,KAxDF,iCACE,UAACqrD,EAAAA,EAASA,CAAAA,CACR3uD,KAAK,kBACLzJ,MAAOmO,EAAE,0BACThO,KAAK,WACL67D,eAAe,SACfJ,UAAU,EACVxC,mBAAiB,qBAEnB,UAACrpD,IAAAA,CAAE3B,GAAG,mBAAmBxB,UAAU,8BACjC,UAACg8D,EAAAA,EAAKA,CAAAA,CAACz6D,EAAGA,EAAG06D,QAAQ,sCACnB,UAACh8D,EAAAA,EAAIA,CAAAA,CAAC3I,IAAK,GAAa7G,MAAAA,CAAVQ,EAAO,KAAY,OAATR,EAAS,gCAA+B0P,WAAW,UAG/E,UAACqrD,EAAAA,EAASA,CAAAA,CACR3uD,KAAK,0BACLzJ,MAAOmO,EAAE,kCACThO,KAAK,WACL67D,eAAe,SACfJ,UAAU,EACVxC,mBAAiB,6BAEnB,UAACrpD,IAAAA,CAAE3B,GAAG,2BAA2BxB,UAAU,8BACzC,UAACg8D,EAAAA,EAAKA,CAAAA,CAACz6D,EAAGA,EAAG06D,QAAQ,8CACnB,UAACh8D,EAAAA,EAAIA,CAAAA,CACH3I,IAAI,8DACJ6I,WAAW,UAIjB,WAAC0qD,EAAAA,EAAYA,CAAAA,CACXhgD,cAAe,CACbmiD,OAAQ,CACN55D,MAAOmO,EAAE,iBACX,EACAwrD,QAAS,CACP35D,MAAOmO,EAAE,eACX,CACF,EACA+nD,UAAW,kBAAMuS,GAA8B,IAC/C9Q,SAAU,WACR8Q,GAA8B,GAC9BzqB,EAAKyX,QAAQ,CAAC,mBAAmB,EACnC,EACA/3D,MAAOyQ,EAAE,gBACTwN,OAAQ6sD,EACR5mD,UAAW,WACT6mD,EAA8B,CAACD,GAC/BxqB,EAAKyX,QAAQ,CAAC,mBAAmB,EACnC,EACA5zC,KAAK,eAEL,UAAC9R,IAAAA,UAAG5B,EAAE,iBACN,UAAC4B,IAAAA,CAAEnD,UAAU,wBAAgBuB,EAAE,6BAIrC,UAAC4B,IAAAA,UAAG5B,EAAEo6D,EAAU,gBAAkB,aAClC,UAACx4D,IAAAA,UACC,WAAC64D,EAAAA,EAAKA,CAAAA,CAACz6D,EAAGA,EAAG06D,QAASN,EAAU,kBAAoB,sBAClD,UAAC17D,EAAAA,EAAIA,CAAAA,CACH3I,IAAK,IAAa,OAAT7G,EAAS,yBAClBuP,UAAU,gDACVG,WAAW,MAEb,UAACF,EAAAA,EAAIA,CAAAA,CACH3I,IAAK,GAAa7G,MAAAA,CAAVQ,EAAO,KAAY,OAATR,EAAS,gCAC3BuP,UAAU,gDACVG,WAAW,aAkD3B,EAAE,WCtKW+7D,EAAqB,SAChClnE,CAAAA,CACAxC,CAAAA,CACA2pE,CAAAA,EAEAnnE,EAAQzD,WAAW,CAAC,eAAgBiB,GACpCwC,EAAQpC,UAAU,CAAC,gBACnBoC,EAAQ1C,aAAa,CAAC,CAAC,CAAEC,OAAQC,EAAWZ,IAAI,CAAC,IAAK,EAAE,EACxDoD,EAAQtC,oBAAoB,CAACypE,EAAmBvqE,IAAI,CAAC,MACrDoD,EAAQlD,WAAW,CAAC,+BAAgC,aACpDkD,EAAQpC,UAAU,CAAC,iBACrB,EAAE,0CCwBIwpE,EAAe,CAMnBC,uBAAwB,IACxBC,6CAA8C,GAChD,EAEMC,EAAoB,CACxBC,oBAAqB,OACrBC,iBAAkB,QAClBC,gBAAiB,OACjBC,cAAe,MAEjB,EAEMC,EAAmB,CACvBC,qBAAsB,CACpBN,EAAkBI,aAAa,CAC/BJ,EAAkBE,gBAAgB,CAClCF,EAAkBC,mBAAmB,CACrCD,EAAkBG,eAAe,CAClC,CACDI,QAAS,CAAC,CACZ,EAIMC,EAAwB,CAAC,eAAgB,YAAa,mBAAmB,CAEzEC,EAAS,CACb,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACD,CAmCM,SAASh/C,EAAS,CAQjB,YAiBOi/C,EAAAA,EA8CWzC,EAAAA,EAAAA,IAvED,EACvB0C,yBAAAA,CAAAA,EAAAA,KAAAA,IAAAA,GAA4B,EAC5BzsE,EAFuB,EAEvBA,QAAAA,CACAgsB,EAHuB,EAGvBA,KAAAA,CACAyB,EAJuB,EAIvBA,SAAAA,CACAlpB,EALuB,EAKvBA,OAAAA,CACA0K,EANuB,EAMvBA,QAAAA,CACAzO,EAPuB,EAOvBA,MAAAA,CAEOsQ,EAAKD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,wBAAfA,CAAAA,EAAAA,CACJC,EAAaD,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,sBAA5BC,CAAAA,CACkClH,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAgB,SAA3D8iE,GAAmC9iE,CAAAA,CAAAA,EAAAA,CAApB+iE,GAAoB/iE,CAAAA,CAAAA,EAAAA,CACoBA,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAW,EAAE,KAA5EgjE,GAAuDhjE,EAAAA,CAAAA,EAAAA,CAA9BogE,GAA8BpgE,EAAAA,CAAAA,EAAAA,CACMA,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,CAAC,OAAtEuhE,GAA6DvhE,EAAAA,CAAAA,EAAAA,CAAjCwhE,GAAiCxhE,EAAAA,CAAAA,EAAAA,CAC5D+E,GAAiCk+D,CTkEzC1zD,ESlE8E,CAC5EnZ,MTiEyD,GSjEzDA,CACF,ETsEOib,CAAAA,EAAAA,EAAAA,CAAAA,CAAQA,CAAyD,SACtEC,SAAU,CAAC4xD,EAAsC3zD,EAAU,GACxDzP,IAPLA,KSnEQiF,ETsEP,EStEOA,CAIFo+D,GAAiB/sE,SAEjB2gD,GAAOkd,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAAY,CAC9BJ,KAAM,YACNC,aAAc,MACdvnC,cAAe,CACb4xC,QAAS,CAAC,EACVntB,QAAS4xB,OAAAA,GAAAA,KAAAA,EAAAA,QAAAA,EAAAA,GAAwB70D,SAAAA,GAAxB60D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAAmC,CAAC,KAApCA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwCQ,kBAAAA,GAAsB,KACvEtD,MAAO,CACLuD,aAAe,KACjB,CACF,CACF,GAEQhM,GAA6CtgB,GAA7CsgB,KAAAA,CAAOnD,GAAsCnd,GAAtCmd,SAAAA,CAAW1F,GAA2BzX,GAA3ByX,QAAAA,CAAU+F,GAAiBxd,GAAjBwd,YAAAA,CAC5Br8D,GAAwBg8D,GAAxBh8D,MAAAA,CAAQi8D,GAAgBD,GAAhBC,WAAAA,CAEVC,GAAY32D,OAAOsU,IAAI,CAAC7Z,IAAQuE,MAAM,CAAG,EAE/CL,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,eACJwmE,EAAAA,EACkBA,EAAAA,SADlBA,GAAAA,KAAAA,EAAAA,QAAAA,EAAAA,GAAwB70D,SAAAA,GAAxB60D,KAAAA,IAAAA,EAAAA,KAAAA,EAAsC,QAAtCA,EAAAA,CAAmC,CAAC,KAApCA,KAAAA,MAAAA,KAAAA,EAAAA,EAAwCQ,kBAAAA,EAAoB,CAC9D5U,GAAS,gBAAWoU,GAAAA,KAAAA,EAAAA,QAAAA,EAAAA,GAAwB70D,SAAS,GAAjC60D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAAmC,CAAC,KAApCA,KAAAA,MAAAA,KAAAA,EAAAA,EAAwCQ,kBAAkB,EAE5ED,IACF3U,GAAS,SADS,YACa,OAEnC,EAAG,CAACoU,GAAwBO,GAAgB3U,GAAS,EAErD,IAAM8U,GAAuBjM,GAAM,mBACnCj7D,CAAAA,EAAAA,EAAAA,SAAAA,CAASA,CAAC,WACR,GAAIknE,GACF,OAAO9B,IAA8B,EAEzC,EAAG,CAAC8B,GAHwB,EAK5B,IAAMC,SAAoBZ,EAAAA,KAAAA,EAAAA,EAAQrnE,QAARqnE,CAAiBvgD,GAECpiB,GAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAAQA,EAAC,MAA9CwjE,GAAqCxjE,EAAAA,CAAAA,EAAAA,CAArB+8D,GAAqB/8D,EAAAA,CAAAA,EAAAA,CAEIyjE,IThDhDl0D,ESgDwE,CACtEnZ,MTjD4C,GSiD5CA,EACAstE,SAF8CD,KAEhC,EACdE,gBAHqEF,EAIrEG,cAAe,CAAEC,YAAY,CAAM,CACrC,ETlDOxyD,CAAAA,EAAAA,EAAAA,CAAAA,CAAQA,CAA4C,SACzDC,SAAU,CAACwyD,EAAyBv0D,EAAU,GAC3CzP,IAJLA,KS+CQiF,ET/C8E,CS+CtC0+D,GAAxC1+D,IAAAA,CAAM5I,GAAkCsnE,GAAlCtnE,SAAAA,CAOR4nB,GTdD,SAASggD,MACdjkE,EAAAA,KSa0CikE,KTb1CjkE,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAKI,CAAC,EAEL,MAAOkkE,CAAAA,EAAAA,EAAAA,CAAAA,CAAWA,CAKhB,WACGlkE,GAEP,ISAQ+9D,GACJ,QAAK94D,OAAAA,GAAAA,KAAAA,EAAAA,GAAM84D,IAAN94D,KAAM84D,GAAa,EAAE,EAAG5qD,IAAI,CAAC,SAAC/J,CAAAA,CAAGgK,CAAAA,SAAMw8B,KAAKu0B,QAAQ,CAAC7tE,GAAU8tE,OAAO,CAACh7D,EAAE1G,IAAI,CAAE0Q,EAAE1Q,IAAI,KAC1F,EAAE,CAEE29D,GAAkBtC,GAAUziE,IAAI,CAAC,mBAAG+S,EAAAA,IAAAA,GAAoBkpD,GAAM,aAC9D8M,SAAkBhE,GAAAA,KAAAA,EAA+B,OAA/BA,GAAAA,GAAiBE,KAAjBF,SAAiBE,GAAjBF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAiCI,mBAAAA,GAAjCJ,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,CAAsD,CAAC,KAAvDA,KAAAA,MAAAA,KAAAA,EAAAA,EAA2DK,MAAM,CAEnFc,GAAUnB,OAAAA,GAAAA,KAAAA,EAAAA,GAAiBhyD,IAAAA,IAAS,KACpCkzD,EADUlB,CACFA,OAAAA,GAAAA,KAAAA,EAAAA,GAAiBhyD,IAAAA,IAAS,KAqBlCi2D,EArBQjE,CAqBoB,gBA2DdL,EA1DlB3B,EAAAA,EAAAA,OAAAA,CACAkG,EAAAA,EAAAA,KAAAA,CACA7hE,EAAAA,EAAAA,IAAAA,CACA8hE,EAAAA,EAAAA,QAAAA,CACAxE,EAAAA,EAAAA,KAAAA,CACA9uB,EAAAA,EAAAA,OAAAA,CACAuzB,EAAAA,EAAAA,uBAAAA,CACAC,EAAAA,EAAAA,eAAAA,CACAC,EAAAA,EAAAA,gBAAAA,CAEIjC,EAAiC,EAAE,CACvC,GAAIK,EAA2B,CAC7B,IAAM6B,EAA4BP,SAAAA,KAAAA,EAAAA,GAAiB1oE,MAAM,CAAC,EAAxB0oE,OAAyBQ,CAAAA,eAAUA,EAAAA,KAAAA,EAAAA,EAAOjE,OAAPiE,EAAgB,GACjFD,GAA6BA,EAA0BjoE,MAAM,EAAE,CACjE+lE,EAAuBkC,EAA0B18C,OAAO,CACtD,SAAC28C,CAAAA,SAAUA,EAAMC,iBAAiB,IAGlC5B,GAAwBvmE,MAAM,EAAI0nE,IAAmBA,GAAgB1nE,MAAM,EAAE,GACvD8a,OAAO,CAAC,SAACyjB,CAAAA,EAC/B,IAAcmpC,EAARU,EAAQV,CAAkB,QAAlBA,EAAAA,EAAe,CAACnpC,EAAE,GAAlBmpC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoBS,iBAAAA,GAAqB,EAAE,CACnDE,EAAO,QAAItC,GAAAA,MAAAA,CAAsB,QAAGqC,IAC1CrC,EAAwB,QAAGsC,EAC7B,EAEJ,KACgC3E,EADzB,KACyBA,GAAAA,KAAAA,EAAAA,GAAiBsB,cAAAA,CAAjBtB,GAAoC,uBAEhEqC,EAAuB,QAClBA,GAAAA,MAAAA,CADkB,CAErBN,EAAkBC,mBAAmB,CACrCD,EAAkBE,gBAAgB,CACnC,SACGjC,GAAAA,KAAAA,EAAAA,GAAiBuB,eAAjBvB,KAAiBuB,EAAsB,GACdc,EAAqBp/D,IAAI,CAAC8+D,EAAkBG,eAAe,EAEtFG,EAAqBp/D,IAAI,CAAC8+D,EAAkBG,eAAe,IAG7DmC,GAAmBhC,EAAqBp/D,IAAI,CAAC8+D,EAAkBC,mBAAmB,EAClFsC,GAAoBjC,EAAqBp/D,IAAI,CAAC8+D,EAAkBE,gBAAgB,EAChFmC,GAA2B/B,EAAqBp/D,IAAI,CAAC8+D,EAAkBG,eAAe,GAExFG,EAAqBp/D,IAAI,CAAC8+D,EAAkBI,aAAa,CAE3DnE,GAAQntB,OAAO,CAAGA,EAClB,IAAM+c,EAA+C,CACnDoQ,QAAS,mBACJA,EACmB,YAAlBA,EAAQnsC,KAAK,EAAkB,CAAEA,MAAOmsC,EAAQnsC,KAAK,GAAC,CAC1D+yC,YAAa,SAEfV,MAAAA,EACAW,iBAAkB5iD,EAClB5f,KAAAA,EACA8hE,SAAAA,EACAxE,MAAO,CACLmF,YAAanF,OAAAA,EAAAA,KAAAA,EAAAA,EAAOmF,OAAPnF,IAAOmF,GAAe,GACnC5B,YAAY,OAAEvD,EAAAA,KAAAA,EAAAA,OAAAA,EAAAA,CAAAA,EAAOuD,YAAAA,GAAPvD,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqBpxD,OAAO,CAAC,MAAO,IAClDw2D,UAAW,MACb,EACAC,kBAAgC,OAAb/uE,EAAoB,KAAOA,EAC9CgvE,kBAAkB,EAClBC,cACE,CAACxC,GAA6BxB,GAC1BkB,EACA,CAAEC,qBAAAA,EAAsBC,QAAS,CAAC,CAAE,CAC5C,EAEA,OAAO,IAAI9qC,QAAQ,SAAC2tC,CAAAA,QAClBvhD,IAAAA,GAAawhD,MAAM,CAAC,CAACC,EAAqB,CAAEpvE,MAA5C2tB,GAA4C3tB,EAAU23D,KAAdyX,CAAczX,CAAM,EAAE,CAAE,CAC9DlqC,UAAW,SAAC9e,CAAAA,EACV,IAAkBA,EAAAA,EA+BIA,EAAAA,EAnBdA,EAAAA,EAAAA,EAZFvL,QAAYuL,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMgf,WAAAA,GAANhf,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAmBE,KAAAA,GAAnBF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0BoJ,IAAI,CAChD,GAAI3U,EACF,OAAQA,EADK,CAEX,KAAKuoE,EAAaE,4CAA4C,CAC9D,KAAKF,EAAaC,sBAAsB,CACtC,OAAOe,GAAiB,CACtB/2B,QAAS9kC,EAAE,iBAA2B,OAAV1N,IAC5BN,KAAM,OACR,EACF,MAAK,IACH,GACEiqE,WACAp+D,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMgf,WAAAA,GAANhf,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAmBE,KAAAA,GAAnBF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAA0B0gE,aAAAA,GAA1B1gE,KAAAA,MAAAA,KAAAA,EAAAA,EAAyC01C,IAAI,CAAC,mBAActsC,MAAXA,EAAAA,IAAAA,IAEjD,EADA,KACO40D,GAAiB,CACtB/2B,QAAS9kC,EAAG,qBACZhO,KAAM,OACR,GAEF,OAAO6pE,GAAiB,CACtB/2B,QAAS9kC,EAAG,qBACZhO,KAAM,OACR,EACF,SACE,OAAO6pE,GAAiB,CACtB/2B,QAAS9kC,EAAG,qBACZhO,KAAM,OACR,EACJ,CAGF,IAAMwsE,QAAgB3gE,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAMgf,WAAAA,GAANhf,KAAAA,MAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAmBA,IAAAA,GAAnBA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBpI,aAAa,CACtDgpE,EAAcplE,OAAOsrB,IAAI,CAACmN,mBAAmBx2B,EAAK6oC,SAAS,GAC3Du6B,EAAarlE,OAAOsrB,IAAI,CAAC65C,GAAiB,IAC1CG,EAAetlE,OAAOsrB,IAAI,CAACmN,mBAAmBqrC,EAAMyB,YAAY,GAChEC,EAAgBxlE,OAAOsrB,IAAI,CAAC,QAElC2lB,eAAenQ,OAAO,CAAC,aAAcskC,GACrCn0B,eAAenQ,OAAO,CAAC,UAAWukC,GAClCp0B,eAAenQ,OAAO,CAAC,QAASwkC,GAChCr0B,eAAenQ,OAAO,CAAC,cAAe0kC,GACtCliD,EAAU9e,EACZ,EACAihE,QAAS,SAACjhE,CAAAA,EACRg+D,GAAiB,CACf/2B,QAAS9kC,EAAE,qBACXhO,KAAM,OACR,GACAgN,CAAAA,EAAAA,EAAAA,EAAAA,CAAQA,CAAC,YAAaC,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAACpB,GACtC,CACF,EACF,EACF,EA2BA,MACE,WAACiB,MAAAA,CAAIL,UAAU,sBACZm9D,GACC,UAACzd,EAAAA,CAAkBA,CAAAA,CAAC5/C,MAAM,OAAEq9D,GAAAA,KAAAA,EAAAA,GAAe5pE,IAAI,SAAnB4pE,CAC1B,UAACh6D,IAAAA,CAAEnD,UAAU,sCAAwBm9D,GAAAA,KAAAA,EAAAA,GAAe92B,OAAO,KAE3D,CAFqC82B,IAGzC,WAAC98D,MAAAA,CAAIL,UAAU,mCACZN,EACA+uD,IAAaD,IACZ,WAACnuD,MAAAA,CACCmY,KAAK,QACL3V,cAAY,cACZ7C,UAAW4C,IAAG,gBAADA,mBAAqC,CAChD,WAAY6rD,IAAaD,EAC3B,aAEA,WAACzrD,KAAAA,CAAG/C,UAAU,sFACZ,UAACutD,EAAAA,EAAaA,CAAAA,CAAAA,GACd,UAACrqD,OAAAA,UAAM3B,EAAE,mBAEX,UAAC6B,KAAAA,CAAGpD,UAAU,kDA/LhBoO,EAAwB,EAAE,CAChCtW,OAAOuU,OAAO,CAAC9Z,IAAQqf,OAAO,CAAC,+BAAEngB,EAAAA,CAAAA,CAAAA,EAAAA,CAAKD,EAAAA,CAAAA,CAAAA,EAAAA,CACpC,GAAIA,EAAM60C,OAAO,CAAE,CACjB,IAAMA,EAAU70C,EAAM60C,OAAO,CAC7Bj4B,EAAS3Q,IAAI,CAAC,UAAC6F,KAAAA,UAAmC+iC,GAA3B,mBAAuB,OAAJ50C,IAC5C,CAGAqG,OAAOuU,OAAO,CAAC7a,GAAOogB,OAAO,CAAC,+BAAE0uD,EAAAA,CAAAA,CAAAA,EAAAA,CAAUC,EAAAA,CAAAA,CAAAA,EAAAA,CACxC,GAAI,EAA2Bl6B,OAAO,CAAE,CACtC,IAAMA,EAAU,EAA2BA,OAAO,CAClDj4B,EAAS3Q,IAAI,CAAC,UAAC6F,KAAAA,UAAwC+iC,GAAhC,mBAA4B,OAATi6B,IAC5C,CACF,EACF,GACOlyD,QAmLH,UAACsgD,EAAAA,EAAYA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAKtd,IAAAA,UAChB,WAACA,OAAAA,CACCud,UAAU,IACVhgC,OAAO,OACPpI,SAAUqoC,GArDK,SAACnoC,CAAAA,MACpB7rB,EAAAA,EAAJ,CAAsB,OAoD2B4lE,CApD7C5lE,EAAAA,OAAOnM,WAAW,GAAlBmM,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAoBxL,IAAAA,GAApBwL,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0BpL,QAAAA,EAAU,CACtCutE,EAAsBnrD,OAAO,CAAC,SAACngB,CAAAA,MAAcmJ,EAAAA,EAAAA,SAANkiC,IAAMliC,QAAAA,EAAAA,CAADkiC,KAACliC,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAQnM,WAAAA,GAARmM,KAAAA,IAAAA,EAAAA,KAAAA,EAAyB,QAAzBA,EAAAA,EAAqBxL,IAAAA,GAArBwL,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2BpL,QAAQ,CAAEiC,KAEpFgtE,GAA0Bh4C,GACvBnI,IAAI,CAAC,SAACuT,CAAAA,SAAQA,GACdtT,CAAAA,KAAK,CAAC,SAACjf,CAAAA,EACN,MAAMA,CACR,EACJ,EAEyD,SAACmhE,CAAAA,EAGjC3oE,OAAOsU,IAAI,CAACq0D,GAAa3pE,MAAM,CAAG,GAOvDolE,EAAmBlnE,EALA8C,OAAOsU,IAAI,CAAC7Z,EAKb2pE,EALqB75C,GAKC85C,IALM,CAAC,SAAC1qE,CAAAA,SAAQA,IAC7B,OAAQ2a,IAAI,CAAC7Z,IACrC8vB,OAAO,CAAC,SAAC5wB,CAAAA,MAAQc,SAAW,QAAXA,EAAAA,EAAM,CAACd,EAAAA,GAAPc,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAa8zC,OAAO,GACrCvwC,MAAM,CAAC,SAACmI,CAAAA,SAAuBzJ,CAAQyJ,IAI9C,GA+BU+B,UAAU,2CAEV,UAACmD,IAAAA,UAAGu9D,EAAM,oBACTlD,GAAiB,UAACr6D,IAAAA,UAAGu9D,EAAM,6BAAkC,KAC9D,UAAClV,EAAAA,EAASA,CAAAA,CACR3uD,KAAK,iBACLi0D,aAAc6F,EAAaL,SAAS,CACpCljE,MAAOstE,EAAM,mBACbtR,eAAe,SACfJ,UAAU,EACVyC,UAAW,GACXtC,gBAAiB,CACfloC,SAAU,CAAEz1B,OAAO,EAAM60C,QAASq6B,EAAM,kBAAmB,EAC3DC,UAAW,CAAEnvE,MAAO,EAAG60C,QAASq6B,EAAM,4BAA6B,EACnExG,QAAS,CAAE1oE,MAAO,QAAS60C,QAASq6B,EAAM,2BAA4B,CACxE,IAEF,UAAClV,EAAAA,EAASA,CAAAA,CACR3uD,KAAK,gBACLi0D,aAAc6F,EAAaN,UAADM,CAC1BvjE,MAAOstE,EAAM,kBACbtR,eAAe,SACfJ,SAAU,GACVyC,UAAW,GACXtC,gBAAiB,CACfloC,SAAU,CAAEz1B,OAAO,EAAM60C,QAASq6B,EAAM,iBAAkB,EAC1DC,UAAW,CAAEnvE,MAAO,EAAG60C,QAASq6B,EAAM,2BAA4B,EAClExG,QAAS,CAAE1oE,MAAO,QAAS60C,QAASq6B,EAAM,0BAA2B,CACvE,IAGF,UAACE,EAAcA,CACbzmE,QAAS+9D,GADI0I,aAEA,MACblzD,QAASmzD,GACTzR,eAAe,WAGjB,UAAC5D,EAAAA,EAASA,CAAAA,CACR3uD,KAAK,qBACLi0D,aAAc6F,EAAaP,KAAK,CAChChjE,IAD0BujE,EACnB+J,EAAM,eACbntE,KAAK,QACL67D,eAAe,SACfJ,UAAU,EACVyC,UAAW,GACXtC,gBAAiB,CACfloC,SAAU,CAAEz1B,OAAO,EAAM60C,QAASq6B,EAAM,cAAe,EACvDxG,QAAS,CAAE1oE,MAAOktE,EAAOr4B,GAAFq4B,KAAWgC,EAAM,cAAe,CACzD,IAGF,UAACrP,EAAAA,EAAUA,CAAAA,CACTP,aAAc6F,EAAaR,OAAO,CAClC/G,EAD0BuH,aACX,SACfvjE,MAAOstE,EAAM,yBACb7jE,KAAK,UACL6Q,QAASmzD,GACTzuD,SAAUyuD,YAET3I,GAAUnhE,GAAG,CAAC,gBAAG8F,EAAAA,EAAAA,IAAAA,CAAM2L,EAAAA,EAAAA,IAAAA,OACtB,UAACmwD,SAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAECnnE,MAAOgX,GACFA,IAASkpD,GAAM,WAAa,CAAElP,UAAU,CAAK,EAAI,CAAC,aAEtD3lD,IAJI,UAAe,OAAL2L,QASrB,UAACuuD,EAAaA,CACZvuD,KAAMkpD,GAAM,EADAqF,SAEZG,UAAU,UACVE,kBAAmBA,KAGpBwG,IACC,iCACE,UAAC/E,EAAiBA,CAChB/H,aAAc6F,CADEkC,CACWtC,UAADI,CAAY,CACtCpjE,KAAK,WACLsJ,KAAK,WACLzJ,MAAOstE,EAAM,kBACbtR,eAAe,WAEjB,UAAC5D,EAAAA,EAASA,CAAAA,CACRsF,aAAc6F,EAAaJ,UAADI,CAAY,CACtCpjE,KAAK,WACLsJ,KAAK,kBACLzJ,MAAOstE,EAAM,yBACbtR,eAAe,SACfJ,SAAU,GACVM,mBAAmB,SACnBH,gBAAiB,CACf8B,SAAU,CACR6P,YAAa,SAACtvE,CAAAA,QACZ,CAAE,CAACA,GAASA,IAAUkgE,GAAM,aAAgBgP,EAAM,yBACtD,CACF,OAIN,WAACrgE,MAAAA,CAAIL,UAAU,uBACZk9D,EACC,UAAC6D,EAAmBA,CAClBvG,aADkBuG,GACDvG,GACjBC,2BAA4BA,GAC5BhqE,SAAUA,EACVQ,OAAQA,IAGV,UAACspE,EAAgBA,CACfmB,MAAOA,GACPC,QAASA,GACTnB,WAHeD,KAGEC,GACjBoB,2BAA4BA,GAC5BC,8BAA+BA,GAC/BprE,SAAUA,EACVQ,OAAQA,IAIZ,UAAC4jB,SAAAA,CACCthB,KAAK,SACLyM,UAAU,iCACVoS,SAAUyrD,IAAkBz/C,GAAY4iD,SAAS,UAEhD5iD,GAAY4iD,SAAS,CACpB,iCACGN,EAAM,cAAc,IAAC,UAAC5R,EAAAA,CAAOA,CAAAA,CAAC9uD,UAAU,cAAciV,KAAK,UAG9D1T,EAAE,SAAU,CAAE4O,QAAS,IAAK,KAIhC,UAAChN,IAAAA,CAAEnD,UAAU,mBACX,UAACg8D,EAAAA,EAAKA,CAAAA,CAACz6D,EAAGA,EAAG06D,QAAQ,yCACnB,UAACh8D,EAAAA,EAAIA,CAAAA,CACH3I,IAAK,IAAa,OAAT7G,EAAS,yCAClBuP,UAAU,8CACVG,WAAW,UAIjB,UAACgD,IAAAA,CAAEnD,UAAU,yBAAiBuB,EAAE,qBAC9Bi5D,CAAAA,OAAAA,GAAAA,KAAAA,EAAAA,GAAiBsE,eAAjBtE,CAAiBsE,GAAoBtE,UAAAA,KAAAA,EAAAA,GAAiBsB,QAAjBtB,MAAiBsB,CAAa,GACnE,iCACE,UAAC34D,IAAAA,CAAEnD,UAAU,iCAAyBuB,EAAE,kBACxC,UAAC4B,IAAAA,CAAEnD,UAAU,uCAA+BuB,EAAE,oCAShE,2KGnjBM0/D,EAAkE,gBACtEjhE,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,EACA2gB,KAAAA,CAAQ,CAARA,CAAQ,EACR6sC,MAAAA,CACGpsD,CADHosD,CACGpsD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAHHpB,YACA2gB,QACA6sC,iBAGA,WAACn9C,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCmI,KAAK,MACLtJ,aAAW,IACXoB,QAAQ,YACRqQ,MARFA,CAQSA,IARTA,IAAAA,EAAQ,KASN6sC,OARFA,CAQUA,IARVA,IAAAA,EAAS,KASPxtD,UAAW4C,IAAG,gBAADA,iBAAmC5C,GAChD6C,cAAY,mBACRzB,GAAAA,WAEJ,UAAClN,OAAAA,CAAKuvD,EAAE,s5CACR,UAACvvD,OAAAA,CAAKuvD,EAAE,6TCjBNyd,EAAkE,gBACtElhE,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,EACA2gB,KAAAA,CAAQ,CAARA,CAAQ,EACR6sC,MAAAA,CACGpsD,CADHosD,CACGpsD,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAHHpB,YACA2gB,QACA6sC,iBAGA,UAACn9C,MAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CACCmI,KAAK,MACLtJ,aAAW,IACXrM,cAAY,kBACZyN,QAAQ,YACRqQ,MATFA,CASSA,IATTA,IAAAA,EAAQ,KAUN6sC,OATFA,CASUA,IATVA,IAAAA,EAAS,KAUPxtD,UAAW4C,IAAG,gBAADA,gCAAkD5C,IAC3DoB,GAAAA,UAEJ,WAACoP,IAAAA,CAAEG,KAAK,iBACN,UAACzc,OAAAA,CAAKuvD,EAAE,0BACR,UAACvvD,OAAAA,CAAKuvD,EAAE,6DE8BDxjD,EAAOS,EAAAA,UAAgB,CAA0B,SAAClQ,CAAAA,CAAOmQ,CAAAA,EACpE,IACET,EAeE1P,EAfF0P,cAAAA,CACAuT,EAcEjjB,EAdFijB,IAAAA,CACAzd,EAaExF,EAbFwF,QAAAA,CACW,EAYTxF,EAZF2wE,SAAAA,CAAAA,EAAW,WAAgC,CAAC,EAAjC,EAAEC,EAAAA,EAAAA,UAAAA,CAAYC,EAAAA,EAAAA,aAAAA,CACzBC,EAWE9wE,EAXF8wE,kBAAAA,CACA9/D,EAUEhR,EAVFgR,EAAAA,CACArB,EASE3P,EATF2P,WAAAA,CACAsD,EAQEjT,EARFiT,MAAAA,CACAnM,EAOE9G,EAPF8G,GAAAA,CAAAA,EAOE9G,EANFwP,SAAAA,CAAAA,EAAAA,KAAAA,IAAAA,EAAY,gDACZiE,EAKEzT,EALFyT,eAAAA,CACA6P,EAIEtjB,EAJFsjB,OAAAA,CAAAA,EAIEtjB,EAHFonB,iBAAAA,CAAoB,CAApBA,CAGEpnB,EAFFyS,SAAAA,CACG7B,CADH6B,CACG7B,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CACD5Q,EAAAA,CAfF0P,iBACAuT,OACAzd,WACAmrE,YACAG,qBACA9/D,KACArB,cACAsD,SACAnM,MACA0I,YACAiE,kBACA6P,UACA8D,oBACA3U,cAGF3J,CAAAA,EAAAA,EAAAA,EAAAA,CAAWA,GACX,IAAM,EAAQgI,CAAAA,EAAAA,EAAAA,EAAAA,CAAcA,CAAC,YAArBC,CAAAA,CACFggE,EAAkC,UAApB,OAAOvrE,GAAyB,CAAC,QAACA,EAAAA,KAAAA,EAAAA,EAAUmxB,QAAQ,EAAlBnxB,CAAqBu0C,KAAK,CAAC,eAC3Ei3B,EAAgBrhE,GAAesD,aAE/Bg+D,EAAiBH,UAAsBI,EAAAA,KAAAA,EAAAA,EAAS7nE,SAAT6nE,CAAmB,CAAC,MAC3DpqE,EAAMoqE,OAAAA,EAAAA,KAAAA,EAAAA,EAAS7nE,SAAT6nE,CAAmB,CAAC,SAAU,IAAI/lE,IAAI+lE,GAAWA,EAQ7D,GANIxhE,IACF8P,CAAS,CAAC,UADQ,GACK,CAAGwxD,EAAgB,GAAsBjgE,MAAAA,CAAnBrB,EAAe,MAAgB,OAAZqB,EAAE,WAAcrB,CAAAA,EAE9EshE,IACFxxD,EAAUtM,GAAG,CAAG,KADC,gBACD,EAEC,UAAf,OAAOpM,GAAoB8pE,GAAcC,GAAiB,CAAC/pE,EAAI27B,YAAY,CAACugB,GAAG,CAAC,OAAQ,CAC1F,MD3EA/kD,EAAAA,EAAwCA,EAAAA,EAExCA,EAAAA,EAAuCA,EAAAA,EAEvCA,EAAAA,EACAA,EAAAA,EAGAA,EAAAA,EAA0CA,GAAAA,GAE1CA,GAAAA,GAA0CA,GAAAA,MAjB5C4yE,SAQMM,GAEAC,GAIAC,GAEAC,GCkEEnmB,IDnFRylB,ECmFcW,CDpFY,GCoFA,CAAEX,ED9E7B,IC8E0BW,KAAGX,EAAYC,cAAAA,CAAc,GDnFtDD,UAAAA,IAD0B,EAE1BC,aAAAA,CAMM1xE,GACJlB,QAFIA,GAAcqa,EAAAA,CAASA,CAAGlO,OAAOnM,EAErCA,SAFgD,CAAG,CAAC,GAEpDA,KAAAA,EAAAA,QAAAA,EAAAA,GAAagB,MAAAA,GAAbhB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAqBW,IAAAA,GAArBX,KAAAA,MAAAA,KAAAA,EAAAA,EAA2BkB,SAAAA,UAAalB,GAAAA,KAAAA,EAAiB,QAAjBA,EAAAA,GAAaW,CAAbX,GAAiB,GAAjBA,KAAAA,IAAAA,EAAAA,KAAAA,EAA2B,QAA3BA,EAAAA,EAAmBa,QAAAA,GAAnBb,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6BsN,KAAAA,GAAS,MAE9EtN,OAAAA,GAAAA,KAAAA,EAAAA,QAAAA,EAAAA,GAAagB,CAAbhB,KAAagB,GAAbhB,KAAAA,IAAAA,EAAAA,KAAAA,EAAyB,QAAzBA,EAAAA,EAAqBW,IAAAA,GAArBX,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2BiC,QAAQ,UAAIjC,GAAAA,KAAAA,EAAAA,OAAAA,GAAAA,GAAaW,CAAbX,GAAaW,GAAbX,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAmBe,QAAAA,GAAnBf,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6BiC,QAAAA,GAAY,MAEhFjC,OAAAA,GAAAA,KAAAA,EAAmB,QAAnBA,EAAAA,GAAagB,CAAbhB,KAAagB,GAAbhB,KAAAA,IAAAA,EAAAA,KAAAA,EAAyB,QAAzBA,EAAAA,EAAqBW,IAAI,GAAzBX,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2BuB,eAAAA,UAC3BvB,GAAAA,KAAAA,EAAiB,QAAjBA,EAAAA,GAAaW,CAAbX,GAAaW,GAAbX,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAmBa,QAAAA,GAAnBb,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6BuB,eAAAA,GAC7B,MAEAvB,OAAAA,GAAAA,KAAAA,EAAmB,QAAnBA,EAAAA,GAAagB,CAAbhB,KAAagB,GAAbhB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA,EAAqBW,IAAAA,GAArBX,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2BuzE,WAAAA,UAAevzE,GAAAA,KAAAA,EAAiB,QAAjBA,GAAAA,GAAAA,IAAaW,GAAbX,KAAAA,IAAAA,GAAAA,KAAAA,EAA2B,QAA3BA,GAAAA,GAAmBe,QAAAA,GAAnBf,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA6BuzE,WAAAA,GAAe,MAEtFvzE,OAAAA,GAAAA,KAAAA,EAAAA,QAAAA,GAAAA,GAAAA,MAAagB,GAAbhB,KAAAA,IAAAA,GAAAA,KAAAA,EAAyB,OAAzBA,IAAAA,GAAqBW,IAAAA,GAArBX,KAAAA,OAAAA,KAAAA,EAAAA,GAA2BwzE,WAAAA,UAAexzE,GAAAA,KAAAA,EAAiB,QAAjBA,GAAAA,GAAAA,IAAiB,GAAjBA,KAAAA,IAAAA,GAAAA,KAAAA,EAA2B,QAA3BA,GAAAA,GAAmBe,QAAAA,GAAnBf,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA6BwzE,WAAAA,GAAe,GAOjF,MAAmBb,MAAAA,CAAbzxE,GAAU,KAAyB0xE,MAAAA,CAAtBD,GAAW,aAA2B1wE,MAAAA,CAAhB2wE,IAA2BrxE,MAAAA,CAAXU,GALlC,IAAe,OAAXixE,IAAe,IAK4CK,MAAAA,CAAlBhyE,GAF/B,IAAsB,OAAlB4xE,IAAsB,IAEqCK,MAAAA,CAJvFJ,GAAgB,IAAkB,OAAdA,IAAkB,IAI6D,OAAZI,GAHvE,IAAkB,OAAdH,IAAkB,KC8DxDxqE,EAAI27B,YAAY,CAACl6B,GAAG,CAAC,MAAO,4BAC5BzB,EAAIkM,IAAI,CAAGlM,EAAIkM,IAAI,CAACuF,OAAO,CAAC,2BAA4B4yC,GAC1D,CAEA,IAAMumB,GAAat/D,IAEjB,SADAK,OADmBL,GAvBnBK,CAwBAA,IAxBAA,IAAY,MAyBXjD,EAAY,CAAC,CAACA,IAGXmiE,GAAczhE,EAAAA,aAAmB,CACrC+gE,EAAiBW,IAAW,IAC5B,OADiBA,CACjB,CACEloE,IAAKyG,EACLa,GAAAA,EACAiC,OAAQ+9D,EAAgB,SAAW/9D,EACnCD,KAAMlM,EACN0I,UAAW4C,IAAGqB,EAAiB,CAC7B,aADWrB,cACiB,CAACqB,CAC/B,IA9Bc7C,CA+BX4O,EAEL,iCACE,WAAC9M,OAAAA,CAAKlD,UAAWkiE,aACdlsE,EACCurE,CAAAA,GAAeC,CAAAA,CAAY,EAAMD,EACjC,UAACN,EAAaA,CAAAA,GAEdO,GA/CN5pD,CAAAA,GA6CoBqpD,EA7CpBrpD,IAAAA,GAAoB,CA+CGA,GAAqB,UAACspD,EAAaA,CAAAA,GAErD,CAAC,CAACztD,GAAQ,EAF2CytD,CAE3C,OAACh+D,OAAAA,CAAKgM,aAAW,aAAEuE,OAE/B+tD,GACC,WAACt+D,OAAAA,CAAKlD,UAAU,oBAAU,KACtB,UAACkD,OAAAA,UAAM3B,EAAE,mBAOnB,OAAOjK,EACL6b,EACE,UAACA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAQ3P,KAAMlM,GAAS9G,GAAAA,UACrB2xE,MAGHA,GAGF,UAAC9hE,MAAAA,CACCnG,IAAKyG,EACLX,UAAWkiE,GACX1gE,GAAIA,EACJ0N,cAAa9N,CAAI,CAAC,cAAc,UAE/BpL,GAGP,GAAG,EAEEwO,WAAW,CAAG,sEkEnJf69D,EAAE90D,EkBAqnI,YlBAtnI80D,EAAE90D,6GhEAsD+N,EAAEqyC,CAAAA,EAAAA,EAAAA,aAAAA,CAACA,CAAC,KAAK,GAAG,SAASpqD,IAAI,MAAHA,CAAU8xB,EAAAA,EAAAA,UAAAA,CAACA,CAAC/Z,EAAE,CAAC,SAASgnD,EAAE,CAAoB,MAAnB9wE,CAAF8wE,CAAC,EAAC9wE,KAAAA,CAAQwE,EAAT,EAASA,QAAAA,CAAa,OAAOusE,EAAAA,aAAe,CAACjnD,EAAE3jB,QAAQ,CAAC,CAACnG,MAAM+P,CAAC,EAAEihE,EAAE,2BCAjL,SAASjhE,EAAE+Z,CAAC,EAAyB,OAA3B/Z,KAAI,OAAOkhE,eAA2BA,eAAennD,GAAG0W,QAAQmI,OAAO,GAAG7b,IAAI,CAAChD,EAAGiD,CAAAA,KAAK,CAACikD,SAAAA,CAAAA,SAAGhpD,WAAW,WAAK,MAAMgpD,CAAC,IAAG,CCAnF,SAASA,IAAI,IAAID,EAAE,EAAE,CAAC5U,EAAE,CAACzyD,iBAAAA,SAAiBogB,CAAC,CAAC/Z,CAAC,CAACyuB,CAAC,CAACzsB,CAAC,EAAE,OAAO+X,EAAEpgB,gBAAgB,CAACqG,EAAEyuB,EAAEzsB,GAAGoqD,EAAEtqC,GAAG,CAAC,kBAAI/H,EAAEngB,mBAAmB,CAACoG,EAAEyuB,EAAEzsB,IAAG,EAAEm/D,sBAAAA,WAAsB,kDAAGpnD,CAAAA,CAAH,eAAI,CAAE,IAAI/Z,EAAEmhE,sBAAAA,KAAAA,CAAAA,KAAAA,EAAsB,QAAGpnD,IAAG,OAAOqyC,EAAEtqC,GAAG,CAAC,kBAAIs/C,qBAAqBphE,IAAG,EAAEqhE,UAAAA,WAAU,QAAyCjV,EAAzC,0CAAGryC,CAAAA,CAAH,eAAI,CAAE,OAAOqyC,EAAE+U,qBAAqB,CAAC,iBAAI/U,CAAAA,GAAAA,EAAE+U,qBAAqB,OAAvB/U,EAAwB,QAAGryC,KAAG,EAAE9B,WAAAA,WAAW,kDAAG8B,CAAAA,CAAH,eAAI,CAAE,IAAI/Z,EAAEiY,WAAAA,KAAAA,CAAAA,KAAAA,EAAW,QAAG8B,IAAG,OAAOqyC,EAAEtqC,GAAG,CAAC,kBAAI4W,aAAa14B,IAAG,EAAEshE,UAAAA,WAAU,kDAAGvnD,CAAAA,CAAH,eAAI,CAAE,IAAI/Z,EAAE,CAACvG,QAAQ,CAAC,CAAC,EAAE,OAAOq6B,EAAE,UAADA,CAAM9zB,EAAEvG,OAAO,EAAEsgB,CAAC,CAAC,EAAE,EAAE,GAAGqyC,EAAEtqC,GAAG,CAAC,WAAK9hB,EAAEvG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAEgU,MAAAA,SAAMsM,CAAC,CAAC/Z,CAAC,CAACyuB,CAAC,EAAE,IAAIzsB,EAAE+X,EAAEtM,KAAK,CAAC8zD,gBAAgB,CAACvhE,GAAG,OAAOzJ,OAAOosB,MAAM,CAAC5I,EAAEtM,KAAK,CAAE,WAACzN,EAAGyuB,IAAI,IAAI,CAAC3M,GAAG,CAAC,WAAKvrB,OAAOosB,MAAM,CAAC5I,EAAEtM,KAAK,CAAE,WAACzN,EAAGgC,GAAG,EAAE,EAAEqqC,MAAAA,SAAMtyB,CAAC,EAAE,IAAI/Z,EAAEihE,IAAI,OAAOlnD,EAAVknD,GAAe,IAAI,CAACn/C,GAAG,CAAC,kBAAI9hB,EAAEwhE,OAAO,IAAG,EAAE1/C,IAAAA,SAAI/H,CAAC,EAAE,OAAOinD,EAAE5sE,QAAQ,CAAC2lB,IAAIinD,EAAE9kE,IAAI,CAAC6d,GAAG,WAAK,IAAI/Z,EAAEghE,EAAEluC,OAAO,CAAC/Y,GAAe,mBAAZ,GAAG/Z,GAAG,MAAE,QAAI,IAASghE,EAAE7R,MAAM,CAACnvD,EAAE,sBAApB,4BAAuByuB,GAAvB,6FAA0B,CAAC,EAAE+yC,QAAAA,eAAc,uBAAJ,QAAI,IAASR,EAAE7R,MAAM,CAAC,sBAAlB,4BAAqBp1C,GAArB,6FAAwB,CAAC,EAAE,OAAOqyC,CAAC,CCAlwB,SAASxqD,IAAI,IAAImY,EAAGknD,CAAAA,EAAAA,EAAAA,CAAAA,CAAVr/D,CAAUq/D,CAAAA,EAAAA,EAAAA,QAAAA,CAACA,CAACjhE,GAACA,EAAHihE,CAAAA,EAAAA,CAAK,IAAFjhE,EAASyuB,CAAAA,EAAAA,EAAAA,SAAAA,CAACA,CAAC,kBAAI,kBAAI1U,EAAEynD,OAAO,KAAG,CAACznD,EAAE,EAAEA,CAAC,CCA7E,SAAS0nD,EAAE3tC,CAAC,CAACrF,CAAC,CAAJgzC,CAAM,OAAO3tC,EAAEA,EAAE,IAAIrF,EAAE,IAAIA,CAAC,CCA3H,SAASzuB,IAAE,SAADA,CAAC,wCAAGosD,CAAAA,CAAH,eAAI,CAAE,OAAOj8D,MAAM2c,IAAI,CAAC,IAAI8U,IAAIwqC,EAAEtrC,OAAO,CAACkgD,SAAAA,CAAAA,QAAa,UAAV,OAAOA,EAAYA,EAAE7oE,KAAK,CAAC,KAAK,EAAE,KAAI5D,MAAM,CAACtB,SAAS5C,IAAI,CAAC,IAAI,CCAvH,SAASqxE,EAAEtV,CAAC,CAAC4U,CAAC,EAAJU,IAAK,sDAAG1/D,CAAAA,CAAH,iBAAI,CAAE,GAAGoqD,KAAK4U,EAAE,CAAC,IAAIjnD,EAAEinD,CAAC,CAAC5U,EAAE,CAAC,MAAiB,YAAV,OAAOryC,EAAcA,EAAAA,KAAAA,CAAAA,KAAAA,EAAE,QAAG/X,IAAG+X,CAAC,CAAC,IAAI/Z,EAAE,MAAU,oBAAsFzJ,MAAAA,CAAlE61D,EAAE,kEAA2G,OAA3C71D,OAAOsU,IAAI,CAACm2D,GAAGxrE,GAAG,CAACukB,SAAAA,CAAAA,QAAG,IAAM,OAAFA,EAAE,OAAI1pB,IAAI,CAAC,MAAM,KAAI,OAAM88B,MAAMw0C,iBAAiB,EAAEx0C,MAAMw0C,iBAAiB,CAAC3hE,EAAE0hE,GAAG1hE,CAAC,CCAxE,EDAqE0hE,ECAjEE,EAAE,SAAC5/D,CAAAA,SAAIA,CAAC,CAACA,EAAE6/D,IAAI,CAAC,EAAE,CAAC,OAAO7/D,CAAC,CAACA,EAAE8/D,cAAc,CAAC,EAAE,CAAC,iBAAiB9/D,CAAC,CAACA,EAAE+/D,MAAM,CAAC,EAAE,CAAC,SAAS//D,GAAI4/D,GAAG,CAAC,GAAGI,EAAE,MAADA,GAAEjoD,CAAAA,SAAIA,CAAC,CAACA,EAAEkoD,OAAO,CAAC,EAAE,CAAC,UAAUloD,CAAC,CAACA,EAAEmoD,MAAM,CAAC,EAAE,CAAC,SAASnoD,GAAIioD,GAAG,CAAC,GAAG,CAANA,QAAeG,IAAI,IAAHA,EAG5C/V,EAHmD4U,IAAEoB,CAG3DC,CAAAA,EAAAA,EAAAA,MAAAA,CAACA,CAAC,EAAE,IAAIC,CAAAA,EAAAA,EAAAA,WAAAA,CAACA,CAACvoD,SAAAA,CAAAA,MAAQ,uBAAJ,QAAI,IAASinD,EAAEvnE,OAAO,oBAAlB,iCAAIuI,EAAJ,OAAsB,OAAHA,CAAU,sBAAOA,EAAcA,EAAE+X,GAAG/X,EAAEvI,OAAO,EAACsgB,CAAAA,WAAjE,yEAAmE,EAAE,EAAE,EAAQ,sCAAIA,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAK,GAAG,CAACA,EAAEyf,KAAK,CAACx3B,SAAAA,CAAAA,SAAM,MAAHA,IAAS,OAAOg/D,EAAEvnE,OAAO,CAACsgB,EAAEqyC,CAAC,GAHvF,MAAOkW,CAAAA,EAAAA,EAAAA,WAAAA,CAACA,CAAClW,SAAAA,CAAAA,SAAGmW,SAAoCA,CAA0F,MAAvFC,EAAD,EAACA,QAAAA,CAAWC,EAAZ,EAAYA,UAAAA,CAAaC,EAAzB,EAAyBA,IAAAA,CAAOC,EAAhC,EAAgCA,UAAAA,CAAaC,EAA7C,EAA6CA,QAAAA,CAAmB5iE,EAAhE,EAAwDya,OAAAA,CAAanf,CAAL0E,CAAhE,EAAqE1E,IAAAA,CAAOunE,EAA5E,EAA4EA,SAAAA,CAAc/uC,EAAK,MAAHA,EAAQA,EAAEgvC,EAAE,IAAI7B,EAAE8B,EAAE3W,EAAE4U,GAAG,GAArDhhE,CAAwDA,IAAxDA,IAAAA,CAAG,EAAHA,EAA0D,OAAOgjE,EAAE/B,EAAElnD,EAAE/X,EAAE++D,EAAEjtC,GAAG,IAAImvC,EAAK,MAAHx0C,EAAQA,EAAE,EAAE,GAAK,EAAFw0C,EAAI,CAAC,IAAWxB,EAAWR,CAAlBiC,CAAAA,MAAM,CAASxB,CAARD,CAAQC,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAGT,EAAAA,CAAlBiC,WAAoB,GAAbzB,CAAgBA,IAAhBA,IAAE,CAAC,EAAHA,EAAkB,OAAOuB,EAAEtB,EAAE3nD,EAAE/X,EAAE++D,EAAEjtC,EAAE,CAAC,GAAK,EAAFmvC,EAAI,CAAC,IAAwC,EAA5BxB,EAAWR,EAAnBkC,OAAAA,CAAgBzB,CAARD,CAAQC,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAGT,EAAAA,CAAnBkC,YAAqB,OAAOC,EAApB3B,KAAAA,IAAAA,CAAG,EAAHA,EAAwB,EAAE,GAAE,KAAC,QAAD,EAAE,EAAD,WAAM,OAAO,IAAI,GAAE,QAApB,EAAqB,EAAD,WAAM,OAAOuB,EAAE,mBAAItB,GAAAA,CAAE3wD,OAAO,CAAC,EAAEtD,MAAM,CAAC41D,QAAQ,MAAM,IAAGtpD,EAAE/X,EAAE++D,EAAEjtC,EAAE,GAAnF,GAAsF,CAAC,OAAOkvC,EAAE/B,EAAElnD,EAAE/X,EAAE++D,EAAEjtC,EAAE,EAAvZ,SAAC+uC,UAAU7B,GAAK5U,KAAI,CAAC4U,EAAE,CAAC,CAAgY,SAASgC,EAAEhC,CAAC,MAAC5U,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAE,CAAC,EAAEryC,EAAAA,UAAAA,MAAAA,CAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAAE/X,EAAAA,UAAAA,MAAAA,CAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAAEysB,EAAAA,UAAAA,MAAAA,CAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAA+C60C,EAAAA,EAAEtC,EAAE,CAAC,UAAU,SAAS,EAA7DhhE,EAAqCsjE,EAAxCC,EAAAA,CAAGvjE,EAAAA,KAAAA,IAAAA,EAAE+Z,EAAF/Z,EAAIvL,EAAiC6uE,EAAjC7uE,QAAAA,CAAmBq/B,EAAcwvC,EAAtBE,OAAAA,CAAmBvC,CAAXntC,CAAWmtC,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAGqC,EAAAA,CAAxCC,KAAO9uE,WAAW+uE,YAAgDP,EAAU,KAAK,IAAbjC,EAAEroE,GAAG,CAAW,WAA1Dm7B,CAA2DA,IAA3DA,IAAAA,EAAE,MAAFA,EAA8DktC,EAAEroE,GAAG,EAAE,CAAC,EAAE8oE,EAAY,YAAV,OAAOV,EAAcA,EAAE3U,GAAG2U,EAAE,cAAcE,GAAGA,EAAExiE,SAAS,EAAE,cAAiCwiE,KAA1BA,EAAExiE,SAAS,GAAewiE,EAAExiE,SAAS,CAACwiE,EAAExiE,SAAS,CAAC2tD,EAAAA,CAAC,CAAG6U,CAAC,CAAC,kBAAkB,EAAEA,CAAC,CAAC,kBAAkB,GAAGA,EAAEhhE,EAAE,GAAGghE,CAAAA,CAAE,kBAAkB,CAAC,MAAK,EAAG,IAAIS,EAAE,CAAC,EAAE,GAAGtV,EAAE,CAAC,IAAIlK,EAAE,CAAC,EAAEtgD,EAAE,EAAE,CAAK,uBAAJ,QAAI,IAAWrL,OAAOuU,OAAO,CAACshD,EAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAA1B,sDAAI5T,EAAAA,CAAAA,CAAAA,EAAAA,CAAEsoB,EAAAA,CAAAA,CAAAA,EAAAA,CAAiC,WAAV,EAAsB5e,KAAf4e,IAAe5e,EAAE,EAAC,EAAO,CAAC,IAAL4e,GAAQl/D,EAAE1F,IAAI,CAACs8C,EAAEhxC,OAAO,CAAC,WAAWyH,SAAAA,CAAAA,QAAG,IAAoB,OAAhBA,EAAE5W,WAAW,iBAAjH,yEAAwH,GAAG6pD,EAAE,CAACwf,CAAC,CAAC,wBAAwB,CAAC9/D,EAAEvR,IAAI,CAAC,SAAS,uBAAJ,QAAI,IAASuR,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAT,iCAAI42C,EAAJ,QAAWkpB,CAAC,CAAC,QAAU,OAAFlpB,GAAI,CAAC,aAA1B,yEAA4B,CAAC,CAAC,GAAGx4C,IAAIgM,EAAAA,QAACA,GAAGzV,CAAAA,MAAOsU,IAAI,CAAC44D,EAAExC,IAAI1rE,MAAM,CAAC,GAAGgB,OAAOsU,IAAI,CAAC44D,EAAE/B,IAAInsE,MAAM,EAAC,GAAG,GAAG,CAAC8tD,CAAAA,EAAAA,EAAAA,cAAAA,CAACA,CAACoe,IAAItxE,MAAMC,OAAO,CAACqxE,IAAIA,EAAElsE,MAAM,CAAC,GAAE,GAAIgB,OAAOsU,IAAI,CAAC44D,EAAExC,IAAI1rE,MAAM,CAAC,EAAE,MAAM,MAAU,CAAC,+BAA+B,GAAI,0BAA2B,OAAFyM,EAAE,kCAAgC,sDAAsDzL,OAAOsU,IAAI,CAAC44D,EAAExC,IAAI3uC,MAAM,CAAC/7B,OAAOsU,IAAI,CAAC44D,EAAE/B,KAAKlsE,GAAG,CAAC0sD,SAAAA,CAAAA,QAAG,OAAS,OAAFA,KAAK7xD,IAAI,CAAE,MACluD,GAAG,iCAAiC,CAAC,8FAA8F,2FAA2F,CAACmF,GAAG,CAAC0sD,SAAAA,CAAAA,QAAG,OAAS,OAAFA,KAAK7xD,IAAI,CAAE,MACxP,CAACA,IAAI,CAAE,WACF,CAAC,IAAI6xD,EAAEuf,EAAExyE,KAAK,CAAC2S,EAAK,MAAHsgD,EAAQ,KAAK,EAAEA,EAAEzjD,SAAS,CAAC+5C,EAAY,YAAV,OAAO52C,EAAc,sCAAI8hE,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,QAAIC,EAAE/hE,EAAAA,KAAAA,CAAAA,GAAD+hE,EAAC/hE,EAAE,QAAG8hE,IAAGzC,EAAExiE,SAAS,GAAEklE,EAAE/hE,EAAEq/D,EAAExiE,OAALklE,EAAc,EAAuB10D,CAArB6xD,CAAuBiC,EAAEtB,EAAExyE,KAAK,CAACw0E,EAAEH,EAAErC,EAAE,CAAC,MAAM,IAAI,IAAI,IAAIyC,KAAKhC,EAAEgC,KAAKz0D,GAAG,OAAOyyD,CAAC,CAACgC,EAAE,CAAC,MAAOE,CAAAA,EAAAA,EAAAA,YAAAA,CAACA,CAACnC,EAAElrE,OAAOosB,MAAM,CAAC,CAAC,EAAE1T,EAAEyyD,EAAEuB,EAAE,CAACtqE,IAAI81B,EAAujDo1C,EAAAA,OAAS,CAAC1rE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK6oE,EAAE/xE,KAAK,CAAC0J,GAAG,CAA5lD8oE,EAA+lD9oE,GAAG,CAA/lDsqE,EAAEtqE,GAAG,CAAC,EAAvI6/C,CAAyIsoB,CAAvI,CAACriE,UAAU+5C,CAAC,EAAE,CAAC,GAA2H,EAAC,MAAOra,CAAAA,EAAAA,EAAAA,aAAAA,CAACA,CAACn+B,EAAEzJ,OAAOosB,MAAM,CAAC,CAAC,EAAE2gD,EAAErC,EAAE,CAAC,MAAM,EAAEjhE,IAAIgM,EAAAA,QAACA,EAAEi3D,EAAEjjE,IAAIgM,EAAAA,QAACA,EAAE01D,GAAGD,EAAE,CAA4K,SAASqB,IAAE,kDAAG9B,CAAAA,CAAH,eAAI,CAAE,OAAOA,EAAExnC,KAAK,CAAC4yB,SAAAA,CAAAA,SAAM,MAAHA,IAAS,KAAK,EAAEA,SAAAA,CAAAA,MAAQ,uBAAJ,QAAI,IAAS4U,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAT,iCAAIjnD,EAAJ,OAAc,OAAHA,CAAU,sBAAOA,EAAcA,EAAEqyC,GAAGryC,EAAEtgB,OAAO,EAAC2yD,CAAAA,WAAzD,yEAA2D,CAAC,CAAC,SAAS2W,IAAE,sBAAmaxsE,OAAOosB,MAAM,CAACypC,EAAG,WAAC39B,EAAD,SAAIzuB,CAAC,EAAC,0DAAG+gE,CAAAA,CAAH,iBAAI,CAAE,IAAIjtC,EAAE/Z,CAAC,CAAC0U,EAAE,CAAK,uBAAJ,QAAI,IAASqF,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAT,4BAAW,CAAX,IAAImtC,EAAJ,QAAY,GAAG,CAACjhE,aAAa8jE,OAAO,CAAI,MAAH9jE,EAAQ,KAAK,EAAEA,EAAE+jE,WAAAA,YAAuBD,KAAAA,CAAI,EAAI9jE,EAAEgkE,gBAAgB,CAAC,OAAO/C,EAAAA,KAAAA,CAAAA,KAAAA,EAAAA,CAAEjhE,EAAO,CAATihE,MAAAA,CAAI,QAAGF,IAAE,WAAxH,yEAAyH,KAAxkB,0CAAGC,CAAAA,CAAH,eAAI,CAAQ,GAAc,IAAXA,EAAEzrE,MAAM,CAAK,MAAM,CAAC,EAAE,GAAGyrE,MAAEzrE,MAAM,CAAK,OAAOyrE,CAAC,CAAC,EAAE,CAAC,IAAI5U,EAAE,CAAC,EAAEryC,EAAE,CAAC,EAAM,uBAAJ,QAAI,IAASinD,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAT,iCAAIvyC,EAAJ,QAAW,IAAI,IAAIzuB,KAAKyuB,EAAEzuB,EAAE1H,UAAU,CAAC,OAAoB,YAAb,CAAyB,MAAlBm2B,CAAC,CAACzuB,EAAE,CAAc,EAACgC,KAAE+X,CAAC,CAAC/Z,EAAE,GAAU+Z,CAAC,CAAC/Z,EAAE,CAAC,IAAI+Z,CAAC,CAAC/Z,EAAE,CAAC9D,IAAI,CAACuyB,CAAC,CAACzuB,GAAE,EAAGosD,CAAC,CAACpsD,EAAE,CAACyuB,CAAC,CAACzuB,EAAE,WAA3H,yEAA4H,GAAGosD,EAAEv7C,QAAQ,EAAEu7C,CAAC,CAAC,gBAAgB,CAAC,IAAI,IAAI39B,KAAK1U,EAAE,sDAAsD5mB,IAAI,CAACs7B,KAAK1U,CAAC,CAADA,EAAI,CAAC,CAAC/Z,SAAAA,CAAAA,EAAI,IAAI+gE,EAAE,OAAM,OAACA,EAAK,MAAH/gE,EAAQ,KAAK,EAAEA,EAAEykD,cAAc,EAAQ,KAAK,EAAEsc,EAAEkD,IAAI,CAACjkE,EAAE,EAAE,EAAE,IAAI,IAAIyuB,KAAK1U,EAAAA,EAAAA,GAA2K,OAAOqyC,CAAC,CAAC,SAAS3Z,IAAE,GAADA,CAAC,kBAA8Nl8C,OAAOosB,MAAM,CAACypC,EAAG,WAAC39B,EAAD,WAAI,kDAAGzuB,CAAAA,CAAH,eAAI,CAAE,IAAI+gE,EAAEhnD,CAAC,CAAC0U,EAAE,CAAK,uBAAJ,QAAI,IAASsyC,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAT,iCAAIjtC,EAAJ,cAAWA,GAASA,EAAAA,KAAAA,CAAAA,KAAAA,EAAE,QAAG9zB,cAAzB,yEAA2B,KAAnS,0CAAGghE,CAAAA,CAAH,eAAI,CAAQ,GAAc,IAAXA,EAAEzrE,MAAM,CAAK,MAAM,CAAC,EAAE,GAAc,IAAXyrE,EAAEzrE,MAAM,CAAK,OAAOyrE,CAAC,CAAC,EAAE,CAAC,IAAI5U,EAAE,CAAC,EAAEryC,EAAE,CAAC,EAAM,uBAAJ,QAAI,IAASinD,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAT,iCAAIvyC,EAAJ,QAAW,IAAI,IAAIzuB,KAAKyuB,EAAEzuB,EAAE1H,UAAU,CAAC,OAAoB,YAAb,CAAyB,MAAlBm2B,CAAC,CAACzuB,EAAE,CAAc,EAACgC,KAAE+X,CAAC,CAAaA,EAAV,GAAUA,CAAC,CAAC/Z,EAAE,CAAC,IAAI+Z,CAAC,CAAC/Z,EAAE,CAAC9D,IAAI,CAACuyB,CAAC,CAACzuB,EAAE,GAAGosD,CAAC,CAACpsD,EAAE,CAACyuB,CAAC,CAACzuB,EAAE,WAA3H,yEAA4H,IAAI,IAAIyuB,KAAK1U,EAAAA,EAAAA,GAA2E,OAAOqyC,CAAC,CAAC,SAAS8X,EAAElD,CAAC,EAAE,IAAI5U,EAAE,OAAO71D,OAAOosB,MAAM,CAACwhD,CAAAA,EAAAA,EAAAA,UAAAA,CAACA,CAACnD,GAAG,CAAC/9D,YAA+B,OAAlBmpD,EAAE4U,EAAE/9D,WAAAA,EAAmBmpD,EAAE4U,EAAE1lE,IAAI,EAAE,CAAC,SAASmoE,EAAEzC,CAAC,EAAE,IAAI5U,EAAE71D,OAAOosB,MAAM,CAAC,CAAC,EAAEq+C,GAAG,IAAI,IAAIjnD,KAAKqyC,EAAS,KAAK,IAAZA,CAAC,CAACryC,EAAE,EAAW,OAAOqyC,CAAC,CAACryC,EAAE,CAAC,OAAOqyC,CAAC,CAAC,SAASkX,EAAEtC,CAAC,MAAC5U,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAE,EAAE,CAAMryC,EAAExjB,OAAOosB,MAAM,CAAC,CAAC,EAAEq+C,GAAO,uBAAJ,QAAI,IAAS5U,CAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAAT,iCAAIpqD,EAAJ,QAAWA,KAAK+X,GAAG,OAAOA,CAAC,CAAC/X,EAAE,WAA9B,yEAA+B,OAAO+X,CAAC,CCHtsD,IAAI0U,EAAE,MAADA,GAAE1U,CAAAA,SAAIA,CAAC,CAACA,EAAE8nD,IAAI,CAAC,EAAE,CAAC,OAAO9nD,CAAC,CAACA,EAAEqqD,SAAS,CAAC,EAAE,CAAC,YAAYrqD,CAAC,CAACA,EAAEmoD,MAAM,CAAC,EAAE,CAAC,SAASnoD,GAAI0U,GAAG,CAAC,GAAsagzC,CAAzahzC,CAA2aqF,CAACA,CAAta,IAAoa2tC,KAA3ZV,CAAG,CAAC3U,CAAC,EAAQ,IAAF4U,EAAe9e,EAAUliD,EAAnB4iE,QAAAA,CAAS1gB,EAAAA,KAAAA,IAAAA,EAAE,EAAFA,EAAOnoC,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAG/Z,EAAAA,CAAnB4iE,aAAqB3B,EAAE,CAACtoE,IAAIyzD,EAAE,cAAc,GAAClK,CAAE,GAAK,IAAE,CAAC,MAAG8e,EAAEjnD,CAAC,CAAC,gBAAsBinD,EAAE,MAAK,EAAEjwD,OAAO,IAAG,GAAK,GAAK,CAAH,CAAC,GAAO,EAAEtD,MAAM,SAAC42D,SAAS,QAAQC,IAAI,EAAExwD,KAAK,EAAEsL,MAAM,EAAE6sC,OAAO,EAAEsY,QAAQ,EAAEC,OAAO,CAAC,EAAEr0D,SAAS,SAASs0D,KAAK,mBAAmBC,WAAW,SAASC,YAAY,KAAO,GAACziB,CAAE,GAAK,GAAG,GAACA,CAAE,GAAK,GAAG,CAACmhB,QAAQ,MAAM,EAAE,EAAE,OAAOzhE,IAAI,CAAC4gE,GAAJ5gE,MAAaq/D,EAAEwB,WAAW1oD,EAAE2oD,KAAK,CAAC,EAAEC,WAAte,CAAif3gE,MAAE1G,KAAK,QAAQ,EAAE,GCAhPmmE,EAAEmD,CAAAA,EAAAA,EAAAA,MAADnD,OAACmD,CAACA,CAAC,MAAM,SAASC,EAAE7kE,CAAC,EAAE,IAAS0hE,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAACA,CAAC,SAAP3nD,EAAK2nD,CAAAA,CAAAA,EAAAA,CAAHtV,EAAGsV,CAAAA,CAAAA,EAAAA,CAAQ,OAAOT,EAAAA,aAAe,CAACQ,EAAErrE,QAAQ,CAAC,CAACnG,CAAXwxE,KAAiB,CAACv/D,OAAO6X,CAAC,CAAC,EAAE/Z,EAAEvL,QAAQ,CAACwsE,EAAAA,aAAe,CAACF,EAAE,CAAC6B,KAAF7B,IAAW7e,EAAEggB,MAADhgB,CAAQvpD,IAAIyzD,CAAC,GAAG,CAAC,SAAS5T,EAAE,CAAY,MAAX/jD,EAAD,EAAD+jD,QAAE/jD,CAAiBslB,EAAE8pD,CAAAA,EAAAA,EAAAA,UAAAA,CAACA,CAACpC,GAAG,GAAG,CAAC1nD,EAAE,IAAR0nD,GAAeR,EAAAA,aAAe,CAACA,EAAAA,QAAU,CAAC,KAAKjhE,GAAG,IAAIkC,EAAU6X,EAAV7X,MAAAA,CAAY,OAAOkqD,EAAEn9C,CAAAA,EAAAA,EAAAA,YAAAA,CAACA,CAACgyD,EAAAA,aAAe,CAACA,EAAAA,QAAU,CAAC,KAAKjhE,GAAGosD,GAAG,IAAI,CAAC,SAASwX,EAAE,CAAgD,MAA/C/lE,EAAD,EAAD+lE,IAAE/lE,CAAOgyC,EAAR,EAAQA,IAAAA,CAAOh/B,EAAf,EAAeA,QAAAA,CAAW64C,EAA1B,EAA0BA,OAAAA,CAAUsQ,EAApC,EAAoCA,SAAAA,CAAuB0H,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAACA,CAAC,SAAP5tC,EAAK4tC,CAAAA,CAAAA,EAAAA,CAAH1/D,EAAG0/D,CAAAA,CAAAA,EAAAA,CAAQ9/D,EAAE0hE,IAAI,MAAOG,CAAAA,EAAAA,EAAAA,EAAVH,OAAUG,CAACA,CAAC,WAAK,GAAGzC,GAAGltC,EAAE,OAAOlyB,EAAEjI,gBAAgB,CAACm6B,EAAE,QAAQktC,EAAE,EAAE,CAACltC,EAAE/Z,EAAEinD,EAAE,EAAEC,EAAAA,aAAe,CAACzoB,EAAE,KAAKyoB,EAAAA,IAANzoB,SAAqB,CAAC+pB,EAAE,CAACuC,QAAQ9iE,EAAVugE,OAAmBxoD,CAAC,GLAr2B,MKAy2BuoD,ILAh2BvoD,MAACA,EAAC+Z,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAE,CAAC,EAAErF,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAE,KAAKzuB,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAAE,EAAE,CAAM,uBAAJ,QAAI,IAAWzJ,OAAOuU,OAAO,CAACgpB,EAAAA,CAAAA,OAAAA,QAAAA,CAAAA,GAA1B,sDAAIs4B,EAAAA,CAAAA,CAAAA,EAAAA,CAAE4U,EAAAA,CAAAA,CAAAA,EAAAA,EAAqF,SAASC,EAAEntC,CAAC,CAACrF,CAAC,CAACzuB,CAAC,MAA0B,mBAAxB,GAAG7P,MAAMC,OAAO,CAAC4P,GAAAA,GAAAA,CAAG,QAAI,IAAWA,EAAE8K,OAAO,sBAApB,sDAAIshD,EAAAA,CAAAA,CAAAA,EAAAA,CAAE4U,EAAAA,CAAAA,CAAAA,EAAAA,CAAiBC,EAAEntC,EAAE2tC,EAAEhzC,EAAE29B,EAAHqV,QAAa,IAAIT,aAA7C,8EAAqDhhE,aAAa+C,KAAK+wB,EAAE53B,IAAI,CAAC,CAACuyB,EAAEzuB,EAAE+kE,WAAW,GAAG,EAAY,WAAV,OAAO/kE,EAAa8zB,EAAE53B,IAAI,CAAC,CAACuyB,EAAEzuB,EAAE,IAAI,IAAI,EAAY,UAAV,OAAOA,EAAY8zB,EAAE53B,IAAI,CAAC,CAACuyB,EAAEzuB,EAAE,EAAY,UAAV,OAAOA,EAAY8zB,EAAE53B,IAAI,CAAC,CAACuyB,EAAG,GAAI,OAAFzuB,GAAI,EAAK,MAAHA,EAAQ8zB,EAAE53B,IAAI,CAAC,CAACuyB,EAAE,GAAG,EAAE1U,EAAE/Z,EAAEyuB,EAAEqF,EAAE,EAAzV9zB,EAAEyhE,EAAEhzC,EAAE29B,EAAHqV,CAAMT,aAAxC,yEAA2C,OAAOhhE,CAAC,GKAsxBA,GAAGxK,GAAG,CAAC,+BAAEi5B,EAAAA,CAAAA,CAAAA,EAAAA,CAAE0P,EAAAA,CAAAA,CAAAA,EAAAA,QAAK8iC,EAAAA,aAAe,CAACF,EAAE,MAADA,EAAC,CAAC6B,SAAS1gB,EAAEggB,MAADhgB,EAAW+gB,CAACA,CAAC,SAAC/yE,IAAIu+B,EAAE80C,GAAG,QAAQvxE,KAAK,SAAS+e,OAAO,CAAC,EAAEi0D,SAAS,CAAC,EAAEn1B,KAAK91B,EAAElJ,SAASu7C,EAAE9wD,KAAKmzB,EAAEx+B,MAAMkuC,GAAK6kC,QAAO,CAAC,SAAST,EAAE,CAAoB,MAAnBuC,EAAD,EAACA,OAAAA,CAAUzf,EAAX,EAAWA,MAAAA,CAAW,MAAOoe,CAAAA,EAAAA,EAAAA,SAAAA,CAACA,CAAC,WAAK,GAAG1pD,EAAE,CAAC,IAAIqyC,EAAE98D,SAASqrB,cAAc,CAACZ,GAAGqyC,GAAGpsD,EAAEosD,EAAE,CAAC,EAAE,CAACpsD,EAAE+Z,EAAE,EAAEA,EAAE,KAAKknD,EAAAA,aAAe,CAACF,EAAE,CAAC6B,KAAF7B,IAAW7e,EAAEggB,MAADhgB,CAAQqhB,GAAG,QAAQvxE,KAAK,SAAS+e,OAAO,CAAC,EAAEi0D,SAAS,CAAC,EAAErsE,IAAIyzD,SAAAA,CAAAA,EAAI,GAAIA,CAAD,EAAG,IAAW4U,EAAE5U,EAAE6Y,OAAO,CAAC,QAAQjE,GAAGhhE,EAAEghE,GAAE,CAAC,EAAE,CCAtsC,IAAIjnD,EAAEmoC,CAAAA,CAADnoC,CAACmoC,EAAAA,aAAAA,CAACA,CAAC,KAAK,GAAG,SAASwf,IAAI,MAAO5tC,CAAAA,EAAAA,EAAAA,UAAAA,CAACA,CAAC/Z,EAAE,CAAC,CAAFA,QAAW0nD,EAAE,CAAiB,CAAlBA,KAAExhE,EAAD,EAACA,EAAAA,CAAKxL,EAAN,EAAMA,QAAAA,CAAa,OAAOusE,EAAAA,aAAe,CAACjnD,EAAE3jB,EAAD2jB,MAAS,CAAC,CAAC9pB,MAAM+P,CAAC,EAAEosD,EAAE,sCCA1Kt4B,EAAEv9B,OAAO2uE,cAAc,CAA6F9Y,EAAE,GAADA,MAAEpsD,CAAAA,CAAE+Z,CAAAA,CAAEinD,CAAAA,cAAK9e,CAA/FnoC,EAAmG,EAAxF/Z,IAA+F+Z,IAAAA,EAAAA,YAAP,QAAOA,EAAAA,CAAAA,EAAG,SAASA,EAAE,GAAGA,OAA9G+Z,EAAE9zB,EAAE+Z,EAAE,CAACorD,WAAW,CAAC,EAAEC,aAAa,CAAC,EAAEC,SAAS,CAAC,EAAEp1E,OAAM+wE,GAAIhhE,CAAC,CAAC+Z,EAAE,CAAiDinD,EAAhDA,GAA4nBvyC,EAAE,GAADA,CAAKwyC,KAACA,eAAvkBA,iBAAAA,GAAgB7U,EAAE,GAADA,CAAK,CAAC,UAAU,IAAI,CAACkZ,MAAM,IAAIlZ,EAAE,GAADA,CAAK,CAAC,eAAe,WAAWA,EAAE,GAADA,CAAK,CAAC,YAAY,iBAApG6U,EAAAA,EAAuGzpE,IAAAA,YAAAA,SAAAA,CAAK,EAAE,IAAI,CAACiC,OAAO,GAAGsgB,GAAI,KAAI,CAACwrD,YAAY,CAAC,UAAU,IAAI,CAACC,SAAS,CAAC,EAAE,IAAI,CAAC/rE,OAAO,CAACsgB,CAAAA,CAAE,IAACnnB,IAAAA,cAAAA,SAAAA,EAAQ,IAAI,CAAC4E,GAAG,CAAC,IAAI,CAAC8tE,MAAM,GAAG,IAACG,IAAAA,eAAAA,SAAAA,EAAS,MAAM,EAAE,IAAI,CAACD,SAAS,IAAKp0B,IAAAA,eAAJ,WAAe,MAAsB,WAAf,IAAI,CAAC33C,OAAO,IAAgB3B,IAAAA,eAAJ,WAAe,MAAsB,WAAf,IAAI,CAAC2B,OAAkB,IAAC6rE,IAAAA,eAAAA,SAAAA,EAAS,MAAoD,CAA7C,IAA0B,eAASh2E,SAAsB,SAAS,QAAQ,IAACo2E,IAAAA,gBAAAA,SAAAA,EAA8B,YAApB,CAAgC,GAA5B,CAACH,YAAY,EAAe,KAAI,CAACA,YAAY,CAAC,WAAS,IAAOI,IAAAA,wBAAJ,WAAwB,MAA2B,aAApB,IAAI,CAACJ,YAAY,KAA7iBtE,MCA7ED,GAAE,SAACjnD,CAAAA,CAAE/Z,CAAAA,EAAK8zB,EAAEsd,GAADtd,EAAVktC,GAAmB,CAACS,CAAAA,EAAAA,EAAAA,SAAAA,CAACA,CAAC1nD,EAAE/Z,GAAGw4C,CAAAA,EAAAA,EAAAA,eAAAA,CAACA,CAACz+B,EAAE/Z,EAAE,ECAlC,SAASyuB,GAAE1U,CAAC,EAAE,IAAIqyC,EAAEpsD,CAAAA,EAAAA,EAAAA,CAAVyuB,KAAUzuB,CAACA,CAAC+Z,GAAG,OAAOknD,GAAE,WAAK7U,EAAE3yD,OAAO,CAAfwnE,CAAiB,EAAE,CAAClnD,EAAE,EAAEqyC,CAAC,CCA/E,IAAI6U,GAAE,QAADA,CAAUjhE,CAAC,EAAE,IAAwC+Z,EAApCA,EAAEinD,GAAEhhE,GAAG,OAAOgC,EAAAA,GAAXg/D,QAAwB,CAAC,sCAAI5U,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,OAAIryC,IAAAA,EAAEtgB,OAAO,OAATsgB,EAAU,QAAGqyC,KAAG,CAACryC,EAAE,CAAC,ECA9D2nD,GAAEkE,SAA4D,SAAS3C,KAAE,UAADA,UAAC,8BAAGjjE,CAAAA,CAAH,eAAI,CAAE,IAAIghE,EAAEltC,CAAAA,EAAAA,EAAAA,MAAAA,CAACA,CAAC9zB,GAAG+gE,CAAAA,EAAAA,EAAAA,SAAAA,CAACA,CAAC,WAAKC,EAAEvnE,OAAO,CAACuG,CAAC,EAAE,CAACA,EAAE,EAAE,IAAIw4C,EAAE4T,GAAEryC,QAADqyC,CAACryC,CAAAA,MAAQ,uBAAJ,QAAI,IAASinD,EAAEvnE,OAAO,oBAAlB,iCAAIwnE,EAAJ,eAA6B,GAAU,YAAV,OAAOA,EAAcA,EAAElnD,GAAGknD,EAAExnE,OAAO,EAACsgB,CAAAA,WAAjE,yEAAmE,GAAG,OAAO/Z,EAAEw5B,KAAK,CAACzf,SAAAA,CAAAA,SAAM,MAAHA,EAAUA,CAAAA,CAAG,QAAK,KAAK,EAAEA,CAAC,CAAC2nD,GAAAA,IAAK,KAAK,EAAElpB,CAAC,CCA4G,IAAIx2C,GAAE8+D,CAAAA,EAAAA,EAAAA,KAAD9+D,QAAC8+D,CAACA,CAAC,MAAM9+D,GAAEiB,UAADjB,CAAY,CAAC,qBAAi9BzL,OAAOosB,MAAM,CAApB+gD,CAACA,CAACnB,SAApSA,CAAG,CAACxoD,CAAC,CAAgSwoD,CAA9R,EAAgSqC,EAA5R1iB,EAAEogB,CAAAA,CAAZC,CAAYD,EAAAA,IAA2RsC,CAA3RtC,CAACA,GAAGtiE,EAAEm+B,IAAQrK,EAAsCs4B,EAAzCnsD,EAAJk+B,CAAOrK,EAAAA,KAAAA,IAAAA,EAAE,0BAA4B,OAAFouB,GAA5BpuB,EAAmCitC,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAG3U,EAAAA,CAAzCnsD,OAA2C+gE,EAAttB,SAASS,IAAI,IAAIrV,EAAEsV,CAAAA,EAATD,EAASC,UAAAA,CAACA,CAAC1/D,IAAG,GAAO,MAATA,CAAKoqD,EAAS,CAAC,IAAIryC,EAAE,MAAU,gFAAiF,OAAMoT,MAAMw0C,iBAAiB,EAAEx0C,MAAMw0C,iBAAiB,CAAC5nD,EAAE0nD,GAAG1nD,CAAC,CAAC,OAAOqyC,CAAXqV,IAA4hBhzC,EAAEo1C,GAAE9pD,GAAGkpD,GAAE,MAANY,YAAU7C,EAAE9S,CAAP+U,OAAe,CAACnvC,IAAG,CAACA,EAAEktC,EAAE9S,QAAQ,CAAC,EAAE,IAAI+S,EAAEjhE,GAAG,CAAC,EAAE4B,EAAE42C,CAAAA,EAAAA,EAAAA,OAAAA,CAACA,CAAC,iBAAK,mBAAIwoB,EAAE0B,IAAI,GAAC7xD,SAASowD,KAAI,CAACD,EAAE0B,IAAI,CAACzB,EAAE,EAAE4E,EAAE,iBAACltE,IAAI81B,GAAKuyC,EAAE/xE,KAAK,GAACgR,GAAG6zB,IAAG,OAAOgyC,IAAI,CAACtD,GAAJsD,MAAaD,EAAEpD,WAAW1B,EAAE2B,KAAK9gE,EAAE+gE,WAA/P,CAA0QwB,GAAE7oE,KAAK0lE,EAAE1lE,IAAI,EAAE,aAAa,EAAE,GAA8B,CAAC,GCAz8B,IAAIk9C,GAAE6pB,CAAAA,EAAAA,CAAD7pB,CAAC6pB,aAAAA,CAACA,CAAC,MAA0O,SAASyD,GAAE1Z,CAAC,EAAY,CAAd0Z,GAAQ9jE,EAAE+X,EAAEknD,EAAMF,EAAE,OAAChnD,EAAE,OAAC/X,EAAEshE,CAAAA,EAAAA,EAAAA,UAAAA,CAACA,CAAC9qB,GAACA,CAAA,CAAS,KAAK,EAAEx2C,EAAE/R,KAAAA,EAAa8pB,EAAE,KAAK,EAAE,MAAM,CAA8B,OAA5BknD,EAAE7U,QAAQ,KAAK,EAAEA,EAAE72D,MAAAA,EAAc0rE,GAAE,EAAG,EAAE,CAACF,EAAO,CAAR,OAAG,QAAG3U,IAAG73D,MAAM,CAACtB,SAAS5C,IAAI,CAAC,KAAK0wE,CAAC,CAAC,SAASmD,OAACA,EAAC,yDAAe,CAAC,EAAP9X,EAAT,EAAC2Z,OAAAA,CAAsBhF,CAAd3U,CAAgB0Z,KAAUD,EAATC,CAASD,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAACA,CAAC,EAAE,KAAT7jE,EAAK6jE,CAAAA,CAAAA,EAAAA,CAAH9rD,EAAG8rD,CAAAA,CAAAA,EAAAA,CAAM5E,EAAE7U,KAAlCA,IAAE,CAAC,EAAHA,EAAoC,CAAC2U,EAAO,CAAR,OAAG,QAAG/+D,IAAGzN,MAAM,CAACtB,SAAS+O,EAAE,MAAM,CAACi/D,EAAE1rE,MAAM,CAAC,EAAE0rE,EAAE5wE,IAAI,CAAC,KAAK,KAAK,EAAEywE,CAAAA,EAAAA,EAAAA,OAAAA,CAACA,CAAC,kBAAI,SAAS9gE,CAAC,EAAE,IAAIyuB,EAAE0P,GAAErK,QAADqK,CAACrK,CAAAA,SAAI/Z,EAAEnY,SAAAA,CAAAA,QAAG,QAAIA,GAAAA,MAAAA,CAAJ,CAAMkyB,EAAE,IAAE,kBAAI/Z,EAAEnY,SAAAA,CAAAA,EAAI,IAAI8/D,EAAE9/D,EAAErB,KAAK,GAAG2hD,EAAEwf,EAAE5uC,OAAO,CAACgB,GAAG,OAAW,CAAC,IAALouB,GAAQwf,EAAEvS,MAAM,CAACjN,EAAE,GAAGwf,CAAC,MAAK+B,EAAE3C,CAAAA,EAAAA,EAAAA,OAAAA,CAACA,CAAC,iBAAK,CAAC5S,SAASz/B,EAAEi0C,KAAK1iE,EAAE0iE,IAAI,CAACpnE,KAAK0E,EAAE1E,IAAI,CAACrM,MAAM+Q,EAAE/Q,KAAK,CAACgB,MAAM+P,EAAE/P,KAAK,GAAG,CAACw+B,EAAEzuB,EAAE0iE,IAAI,CAAC1iE,EAAE1E,IAAI,CAAC0E,EAAE/Q,KAAK,CAAC+Q,EAAE/P,KAAK,CAAC,EAAE,OAAOyzE,EAAAA,aAAe,CAAClrB,GAAEpiD,IAADoiD,IAAS,CAAC,CAACvoD,MAAMwzE,CAAC,EAAEzjE,EAAEvL,QAAQ,CAAC,GAAE,CAACslB,EAAE,EAAE,CAAryBy+B,GAAEv1C,IAADu1C,OAAY,CAAC,eAAwyD,IAAI4pB,GAAS7rE,IAAR6rE,GAAez/C,MAAM,CAApBygD,CAACA,CAAzgC,KAA8hChB,IAAnhChW,CAAC,CAAC2U,CAAC,EAAQ,IAAFkC,EAAMjhE,EAAEywC,CAAAA,EAAAA,EAAAA,KAAAA,CAACA,GAAG14B,EAAvzB,OAA0zBgpD,EAAjzBA,IAAI,GAAHA,CAAO3W,EAAEkX,CAAAA,EAAAA,EAAAA,UAAAA,CAACA,CAAC9qB,IAAG,GAAFA,SAAc,CAAC,IAAIuoB,EAAE,MAAU,0EAA2E,OAAM5zC,MAAMw0C,iBAAiB,EAAEx0C,MAAMw0C,iBAAiB,CAACZ,EAAEgC,GAAGhC,CAAC,CAAC,EAAJgC,KAAW3W,CAAC,IAAunB6U,EAAEkD,IAACA,EAAKnB,IAAQhjE,EAAoGosD,EAAvGnsD,EAAJ+iE,CAAOhjE,EAAAA,KAAAA,IAAAA,EAAE,oBAAsB,OAAFgC,GAAtBhC,EAAkCyuB,EAAkE29B,EAA1E4Z,OAAAA,CAAQv3C,EAAAA,KAAAA,IAAAA,EAAK,MAAHwyC,EAAQA,EAAE,OAACgC,EAAElpD,EAAE9qB,KAAAA,EAAa,KAAK,EAAEg0E,EAAE+C,OAAO,CAA9Cv3C,EAAuDg1C,EAAWrX,EAAnB6Z,OAAAA,CAAgBnyC,CAAR2vC,CAAQ3vC,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAGs4B,EAAAA,CAAvGnsD,KAA6B+lE,UAAuDC,YAAqBrkE,EAAEskE,GAAEnF,GAAGiB,GAAE,MAANkE,YAAUnsD,EAAEm0C,CAAP8T,OAAe,CAAChiE,IAAG,CAACA,EAAE+Z,EAAEm0C,QAAQ,CAAC,EAAE,IAAIwT,EAAEvjC,GAAEgkC,QAADhkC,CAACgkC,CAAAA,EAAI,IAAIn2D,EAAEm2D,EAAEgE,aAAa,CAAC,GAAGn6D,aAAao6D,kBAAkBjE,EAAE1d,cAAc,GAAG1qC,EAAE9qB,KAAK,EAAE,YAAY8qB,EAAE9qB,KAAK,EAAE,mBAAO8qB,EAAE9qB,KAAK,CAAC6U,OAAO,EAAciW,EAAE9qB,KAAK,CAAC6U,OAAO,CAACq+D,GAAGn2D,aAAao6D,iBAAiB,CAAC,IAAIpF,EAAE1xE,SAASqrB,cAAc,CAAC3O,EAAEg6D,OAAO,EAAE,GAAGhF,EAAE,CAAC,IAAI6C,EAAE7C,EAAEhtC,YAAY,CAAC,YAAY,GAAO,SAAJ6vC,GAAgB,KAAJA,EAAO,OAAO,IAAIvB,EAAEtB,EAAEhtC,YAAY,CAAC,iBAAiB,GAAO,SAAJsuC,GAAgB,KAAJA,EAAO,MAAQtB,CAAAA,cAAaqF,mBAA4B,CAATrF,SAAAA,EAAEhvE,IAAI,EAAqB,aAATgvE,EAAEhvE,IAAI,CAAY,EAAa,UAATgvE,EAAE/pD,IAAI,EAAqB,aAAT+pD,EAAE/pD,IAAI,EAAwB,WAAT+pD,EAAE/pD,IAAI,CAAU,EAAI+pD,EAAEsF,KAAK,GAAGtF,EAAEt0D,KAAK,CAAC,CAAC65D,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGrkB,EAAEjzC,GAAG,CAAC,EAAEszD,EAAEzB,CAAAA,EAAAA,EAAAA,OAAAA,CAACA,CAAC,iBAAK,mBAAI/mD,EAAE2oD,IAAI,GAAC7xD,SAASqxC,KAAI,CAACnoC,EAAE2oD,IAAI,CAACxgB,EAAE,EAAEuf,EAAE,iBAAC9oE,IAAIiJ,GAAKmY,EAAE9qB,KAAK,GAACgR,GAAGD,EAAEgmE,QAAQv3C,EAAE3qB,QAAQ49D,IAAG,OAApsB+B,KAA+sB,IAA/sBA,CAAG,EAAHA,GAA+sB,aAAYhC,GAAI,QAAOA,EAAEuE,OAAO,CAAC,OAAOvE,EAAE39D,OAAAA,EAAS,YAAYgwB,GAAG,OAAOA,EAAEhwB,OAAAA,EAAS8gE,IAAI,CAACpC,GAAJoC,MAAanD,EAAEgB,WAAW3uC,EAAE4uC,KAAKH,EAAEI,WAAWl0C,EAAz+B,EAA2+Bk1C,MAAE,CAADA,KAAOroE,KAAKye,EAAEze,IAAI,EAAE,OAAO,EAAE,GAA8B,CAAC,GCAx6CspE,GAAE54D,CAACA,CAAzd,EAAud44D,KAAIpsB,EAAldA,CAAG,CAACuoB,CAAC,EAAE,EAANvoB,MFA0Tz+B,EEAhT/Z,EAAE,sBAA0B,OAAJ+iE,CAAAA,EAAAA,EAAAA,KAAAA,CAACA,IAAWZ,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,KAACA,EAAAA,CAAN1zC,EAAK0zC,CAAAA,CAAAA,EAAAA,CAAHvgE,EAAGugE,CAAAA,CAAAA,EAAAA,CAAUH,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CFAgQ5V,EAAK2W,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,EAAAA,QAAAA,CAACA,CAAC,EAAE,KAAJA,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA,EAAAA,CAAY,CAAC3W,EAAE72D,MAAM,CAAC,EAAE62D,EAAE/7D,IAAI,CAAC,KAAK,KAAK,EAAEmoD,CAAAA,EAAAA,EAAAA,OAAAA,CAACA,CAAC,kBAAI,SAASx4C,CAAC,EAAE,IAAI8zB,EAAE7kB,GAAE+xD,QAAD/xD,CAAC+xD,CAAAA,SAAIjnD,EAAE0U,SAAAA,CAAAA,QAAG,QAAIA,GAAAA,MAAAA,CAAJ,CAAMuyC,EAAE,IAAE,kBAAIjnD,EAAE0U,SAAAA,CAAAA,EAAI,IAAIwyC,EAAExyC,EAAEluB,KAAK,GAAGqB,EAAEq/D,EAAEnuC,OAAO,CAACkuC,GAAG,OAAW,CAAC,IAALp/D,GAAQq/D,EAAE9R,MAAM,CAACvtD,EAAE,GAAGq/D,CAAC,MAAKF,EAAEvoB,CAAAA,EAAAA,EAAAA,OAAAA,CAACA,CAAC,iBAAK,CAAC0V,SAASp6B,EAAE4uC,KAAK1iE,EAAE0iE,IAAI,CAACpnE,KAAK0E,EAAE1E,IAAI,CAACrM,MAAM+Q,EAAE/Q,KAAK,CAACgB,MAAM+P,EAAE/P,KAAK,GAAG,CAAC6jC,EAAE9zB,EAAE0iE,IAAI,CAAC1iE,EAAE1E,IAAI,CAAC0E,EAAE/Q,KAAK,CAAC+Q,EAAE/P,KAAK,CAAC,EAAE,OAAOwzE,EAAAA,aAAe,CAACzhE,GAAE5L,QAAQ,CAAC,CAAV4L,MAAiB++D,CAAC,EAAE/gE,EAAEvL,QAAQ,CAAC,GAAE,CAACslB,EAAE,EAAE,EEAplBioD,GAANhB,EAAKgB,CAAAA,CAAAA,EAAAA,CAAHhgE,EAAGggE,CAAAA,CAAAA,EAAAA,CAAIyB,EAAE/B,IAAc3nD,EAAcmoC,EAAvBrxC,EAAJ6wD,MAAI7wD,CAASkJ,EAAAA,KAAAA,IAAAA,EAAE0pD,GAAG,CAAC,EAAN1pD,EAAW+Z,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,CAAGouB,EAAAA,CAAvBrxC,aAAyBowD,EAAEQ,CAAAA,EAAAA,EAAAA,OAAAA,CAACA,CAAC,iBAAK,CAAC5wD,SAASkJ,CAAC,GAAG,CAACA,EAAE,EAAyD+mD,CAAvDkC,CAAyDa,IAAI,IAAHA,GAAUzX,EAAAA,aAAe,CAAC6W,EAAE,CAAChzE,MAAM8pB,CAARkpD,EAAW7W,EAAAA,aAAe,CAACxqD,EAAE,CAAC3R,MAAMw+B,CAAC,EAAE29B,EAAAA,aAAe,CAACpqD,EAAE,CAAC/R,MAAM+wE,CAAC,EAAE5U,EAAAA,aAAe,CAACjuB,EAAE,CAACl+B,CAAFk+B,EAAKn+B,CAAC,EAAE8gE,EAAE,CAAC0B,SAAlL,CAA2LQ,IAAtLjC,EAAElwD,SAASkJ,GAAG,KAAK,EAAE,gBAAgBA,GAAG,KAAK,CAAC,EAA0I0oD,WAAW,mBAAI3uC,GAAAA,CAAEr/B,SAAS23D,EAAAA,aAAe,CAACyZ,CAACA,CAAC,KAAwB,YAAnB,OAAO/xC,EAAEr/B,QAAQ,CAAaq/B,EAAEr/B,QAAQ,CAACwsE,GAAGntC,EAAEr/B,QAAQ,IAAGiuE,KAAKzB,EAAE0B,WAAxb,CAAmclwB,KAAEn3C,CAADm3C,IAAM,OAAO,MAAM,GCUr7B,eACA,YACA,oDACA,sIACA,CACA,eACA,MACA,sKACA,CACA,eACA,WACA,WACA,iBACA,EAEA,CACA,qBACA,kBACA,CAAC,EACD,iBACA,qBACA,CAAC,EACD,iBACA,qBACA,gCACA,CAAC,EACD,iBACA,iBACA,CAAC,EACD,cACA,iBACA,CAAC,EACD,cACA,gCACA,CAAC,EACD,qBACA,oBACA,CAAC,EACK,GAAyC,cAC/C,qBACA,CAAC,EACD,SAH+C,KAI/C,qBACA,CAAC,EErDD,WACA,MACA,uEACA,EACA,MACA,gCACA,MACA,oBCcA,QACA,WACA,WACA,GAD2D,CAC3D,EACA,MAEA,IACA,OACA,SACA,EACA,iBACA,sBACA,CAOA,eACA,MAHA,eAA+B,GAAY,UAI3C,EAJ2C,8DAK3C,cACA,iBAEA,CACA,eACA,aACA,iDACA,MACA,gBAEA,CACA,eFvCA,KEwCiC,EFxCjC,8BAIA,GAAY,GEoCqB,EFpCoB,sBEoCpB,EFpCoB,oBACrD,CADqD,GEoCpB,EFnCjC,SEmCiC,EFnCjC,YALA,IEyCA,MACA,aAEA,CACA,eAIA,yCAGA,SACA,aACA,iBAEA,MACA,MACA,CACA,cAGA,MACA,KACA,CAGA,eACA,yCAA2F,IAAqB,OAChH,SAA6B,GAC7B,KAA+B,GAK/B,UAPgH,KAOhH,eANkD,CAMlD,CACA,MANsD,OAMtD,4BACA,MACA,uBACA,EACA,oCACA,kCACA,kCAGA,kCACA,iCACA,kCACA,wCACA,wCACA,wCAEA,sCACA,sCACA,qCAGA,uCACA,KACA,CAAK,EACL,OACA,CAAK,EACL,UACA,OACA,CAAK,CACL,CACA,eACA,SAAkD,GAClD,KAA+B,GAC/B,8BAFkD,QACI,MACtD,GACA,YACA,8CACA,uCACA,qCACA,qCACA,qCACA,oCACA,kCACA,2CACA,2CACA,2CAEA,yCACA,yCACA,wCAEA,aACA,EAgBA,cACA,oBACA,CAHA,uCAdA,OAEA,EADA,SADA,OAGA,6BAHA,SAKA,OACA,GANA,OAOA,EACA,0CAEA,WACA,IA4BA,gBACA,WACA,QACA,QACA,QACA,OACA,QACA,SACA,SACA,QACA,ECnLA,gCAAwF,EAAY,sBEEpG,UACA,qBACA,yCAEA,iBACA,yBACA,iCACA,CACA,kBACA,mCACA,gCACA,CACA,uBACA,QACA,CACA,WACA,iBACA,mBACA,qBACA,mCACA,mCACA,uBACA,6BACA,yCACA,6BACA,2BACA,2BACA,WACA,CACA,CACA,eACA,SAAuB,UAAa,CACpC,aACA,aACA,CAAK,EAEL,GAAQ,KACR,gBACA,WACA,SAH8B,CAG9B,GACA,wBACA,gBAEA,CACA,CAAK,KACL,SAA2B,MD7C3B,GACA,SAAoB,UAAa,MAOjC,OANA,GAAQ,KACR,WACA,CAAK,EACL,EACA,EAEA,GAAe,eANkC,CAMhB,QACjC,gBACA,6BACA,CAAK,IACL,ECiCgD,IAChD,aACA,CAAK,EAEL,SAAe,eAAkB,IAKjC,gKACA,uBACA,eAWA,8BAVA,IACA,uBACA,YACA,oBAEA,qBACA,gCACA,wBAEA,EACA,CACA,OACA,CAAa,EACb,6CACA,oCACA,KACA,2DACA,6DACA,uCACA,eACA,CAAqB,GACrB,2CACA,WACA,eACA,CAAqB,EACrB,CACA,CAAa,EACb,8BACA,cACA,iBACA,WACA,CACa,CACb,CACA,CAAK,EACL,EACA,CACA,CGxGA,gBAA6D,MNsN7D,MMrNA,IAAU,uCAAyE,EACnF,KAAoB,UAAa,CACjC,aACA,qBAAyC,CACzC,CAAK,EACL,SAAsC,YAAe,IACrD,SAAqD,GAHS,OAGT,EAAe,mDACpE,KAA0B,eAAkB,yDAC5C,KAA4B,eAAkB,IAC9C,sBACA,KACA,GACA,CAAK,EACL,EACA,ENuMA,EMtMsC,IACtC,2BACA,GACA,CAAK,CNmML,EMnMK,GNmML,EMnMK,CACL,aACA,CAAK,CNkML,KACA,GAAQ,aAAgB,KACxB,cACA,CA3BA,gBACA,MACA,oCAAuF,2DACvF,gCAAqE,MAAqB,2DAC1F,gCAA6D,MAAqB,2CAClF,gCAA+D,MAAqB,+CAEpF,SADA,+OACA,4CACA,EAmBA,uCACA,OACA,EAEA,OADA,UACA,KACA,YACA,CAEA,CAAK,IM5ML,IAAU,cAAyB,GAAM,MFNzC,GACA,IAAU,4BEK8C,EFL9C,mBAAiG,EAC3G,KAAuB,eAAkB,IACzC,8BAGA,OAFA,QACA,SACA,EAEA,CAAK,EACL,EACA,EACA,EACA,KAA0E,GAC1E,KAAwB,aAAkB,MAG1C,SAAkC,EAAuB,GAJiB,GAIjB,CACzD,gCADyD,YACzD,cACA,QACA,SACA,KAEA,CAAK,EACL,EACA,EACA,EACA,EACA,OACA,YACA,+BACA,0BACA,CACA,CACA,EE3BwD,CACxD,aACA,eACA,CAAK,EACL,CAAU,oBAAqC,GAAM,MDZrD,GACA,IAAU,mEAA6H,EACvI,KAAoB,UAAa,CACjC,gBACA,CAAK,EACL,KAAqB,eAAkB,IAIvC,sEACA,2BACA,QACA,SAEA,CAAK,EACL,EACA,EACA,EACA,EACA,KAA+B,GAC/B,KAAsB,eAAkB,IAGxC,cAJwE,SAIxE,sCACA,QACA,SACA,2BACA,KAEA,CAAK,EACL,EACA,EACA,EACA,SACA,GACA,kBAEA,eACA,aACA,CACA,EACA,CACA,kBACA,UACA,QACA,CACA,CACA,ECnC0E,CAC1E,cACA,qBACA,CAAK,EACL,OACA,YACA,iBACA,gBACA,CACA,CCpBA,UACA,KACA,cACA,MAKA,gBACA,KACA,CAAK,IACL,CACA,eACA,6BACA,CACA,cACA,gCAIA,MAHA,2EACA,yCACA,KACA,OAEA,OACA,8EACA,4CACA,CACA,CACA,eACA,IAAU,0DAA2G,EACrH,SAAsC,YAAe,IACrD,KAAoB,UAAa,CACjC,aACA,6BACA,eACA,WACA,CAAK,UACL,GAAQ,WAAgB,SACxB,IAAU,gCAA2D,GAAM,WAAc,KACzF,cAEA,GADA,gBACA,uEACA,gBACA,sBACA,WACA,MACA,kBACA,SACA,aACA,CAAa,EACb,SACA,KACA,EACA,UAGA,GAFA,iBACA,cACA,gCACA,gBACA,sBACA,MACA,gBACA,SACA,aACA,CAAa,EACb,SACA,KACA,EACA,KAqBA,MApBA,kCACA,qBACA,6BACA,kBACA,EACA,qBACA,0DACA,IAEA,oBACA,8BACA,EACA,mBACA,8CACA,8BACA,EACA,mBACA,oDACA,GAEA,CACA,aACA,iBACA,CACA,CAAK,EACL,EACA,EACA,EACA,EACA,EACA,EAWA,MAVA,GAAQ,aAAgB,KAGxB,MACA,uBACS,eAET,CAAK,EACL,EACA,EACA,CACA,aACA,WACA,CACA,CCpIA,mBACA,IACA,EADA,oBAEA,eACA,YACA,EAQA,CAPA,6DACA,UAEA,IADA,+CAEA,SAMA,GAJA,IAEA,4DACA,UACA,6CACA,yCACA,qCACA,OACA,UAEA,IADA,YACA,YACA,QAEA,QACA,EACA,aACA,OAAe,QAAuB,GAAG,QAAoB,IAC7D;AACA;AACA;AACA,yBAAyB,SACzB,EACA,yBACU,cAAc,EACxB,qBAEA,CAEA,OADA,iDACA,CACA,CACA,CACA,iBACA,cAGA,QAFA,oCAA2C,OAAW,EAAI,KAAO,EAIjE,CACA,8BACM,GAAQ,UACd,CADc,GACd,EACA,sBACA,kBACA,qCACA,CACA,ECxDA,QACA,OACA,0CACA,4CACA,KACA,YAAsB,KAAU,IAChC,UAEA,QACA,EACA,WACA,sBACA,MACA,OAEA,qBACA,MACA,OAEA,UACA,UAAY,YAAgB,EAC5B,GAAS,yCAAsD,CAC/D,EAEA,GADA,6BACA,kBACA,WACA,EAEA,+BACA,WACA,WACA,mCACA,yBACA,MACA,GAAoB,sCAA8C,EAClE,MACA,CACA,CACA,4BACA,CACA,2EACA,CAAG,EAEH,OADA,aAA8B,iBAAmB,EACjD,KACA,cACA,CACA,EACA,IACA,UACA,EAeA,sDACA,WACA,sBACA,MACA,OAEA,qBACA,MACA,OAEA,QACA,6CAA4F,GAC5F,EACA,KACA,OACA,CAAK,CACL,iCAEA,UACA,IAAY,sBAAoB,UAChC,wCACA,IACA,MACA,EACA,QACA,QACA,IACA,kCACA,sCAIA,OAHA,GACA,qCAEA,KACA,kCACA,GACA,oCAEA,CACA,EAsCA,aACA,mCACA,yBACA,KAIA,OAHA,WACA,iDAIA,CACA,kBACA,iEAEA,EAYA,OACA,gBACA,WACC,MACD,OAEA,kEACA,oCAFA,IAGA,UACA,CAAG,CACH,CACA,UACA,eACA,eACA,wBACA,uBACA,oBACA,iCACA,0BACA,2BACA,oCACA,qBACA,uBACA,0BACA,yBACA,2BACA,oBACA,WACA,MACA,IAGA,oDAGA,2CACA,cACA,WACA,gCACA,CACA,8EACA,CAAW,CACX,CAAS,EATT,MAWA,OACA,gBACA,KACA,+BACA,MACA,CAAS,CACT,YACA,MACA,yCAAsE,iBAAmB,CACzF,CAAS,CACT,cACA,MACA,0CACA,CACA,CACA,EAAK,GACL,gBACA,oBACA,oCACA,wBACO,EACP,cACA,SACA,gBACA,WACA,eACA,aACA,qBACA,mBACA,cACA,cACA,kBACA,cACA,CAAS,CACT,kBACA,aAAuB,iBAAqB,CAC5C,eACA,MACA,4BACA,4BACA,QACA,0BACA,WACA,SACA,qBACA,uCACA,KAEA,EACA,gBACA,OACA,sDACA,EACA,iBAAuB,GACvB,CAD2B,IAE3B,sBACA,CACA,iBACA,sCACA,oCACA,EAEA,IACA,cACA,CAAO,CACP,CACA,IAAa,GACb,GADkD,GAClD,CADsD,CAAa,EACnE,mBACA,aACA,iBACA,sCACA,oCACA,GAGA,kBACA,4CACA,eACA,2BACA,wBACA,sBACA,EACA,mBACA,KACA,cACA,EAEA,sBACA,MACA,gEACA,2BAEA,GADA,eACA,IACA,mBACA,MACA,CACA,qBACA,yDACA,+DAEA,uEAEA,+BACA,wBACA,CAAS,EACT,6CACA,mBACA,eACA,CAAS,EACT,iBACA,yCACA,kBACA,kBACA,CAAW,GAEX,iBACA,+CACA,yBACA,0EACA,oBACA,mBACA,kBACA,CAAW,EAEX,CACA,EACA,iBACA,sBAIA,0DACA,4DAJA,qBACA,GAKA,yBACA,sBAIA,6IACA,oBAJA,uBACA,GAKA,oCACA,cACA,UACA,cAA8B,KAAQ,KACtC,WACA,iBACA,SAEA,YACA,QAOA,GALA,qBACA,gBACU,aACV,iBAEA,4BACA,KAEA,CACA,sEACA,cACA,gBAEA,YACO,UACP,EACA,2BAAiC,GACjC,CADqC,GACrC,CACA,mBACA,0BACA,0BACA,wBACA,qBACA,CACA,cACA,oCACA,CACA,QACA,eACA,eACA,aACA,SACA,GAEA,CACA,MACA,GAEA,qBAA2B,GAC3B,CAD+B,GAC/B,kDACA,QAAS,uDAAwD,MACjE,MAGA,OAFA,0BACA,2BACA,GAEA,oCACA,6DACA,mCACA,oCACA,CAAW,GAEX,+FACA,qCACA,wCACA,YAA0B,IAAW,KACrC,WACA,iEACA,+BACA,WACA,oDACA,MACA,gCACA,MACA,QACA,QACA,OACA,MACA,MACA,MACA,CACA,CAEA,OADA,yBACA,CACA,CAAO,CACP,CACA,IAAa,GACb,GADkD,GAClD,CADsD,CAAiB,EACvE,qBAGA,oBAA0B,GAC1B,CAD8B,GAC9B,+DACA,SACA,2BA2SA,UACA,eACA,YACA,eACC,EACD,iBAEA,SADA,cACA,GACA,IACA,wBACA,IAEA,OAAW,wBACX,EAxTA,CACA,eACA,YACA,cACA,CAAS,OAET,CACA,IAAa,GACb,GADkD,GAClD,CADsD,CAAgB,EACtE,qBAGA,uBAA6B,GAC7B,CADiC,IAEjC,WACA,OACA,wBAKA,OAJA,IACA,eACA,cAEA,CACA,4BACA,sBACA,mBACA,EACA,EACA,CACO,CACP,aACA,yBACA,aACA,WACA,WACA,OACA,CAAS,EAET,CACA,IAAa,GACb,GADkD,GAClD,CADsD,CAAmB,EACzE,qBAGA,0BACA,kCACA,2BACA,EAMA,gBALA,aACA,2BAAqC,EAAc,EAAE,MAAM,yBAE3D,GAGA,EACA,6BACA,+BACA,4BACA,MACA,OAEA,YACA,4BACA,QACA,GACA,2BAEA,yBACA,6BAEA,eACA,wDAEA,EACA,wBACA,gCACA,MACA,OAGA,QADA,uCAEA,SACA,4KAIA,6CACA,sCACA,eACA,CAAW,EAEX,+CACA,4DACA,gBAEA,EACA,wBACA,OACA,mCACA,gBACA,2BACA,6BAEA,CAAS,EACT,MACA,CACA,8BACA,EACA,qBAA2B,GAC3B,CAD+B,GAC/B,kDACA,QACA,SACA,uBAA8C,IAAS,KAEvD,QADA,KACA,CACA,SACA,CACA,QACA,CAAO,CACP,CACA,IAAa,GACb,GADkD,GAClD,CADsD,CAAiB,EACvE,qBAGA,iCACA,6BACA,gBAGA,OAAa,GACb,KACA,EACA,EAHyB,MAGzB,GACA,GAAqB,GAAY,YACjC,GACA,CAEA,EACA,mCACA,qBACA,wBACA,aACA,QACA,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ACA,OACA,aACA,WACA,EACA,OACA,KACA,KAOA,gBACA,GACA,eACA,iBACA,CACA,EAIA,oBACA,WACA,IACA,GACA,WACA,WACA,+BACA,WAEM,eACN,SACA,OAEA,MACA,EAAM,IACN,KAEA,EAAI,iBACJ,GACA,mBAEA,CAeA,kBACA,MAAS,QAAiB,WAC1B,EAMA,aACA,SACA,MACA,QACA,aACA,oBACA,cACA,WACA,eACA,iBACA,kBACA,0BACA,8BACA,6BAjBA,KADA,EAkBA,GAjBA,8BACA,iBACA,CAAG,CAeH,GACA,UACA,GACA,SAEA,CAEA,uCACA,MACA,IA3BA,EA2BA,mBAAwD,GAAU,iBAkClE,GAtBA,KAzFA,cAJA,WACA,QACA,CAEA,EAyFA,KACA,IAZA,WACA,IA7CA,GACA,IAEA,eADA,GA2CA,UACA,SAEA,WACA,0BAEA,OADA,SACA,CACA,CAAS,EACT,4BACA,KAEA,CAxGA,MAA0B,OAAa,KAwGvC,SACA,KAA+B,OAAW,QAhD1C,mBACA,gBALA,SACA,0GACA,EAkD0C,EA/C1C,IACA,CAAG,GApCH,uBAkF0C,KAC1C,qBACA,QACA,SAEA,wBAEA,EAAuB,OAAe,MACtC,cACA,CAAe,EACf,OAGA,uCACA,eACA,GAA8B,OAAmB,KAEjD,MAGA,yFACA,uCACA,EAAuB,OAAoB,IAC3C,oBAEA,OADA,OAES,aACT,OACA,qBACA,cACA,SACA,mCACW,sBAEX,OADA,OACA,2BACA,CAAW,EACX,kBACA,aAEA,CACA,CACA,CACA,QACA,EACA,cACA,SACA,oBACA,mBAEA,EACA,aACA,OAAS,EAAW,EACpB,EAqBA,KAtBoB,QAuBpB,IACA,EACA,aACA,KACA,SACE,EAAW,WACb,aACA,CAAG,CACH,EACA,aACA,uCACA,wCACA,mCACA,iCACA,EACA,aACA,0CACA,2CACA,sCACA,oCACA,EAOA,GACA,gBAAmB,GAAe,CAClC,YAAe,GAAW,CAC1B,iBAAoB,IAAgB,CACpC,iBAAoB,IAAgB,CACpC,kBAAqB,IAAiB,CACtC,iBAAoB,IAAgB,CACpC,oBAAuB,GACvB,EA8B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AC,QAAa,sIACpF,0BACA,8BACA,GACA,0BAEA,6BACA,8CACA,oCACA,CAAK,EAML,GALA,2CACA,iBACA,8BAEA,CAAK,EACL,GACA,IAYA,EACA,EACA,EACA,EACA,EAhBA,GACA,uBACA,kCACA,kBACA,kBACA,iCACA,2DACA,cACA,QACA,0BACA,gCACA,EAMA,mCACA,IACA,OACA,+BA4BA,uBAAyD,IAAiB,KA3B1E,cAEA,GADA,WACA,KAnFA,IAqFA,2CACA,yCACA,uBAAgF,IAA2B,KAC3G,2BACA,8CAGA,kCACA,CACA,CAAW,EAGX,QAbA,EAWA,iCACA,KACA,eAAyD,IAAiB,KAC1E,oCACA,+BACA,YAEA,CACA,uBAAmD,IAAc,IACjE,mCAEA,UACA,EAEA,EAEA,CAAO,CACP,CACA,6BAKA,QAJA,+BACA,KAGA,eAAiD,IAAgB,IACjE,+BACA,oFACA,sCAEA,UAEA,qBAGA,kDACA,uBAA+D,IAAsB,IACrF,sBAEA,QACA,CACA,kCAOA,GANA,2CACA,iBACA,CAAK,EACL,uBArIA,8BAsIA,gCACA,KACA,eACA,yBACA,OACA,gCACA,MACA,CACA,+BACA,yBACA,OACA,SACA,CAAG,CACH,EAEA,gBACA,oBAA8B,EAC9B,aACA,wBAEA,EAAM,EACN,cACA,wBAEA,EAAM,EACN,eACA,wBAEA,EAAM,EACN,kBACA,gBACA,gBACA,uBACA,+BACA,gBACA,0BACA,gBACA,mBAEA,QADA,IACA,eAAyC,IAAO,IAChD,+BACA,OACA,iCACA,IAEA,CAAO,OAEH,EACJ,4BACA,OACA,KACA,MACA,CAAK,EAEL,IAEA,uBC7SA,gBACA,eACA,aACA,SAGA,eACA,eACA,SAGA,QACA,EAEA,gLACI,EAAY,6BACZ,EAAc,+BAClB,cACA,aAEA,QADA,EACA,kCAAwE,IAAa,IACrF,kBAcA,MAZA,2CACA,cACA,YACA,YACA,EACA,uBACA,gBACA,sBACA,yBACA,0BACA,gBACA,EACA,CACA,CACE,OAAc,MAChB,kBA4JA,OA3JA,uBACA,WAEA,gCA/CA,SADA,EAgDA,mBA/CA,mCACA,qBA8CA,MACA,IAjDA,EA8DA,EACA,EAdA,aACA,SACA,gBACA,+BACA,0BACA,QACA,UACA,oBAEA,qBACA,6BACA,4BACA,oBAGA,YACA,4BAAmD,EAAY,IAC/D,oBAD+D,CACjB,GAC9C,uBAD0D,MACN,GACpD,yBADkE,CAClE,CAAkD,EAAY,KAE9D,mBAF8D,KAE9D,IACA,6BAEA,iBACA,gBACA,sDACA,kBAEA,GADA,cACA,eACA,KACA,MACA,CACA,sBACA,OACA,YACA,YACA,CACA,CAAS,YACT,IACA,CAAS,CACT,EAgDM,EAAW,GACjB,MADiB,IA/CjB,cACA,MACA,KACA,MACA,CAGA,cACA,sBACA,OACA,YACA,CACA,CAAW,YACX,IACA,IACA,CAAc,SACd,IACA,CACA,CAAW,CAEX,EA6BA,WA5BA,YAEA,GADA,6BACA,GACA,uCACA,GACA,iBAEA,oCACA,eACA,YACA,CACA,MACA,wCACA,GACA,iBAEA,qCACA,eACA,YACA,CACA,IACA,IACA,CAAU,SACV,IACA,CACA,EAIA,gBACA,cACA,6BACA,uBACA,CAAO,CACP,CACA,EACA,uBACA,KACA,gDACA,kEACA,0BAEA,EACA,+BACA,mBACA,gBACA,EACA,iCACA,WACA,EAAuB,OAAQ,GAAG,iBAClC,yBACA,qBACA,CAAO,YACP,cACA,aACA,CAAO,CAEP,EACA,kCACA,mBACA,gBACA,EACA,oBAEA,iBACA,iBACA,kBACA,OACA,cACA,iBACA,6BACA,gBACA,wBACA,MACA,QACA,kBACA,gBACA,EAAa,OAA6B,MAI1C,OAAwB,eAAmB,CAD3C,EACqD,OAAQ,GAAG,IAChE,qBACK,YACL,MAAa,EACb,WAAkB,CAClB,EAAM,EAAI,QAFe,IAEf,WADsB,CACtB,GAAmD,eAAmB,iCAAiE,eAAmB,SACpK,EACA,CACA,CAAC,CAAC,WAAe,EACjB,gBACA,0BAEA,CAAG,CACH,2BAEA,CAAG,CACH,QACA,oBACA,cACA,8BACA,aACA,mBAEA,CAAG,CACH,yBACA,SACA,mBACA,aACA,EACA,aACA,eAAkB,MAAc,CAChC,gBAAmB,MAAc,CACjC,KAAQ,QAAgB,CACxB,YAAe,OAAe,4BAC9B,SAAY,WAAmB,EAAE,MAAc,CAAE,QAAgB,CAAE,QAAgB,GACnF,2BAA8B,MAAc,CAC5C,QAAW,WAAmB,EAAE,MAAc,CAAE,QAAgB,CAAE,QAAgB,GAClF,QAAW,MAAc,CACzB,sBAAyB,MAAc,CACvC,IAAO,QAAgB,YACvB,MAAS,QAAgB,CACzB,gBAAmB,MAAc,CACjC,QAAW,OAAe,sBAC1B,gECrNO,gBACP,YAA8B,OAC9B,IAVO,EAUP,KAeA,MAfA,CAeA,WAfA,CAeA,IACA,YAhBA,EACA,GAVA,UADO,EAWP,eARA,GACA,CAOA,GAPA,EAAsC,IAOtC,CAPA,KAAsC,MAOtC,CAPsC,WAOtC,CAPsC,KAEtC,GAMA,IACA,oBACA,CACA,SAEA,CAIA,QACA,CC7CA,MAA4B,UAAZ,CAShB,MARA,EADoB,CACpB,GADwB,IACxB,KAD4B,CAC5B,cACA,iCAAiD,IAAO,IAExD,aADA,eACA,2CACA,YAEA,QACA,GACA,qBACA,ECTA,MDYA,KCZe,MDaf,KCbsB,EAAC,EDavB,OACA,WACA,wBACA,4BACA,aDLA,ECKuB,QDLvB,ICKmC,KDJpB,GAAY,CCIQ,KDFnC,iBCEmC,GDFnC,OCEmC,IDEnC,GCDA,uBACA,sBDjBA,ECiBwC,QDjBxC,SCiByD,QDjBzD,iCCkBS,oBAAuB,CAChC,CAuDA,OAtDA,6CACA,0BAGA,cAAuB,GAAY,oBACnC,EACA,oCACA,YAAwB,8BAAiC,IACzD,0BAEA,EACA,gCAGA,OAFA,aAAkC,MAClC,6BACe,EAAU,kBACzB,EACA,iCACA,aAAkC,MAClC,6BACA,SACA,0BACA,KAA6B,EAAU,mBAEvC,QACA,EACA,gCACA,KACA,qBACA,sBAEA,mBAA2C,sBAAyB,UACpE,0BACA,iBAA8B,GAAgB,SAE9C,kBAA2B,yBAA4C,CACvE,EACA,iCACA,cAA0D,KAAc,0CAAmD,CAC3H,kBAAkC,eAClC,uBACA,0BACA,iBAA8B,GAAgB,UAE9C,kBAA2B,8BAAgD,CAC3E,EACA,0CACA,4BACA,EACA,6CACA,sCACA,MACA,gCAEA,EACA,CACA,CAAC,iEEjEM,gBAOP,MANA,qBACA,KAEA,GACA,cAEA,CACA,CElBA,iCAAgE,iBAAqB,CAAG,WAAe,CACvG,cAeO,gBACP,IDLO,IACP,ECIA,GDLO,ECK6B,QDL7B,CCKe,CAAc,YACpC,CADoC,MACpC,sBAA6C,OAAO,EAAS,KAAkB,CAC/E,CAD6D,CDe7D,CApBA,EAAc,cAAQ,YAAe,OAErC,QAEA,WAEA,QACA,cACA,eACa,CACb,mBACA,cACA,YACA,cACA,oBAEA,CAAa,CACJ,CACJ,CAAI,MAET,WACA,UCMA,OAnBA,aACA,eACA,MACA,iBACA,aACA,YACA,sBACA,UACoB,EAAS,QAEhB,EACb,sBACA,UACoB,EAAS,IAE7B,CAAa,CACb,CAH6B,EAI7B,QACA,CAAK,MACL,CACA,wEC3CA,cACA,QACA,CACA,gBACA,aAAiC,KACjC,SACA,KA0DA,MAzDA,CACA,gBACA,KACA,uHAEA,SACA,cAEA,CACA,CAAS,CACT,sBACA,aAEA,OADA,UACA,WACA,uBAAsD,aAAoB,CAC1E,CACA,CAAS,CACT,6BAEA,IADA,KACA,WACA,QACA,KACA,YACA,CACA,GACA,iBAAqC,YAAe,CACpD,kBAAsC,SAAgB,CAEtD,CAAS,CACT,yBACA,KACA,SACA,aACA,QACA,KACA,aACA,GACA,CACA,iBACA,QACA,KACA,YACA,EACA,aAAsC,kCACtC,IACA,GACA,iBACA,UACA,GACA,CAAiB,CACjB,mBAEA,OADA,cACA,CACA,CAAiB,CAEjB,CAAS,CAGT,CACO,gBAEP,OADA,aAAiC,KACjC,MACA,CAEO,cACP,YAA8B,OAC9B,cAEA,OADA,UAAqB,QAAQ,EAAG,gBAAyB,IACzD,CACA,aCxEA,WACA,QACA,QACA,MACA,OACA,SACA,MACA,OACA,SACA,QACA,QACA,SACA,UACA,SACA,MACA,sCGfA,UALA,cACA,oCACA,uBAAgC,IAAO,cACvC,QACA,EACoC,oBAAyB,IAAS,iBAAyB,qBCF/F,UAHA,YACA,4BACA,EACkC,oBAAyB,IAAS,iBAAyB,4BCH7F,MAAuB,EAAQ,IAAuB,EAItD,UAHA,CAD8B,QAC9B,GACA,+BACA,EACqC,oBAAyB,IAAS,iBAAyB,sBCJhG,0BACA,IACA,cACA,UACI,SACJ,gBACA,CACA,wCACA,CAiBA,UAhBA,YACA,kBACA,WACA,YACA,iCACA,mBACA,cACA,qBACA,CACA,cACA,sBACA,CACA,SACA,CAAK,CACL,CACA,EACoC,oBAAyB,IAAS,iBAAyB,4BCzB/F,MAAoB,EAAQ,KAAoB,EAShD,UAT2B,SAC3B,OACA,8CACA,QACA,cACA,gBACA,WACA,CAAG,UACH,EACkC,oBAAyB,IAAS,iBAAyB,sBCT7F,aACA,kEACA,YAAoB,mBAAsB,KAC1C,mBACA,mBAA0B,sCAC1B,CACA,QACA,CAAG,CAAE,oBAAyB,IAAS,iBAAyB,kCAChE,CACA,YAA2B,oBAAyB,IAAS,iBAAyB,sBCJtF,UALA,YACA,0BACA,SACA,CACA,EACyC,oBAAyB,IAAS,iBAAyB,sBCFpG,UAHA,YACA,mGACA,EACmC,oBAAyB,IAAS,iBAAyB,sBCwB9F,UA3BA,cACA,mFACA,YACA,MACA,EACA,EACA,EACA,KACA,KACA,KACA,IACA,+BACA,wBACA,IACA,EAAQ,SAAY,wDAAkE,MACtF,CAAM,SACN,QACA,EAAM,OACN,IACA,0DACA,EAAQ,OACR,YACA,CACA,CACA,QACA,CACA,EACwC,oBAAyB,IAAS,iBAAyB,sBCxBnG,UAHA,WACA,4JACA,EACmC,oBAAyB,IAAS,iBAAyB,sBCA9F,UAHA,WACA,uJACA,EACqC,oBAAyB,IAAS,iBAAyB,2BCHhG,MAAmC,EAAQ,KAAmC,EAY9E,UAZ0C,SAC1C,KACA,oBACA,MACA,EACA,SACA,iCACA,sCACA,QAAgB,WAAc,8BAAkC,4CAChE,CACA,QACA,EAC2C,oBAAyB,IAAS,iBAAyB,sBCHtG,UATA,cACA,oBACA,SACA,sBAAyB,2BACzB,yBACA,WAEA,QACA,EACgD,oBAAyB,IAAS,iBAAyB,4BCT3G,MAAc,iBAAiC,SAC/C,IACA,YACA,EADgB,CAChB,qBACA,QACA,CAAG,CAAE,oBAAyB,IAAS,iBAAyB,WAChE,MACA,IAAU,CACV,mBACA,mBACA,yCACA,aACK,CACL,qCAAiD,CACjD,2BACA,qCACA,iCACA,kBACA,kCACA,QACA,cACA,gBACA,WACA,CAAK,OAEL,IACA,IAAa,IACb,CAAI,SACJ,kBACA,aACA,CACA,CACA,oBACA,IA0EA,EACA,EA1EA,iBADA,iCACA,WAEA,sBACA,OAsEA,EAxEA,aAyEA,IACA,cACA,qDACA,UACA,uBACA,OACA,QACA,OACA,CACA,CACA,wBAAoC,EACpC,iBACA,MACA,eAuBA,OACA,eACA,gBACA,4NACA,4BACA,0EACA,YACA,sNACA,EA/BA,KACA,MACA,kBACA,QACA,CACA,CACA,0CAA0D,4BAC1D,yBACA,0BACA,EAAU,iDACV,IACA,QA/FA,IA+FA,GACA,sBACA,cA/EA,iBA+EA,mBACA,OACA,YACA,YAEA,CACA,oDACA,CACA,EAxGA,CAAK,GACL,CACA,kBACA,IACA,OACA,cACA,eACA,CACA,CAAM,SACN,OACA,aACA,KACA,CACA,CACA,CACA,SACA,uBAEA,cACA,cACA,KACA,cACA,cACA,cACA,SACA,iBACA,WACA,CAAG,EACH,4BACA,gBACA,8BACA,+CACA,cACA,8CACA,kBACA,wBACA,CAAO,CACP,CAAK,CACL,CACA,oBAkBA,EACA,kBACA,oBACA,aACA,4BArBA,oBACA,kBACA,qBACA,YACA,UACA,oFACA,eACA,CAAS,aACT,gBACA,CAAS,gCACT,cACA,CAAS,aACT,uBACA,CAAS,CACT,CACA,QACA,EAMA,QACA,CAAW,CACX,CACA,0BACA,CACA,CAAK,CACL,CA+CA,cACA,OACA,YAEA,8FACA,CACA,cACA,sBACA,4CACA,CACA,cACA,kBACA,aACA,CAAK,kCACL,CACA,cACA,cACA,WACA,sBACA,sCACA,qBACA,SACA,eACA,KAAmB,aAAe,gDAClC,4BACA,EACA,eACA,CACA,CACA,wCACA,CACA,wCACA,QACA,eACA,CAAG,qBACH,QACA,eACA,CAAG,6EACH,0CACA,iEACA,CAAG,oBACH,iIACA,CAAG,qBACH,OACA,SACA,CACA,CAAG,2CACH,YACG,gDACH,wBACA,0BACA,4DACA,8BACA,CAAK,CACL,CAAG,0CACH,WACA,CAAG,4BACH,0BACA,CAAG,qBACH,gBACA,KACA,yBACA,gCACA,KAAa,SAAS,EACtB,cACA,sCACA,CACA,kBACA,CACA,CAAG,yBACH,cACA,kBACA,mOACA,CAAK,CACL,gBACA,aACA,oCACA,gCACA,iBACK,CACL,8BACA,qBACA,WACA,gBACA,uEACA,CACA,mCAA+C,KAAQ,KACvD,yBACA,eACA,qCACA,wBACA,2BACA,yBACA,SACA,gDACA,gDACA,EAAY,SACZ,qDACY,CACZ,4DACA,gDACA,CACA,CACA,CACA,CAAK,CACL,qBACA,mCAA+C,KAAQ,KACvD,yBACA,wEACA,QACA,KACA,CACA,CACA,yEACA,wBACA,wFACA,CAAK,CACL,uBACA,gCACA,mLACA,CAAK,CACL,mBACA,mCAA+C,KAAQ,KACvD,yBACA,wEACA,CACA,CAAK,CACL,kBACA,mCAA+C,KAAQ,KACvD,yBACA,iBACA,mBACA,qBACA,YACA,IACA,CACA,QACA,CACA,CACA,oCACA,CAAK,CACL,8BACA,sBACA,cACA,aACA,SACA,CAAO,qCACP,CACA,CAAG,EACH,CACA,YAAsC,oBAAyB,IAAS,iBAAyB,4BC/SjG,MAAqB,EAAQ,IAAqB,EAClD,EAA2B,EAAQ,KAA2B,EAC9D,EAAiC,EAAQ,KAAiC,CADxC,CAElC,EAAsB,EAAQ,KAAsB,CADZ,CAKxC,UAJ6B,SAC7B,KACA,gCACA,EACiC,oBAAyB,IAAS,iBAAyB,4BCP5F,MAAwB,EAAQ,KAAwB,EACxD,EAAsB,EAAQ,KAAsB,CADrB,CAE/B,EAAiC,EAAQ,KAAiC,CAD7C,CAE7B,EAAwB,EAAQ,KAAwB,CADhB,CAKxC,UAJ+B,SAC/B,GACA,4BACA,EACqC,oBAAyB,IAAS,iBAAyB,4BCPhG,MAAc,iBAAiC,EAW/C,QAVA,cACA,+BACA,4BACA,eACA,6BACA,0BACA,gEACA,CACA,qCACA,EAC8B,oBAAyB,IAAS,iBAAyB,4BCXz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A,IACA,IACA,cACA,aACA,YACA,MACA,IAEA,wCACA,uBAWA,cACA,MACA,8BACA,EAEA,gBACA,IAMA,MANA,UACA,cACA,gBACA,YACA,WACA,WAEA,IACA,GACA,IApBA,IAqBA,kBACA,YAvBA,GAyBA,YAEA,aACA,OACA,IACA,CAFiC,CAEjC,OACA,OAGA,cACA,gCACQ,SACR,WACQ,MACF,IACN,CAAI,SACJ,gBACA,IACA,CACA,EAEA,gBACA,aACA,cACA,aAGA,IAFA,IACA,EADA,cAEA,WACA,MAEA,eACA,qBACA,CAAG,EACH,EAEA,kBACA,QACA,GACA,2BACA,UACA,WACA,qBACA,oBACI,GAAe,oBACnB,uBACA,yCACA,EAEA,cACA,iBACA,IAGA,EAHA,WACA,UAGA,GAFA,OAGA,eACA,EACA,iCACU,QACV,CAAO,EAEP,oBArFA,EADA,EAuFA,uBAEG,CACH,EAEA,cACA,OA7FA,IA6FA,wBAGA,cACA,iBACA,eACA,EACA,6BACM,EAzGN,mBAyGM,UACN,CAAG,CACH,EAEA,kBACA,mBACA,QACA,CACA,EAEA,mBACA,SACA,UACA,SACA,UACA,QArHA,EAsHA,QACA,EAEA,mBACA,YACA,UACA,SACA,IACA,gEACA,WACA,EACA,aACA,OAAwB,SACxB,IACA,MACA,UACA,UAEA,CAAU,SACV,SACA,CACA,CAAO,GAEP,UACA,QA/IA,EAgJA,QAEA,CAAI,SACJ,IAAqB,QAAa,KAClC,EACA,EAGA,OAcA,GAZA,cACA,UACA,KACA,UACA,cACA,IACA,kBACA,CAAM,SACN,OACA,CACA,GAEA,UAGA,eACA,QACA,OACA,QACA,YACA,UACA,gBACA,aACA,MAlLA,EAmLA,UACA,CAAK,CACL,GAIA,mCACA,cACA,eASA,OARA,YACA,cACA,eACA,2BA/LA,IAgMA,2BACA,aACA,MACA,CAAK,EACL,SACA,CAAG,EAEH,aACA,YACA,MACA,gBACA,qBACA,mBACA,EAEA,kBACA,oBACA,SACA,IACA,EAEA,iCACA,SAEA,GAEA,yBACA,WACA,2BACA,UACA,CAAS,WAET,CAAO,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A,GACA,cACA,GACA,EACA,KACA,SACA,GACA,MACA,MAEA,CACA,OAAU,QAAY,KACtB,YACA,oBACA,KACA,WACA,mBAEA,CACA,QACA,CASA,qBACA,IACA,qBACA,sBACA,gBACA,WACA,CAAI,EACJ,oBACA,0CACA,2BACA,YACA,WACA,UACA,CAAG,EACH,CACA,IACA,IACA,CAAI,SACJ,IACA,KACA,IACA,YAAkB,WAA4B,KAC9C,IACA,OACA,KACA,CAAM,KACN,CACA,IACA,IACA,OACA,QACA,CAAM,SACN,IACA,IACA,mBACA,YACA,WACA,iBACA,QACA,WACA,UACA,YACA,UACA,CACA,CAAK,EACL,cACA,cACA,GACA,KACA,KACA,QACA,KAEA,EACA,WACA,IACA,qBACA,aACA,gBAEA,SACA,yCACA,YACA,WACA,UACA,CAAW,WAEX,CACA,IACA,IACA,CAAU,UAEV,KAEA,CACA,OACA,IACA,IACA,YACA,WACA,gBACA,CACA,EAUA,sBACA,KACA,aACA,OAEA,IACA,IACA,IACA,WACA,QACA,WACA,WACA,CAAI,EACJ,CACA,+BACA,0BACA,4BACA,iBACA,YACA,CAAI,CAAE,OAAQ,MACd,EAAwB,QAAgB,IAExC,MADA,sCACA,GACA,EAA6B,QAAgB,0BAC7C,oKACA,WACA,eACA,UACA,CAAG,GACH,kBACA,IACA,IACA,uBACA,0BACI,YACJ,uEACA,mGACA,IACA,GACA,EAAI,EAIwB,QAAgB,wHAC5C,WACA,OACA,eACA,UACA,CAAG,KACH,OACA,4BACA,wCACA,gCACA,oCAEA,CAyTA,gBACA,OACA,mBACA,sBACA,yBACA,oBAEA,CACA,cACA,OAAS,IAAK,iBACd,CAiMA,sBACA,IACA,YACA,WACA,WACA,CAAI,EACJ,mDACA,EAAe,QAAO,IACtB,EAAoB,QAAY,IAChC,EAAgC,MAAX,QAAW,IAChC,kCACA,YACA,EAAmB,QAAQ,MAG3B,CACA,WACA,YACA,gBACA,CAAI,oBACJ,WACA,YACA,kBACA,EAAI,CACJ,uBACA,yBACA,+BAKA,OAHA,uBACA,qBAEA,G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OACA,MACA,QACA,SACA,CAAM,EAIN,GAHA,GACA,IAEA,OACA,OAEA,MAAqB,QAAK,IAC1B,EAAuB,QAAK,sBAI5B,GACA,WAFA,mBAFwB,QAAK,uBAE7B,OADsB,QAAK,IAC3B,KAGA,UAAiB,QAAG,GAAI,QAAG,SAC3B,EACA,KACA,cACA,6BACA,UACA,MACA,WAEA,EAOA,QAJA,kBACA,UACA,CAAW,KAIX,CACA,uCAQA,IAEA,IACA,CAIA,IACA,8BACA,KAEA,qBACO,CACP,CAAM,SACN,+BACA,CACA,YACA,EACA,IACA,CACA,EA6BA,UACA,KACA,OACA,IACA,yBACA,SACA,qBAGA,eACA,wBACA,6BACA,KACA,0BACA,CAAS,GAET,GACA,CAAK,EACL,OACA,aAEA,cAGA,yBACA,GACA,SAEA,IACA,WACA,YACA,IAEA,IACA,0BACA,IACA,IACA,KACA,MACA,cACA,qCACA,oCACA,CAAK,EACL,aACA,4BACA,OACA,GACA,uBAEA,CACA,CAUA,IAAM,EAAiB,EASjB,ED2GN,YAIA,OAHA,CC5GY,GAAG,CD4Gf,KC5GuB,ED6GvB,MAEA,CACA,cACA,UACA,YACA,QACA,IACA,IACA,IACA,YACA,iBACA,CAAQ,EACR,sBAIA,kFACA,GAEA,CACA,QACA,QACA,MACA,KACA,WACA,CACA,CACA,CACA,CACA,EC5HM,EDmIN,YAIA,OAHA,GCpIc,EDoId,GCpIqB,CDoIrB,GACA,OAEA,CACA,aACA,UACA,YACA,IACA,IACA,IACA,YACA,CAAQ,EACR,CACA,cACA,eACA,WACA,OACA,IACA,IACA,IACA,CAAc,EACd,OACA,IACA,GACA,CACA,CACA,CAAS,CACT,KACA,CAAU,QAAQ,MAClB,GACA,IACA,GACA,EACA,eACA,EAAwB,QAAW,CAAC,QAAO,KAC3C,EAAuB,QAAe,IACtC,OACA,OACA,MACA,2BACA,2BACA,SACA,SACA,EAAwB,QAAK,OAC7B,CACA,MACA,2BACA,2BACA,SACA,SACA,EAAyB,QAAK,OAC9B,CACA,YACA,KACA,MACA,KACA,CAAO,EACP,OACA,KACA,MACA,QACA,QACA,SACA,MACA,KACA,CACA,CACA,CACA,CACA,CACA,EClMM,ED9RN,YAIA,MC0RU,CD7RV,EC6Ra,GD7Rb,CC6RmB,GD7RnB,GACA,OAEA,CACA,YACA,UACA,gBACA,IAqDA,IAyBA,EA7EA,IACA,YACA,iBACA,QACA,mBACA,WACA,WACA,CAAQ,EACR,CACA,cACA,eACA,qBACA,6BACA,mCACA,mBACA,KACA,CAAQ,CAAE,OAAQ,MAMlB,wCACA,SAEA,MAAmB,QAAO,IAC1B,EAA8B,QAAW,IACzC,EAA8B,QAAO,QACrC,mDACA,aAAsG,QAAoB,KAAsB,QAAqB,KACrK,YACA,QACA,UAAmC,QAAyB,WAE5D,eACA,eACA,KACA,4CAIA,GAHA,GACA,aAEA,GACA,MAAsB,QAAiB,QACvC,uBACA,CAOA,GANA,SACA,YACA,WACA,CAAO,EAGP,mBAEA,+CACA,OACA,KAEA,OACA,MACA,QACA,WACA,CAAa,CACb,OACA,WACA,CACA,EAKA,gHAGA,MACA,UACA,cACA,CAEA,MASiB,MATjB,gBACA,MACA,MAA4C,QAAW,cACvD,cAGA,OACA,CACA,QACA,CAAiB,+GACjB,GACA,MAEA,KACA,CACA,uBACA,GAEA,CAEA,SACA,OACA,OACA,WACA,CACA,CAEA,CACA,QACA,CACA,CACA,ECgLM,EDsQN,YAIA,MC1QU,CDuQV,ECvQa,GDuQb,CCvQmB,GDuQnB,GACA,OAEA,CACA,YACA,UACA,gBACA,QAmBA,EACA,EAnBA,IACA,YACA,QACA,WACA,WACA,CAAQ,EACR,CACA,cAAwB,CACxB,KACA,CAAQ,CAAE,OAAQ,MAClB,eACA,EAAmB,QAAO,IAC1B,EAAwB,QAAY,IACpC,EAAiC,MAAX,QAAW,IACjC,CACA,QACA,SACA,CAAQ,UAGR,0BACA,IACA,wFAEA,IACA,4BAEA,uBACA,mBACA,EAAsC,QAAG,WACzC,EAAqC,QAAG,WACxC,0BACA,IACA,IAOA,GANA,+CACA,MAEA,+CACA,MAEA,OACA,MAAqB,QAAG,WACxB,EAAqB,QAAG,YACxB,EAAqB,QAAG,UACxB,EAAqB,QAAG,aACxB,EACA,wBAAiF,QAAG,kBAEpF,wBAAmF,QAAG,iBAEtF,CACA,SACA,KACA,iBACA,iBACA,CAAO,EACP,+CACA,0BACA,CACA,OACA,QACA,CACA,EAEA,EACA,CACA,CACA,EC3UM,EDrKN,YAIA,MCiKU,CDpKV,ECoKa,GDpKb,CCoKmB,GDpKnB,GACA,OAEA,CACA,YACA,UACA,YACA,IACA,QACA,CAAQ,EACR,CACA,6BACA,KACA,CAAQ,CAAE,OAAQ,MAClB,UACA,sBACA,CAKA,QAJA,WACA,KACA,0BACA,CAAa,EACb,aACA,OACA,MACA,yBACA,oBACA,CACA,CACA,CACA,cACA,CAKA,QAJA,WACA,KACA,cACA,CAAa,EACb,YACA,OACA,MACA,iBACA,YACA,CACA,CACA,CACA,QAEA,QAEA,CACA,CACA,CACA,ECyHM,ED9eN,KACA,aACA,CC4eW,GAAG,ID5ed,CC4eqB,CD3erB,YACA,IACA,IACA,IACA,YACA,QACA,WACA,WACA,iBACA,CAAM,EAEN,CACA,UACA,YACA,CAAM,CAAE,OAAQ,UAChB,WACA,SAEA,MAA0B,QAAgB,IAC1C,GACA,IACA,GACA,EACA,EAAiB,QAAgB,IACjC,EAAmB,QAAa,IAChC,2BACA,UAGA,iCACA,mDACA,sBACA,8DACA,WAGA,oDACA,iCAMA,mBACA,EAAuB,QAAG,GAjB1B,eAiB0B,IAC1B,EAAuB,QAAG,GAjB1B,mBAiB0B,IAK1B,WACA,aAZA,UAaA,EAAmB,QAAK,CAHxB,EAGwB,KAMxB,YAAiE,MAAZ,QAAY,gCATjE,EASiE,cACjE,MAVA,EAUA,EAVA,EAUA,MACA,OACA,WACA,MACA,MACA,mBACA,OACA,iBACA,CAAS,CACF,CACP,OACA,CACA,CACA,CAAC,EC+aK,EDoKN,YAIA,OAHA,QCrKmB,CDqKnB,GACA,MCtK+B,CDwK/B,CACA,UACA,MACA,IACA,IACA,IACA,YACA,QACA,iBACA,CAAQ,EACR,CACA,WACA,cACA,eACA,CAAQ,CAAE,OAAQ,MAClB,GACA,IACA,GACA,EACA,EAAwB,QAAW,IACnC,EAAuB,QAAe,IACtC,OACA,OACA,EAAwB,QAAQ,MAChC,sBACA,WACA,WACA,EAAQ,CACR,WACA,YACA,MAEA,MACA,+BACA,0CACA,2CACA,IACA,IACU,KACV,KAEA,CACA,MACA,QACA,+BACA,0BAAsD,QAAO,KAC7D,0FACA,2FACA,KACA,IACU,KACV,KAEA,CACA,OACA,MACA,KACA,CACA,CACA,CACA,EC9NM,EAAe,UAIrB,cACA,GACA,EANqB,OAMrB,EACA,MAEA,GACA,cACA,IACA,EACA,OAAS,EAAiB,KAC1B,KACA,GAF0B,MAE1B,CACA,CAAG,CACH,sJCvuBA,+BAA8C,iBAAe,CAAG,WAAS,CAIzE,oBAUA,EACA,EACA,EAXA,SACA,SAEA,sBACA,SAEA,qDACA,SAKA,6BACA,qBAEA,GADA,eACA,kBACA,QAAuB,EAAU,CAAV,KACvB,iBACA,SAGA,QACA,CAGA,GADA,GADA,mBACA,UACA,sBACA,SAEA,QAAqB,EAAU,CAAV,KACrB,QAAa,6BACb,SAGA,QAAqB,EAAU,CAAV,KAAU,CAC/B,WACA,gCAGA,cACA,QAEA,CACA,QACA,CACA,iBACA,CAEA,oBACA,2BACA,EAGA,CADA,qCACA,mBACA,CAEA,gBACA,WACA,wBACA,CAEA,cACA,MAAc,QAAY,IAI1B,OAHA,OACA,WACA,CAAG,EACH,CACA,CAMA,cACA,YACA,OAEA,IACA,qBACA,sBACA,gBACA,WACA,UACA,YACA,WACA,CAAM,EAAI,CACV,eACA,uBACA,OACA,CAAI,EACJ,MAA0B,UAAc,EACxC,IACA,IACA,WACA,YACA,iBAAsB,CACtB,eACA,CAAG,EACH,MAAkD,UAAc,IAChE,QACA,KAEA,SAAsC,UAAc,OACpD,MAAoC,UAAc,OAClD,EAAuB,aAAiB,KACxC,gBACA,YACA,KAEA,CAAG,KACH,EAAsB,aAAiB,KACvC,gBACA,YACA,KAEA,CAAG,KACH,OACA,OACA,EAAuB,QAAY,OACnC,EAAsB,QAAY,OAClC,EAAkB,QAAY,IAC9B,UACA,OACA,OACA,OACA,EAAiB,aAAiB,MAClC,0BACA,OAEA,OACA,YACA,WACA,YACA,CACA,YACA,uBAEI,QAAe,iCACnB,OACA,KAKA,2BACA,CACA,8BACA,YACQ,WAAkB,MAC1B,IACA,CAAS,EAET,CAAK,CACL,CAAG,cACH,OACA,iCACA,0BACA,OACA,KACA,eACA,EAAO,EAEP,CAAG,MACH,MAAuB,QAAY,KACnC,OACA,aACA,KACA,YACA,GACG,IACH,OAGA,GAFA,iBACA,iBACA,MACA,aACA,wBAEA,GACA,CACA,CAAG,cACH,MAAe,SAAa,OAC5B,YACA,WACA,eACA,aACA,EAAG,QACH,EAAmB,SAAa,OAChC,YACA,UACA,GAAG,OACH,EAAyB,SAAa,MACtC,OACA,WACA,OACA,KACA,EACA,eACA,SAEA,wBACA,2BACA,EACA,CACA,KACA,wCACA,wBACA,sBACA,CAAS,EAGT,CACA,WACA,OACA,KACA,CACA,CAAG,2BACH,OAAS,SAAa,OACtB,KACA,SACA,OACA,WACA,gBACA,EAAG,aACH,CAQA,SAIA,EACA,aACA,UACA,MACA,IACA,UACA,UACA,CAAQ,mCACR,GAVA,KAAa,oBAUb,EAVa,WAWb,gBACiB,QAAO,EACxB,kBACA,SACA,CAAW,QAEX,GAEA,EACe,QAAO,EACtB,UACA,SACA,CAAS,QAET,EACA,CACA,GAUA,WACA,GAAK,QAAQ,IACb,cACA,CAAC,CAOD,WACA,GAAK,QAAO,IACZ,cACA,CAAC,CAKD,WACA,GAAK,QAAY,IACjB,cACA,CAAC,CAQD,WACA,GAAK,QAAM,IACX,cACA,CAAC,CAQD,WACA,GAAK,QAAM,IACX,cACA,CAAC,CAkBD,WACA,GAAK,QAAM,IACX,cACA,CAAC,CAkBD,WACA,QACA,cACA,CAAC,8BC7WD,aACA,gCACA,CACA,qBACA,KACA,+BAKA,WACA,CACA,cACA,MACA,uEACA,CACA,cACA,MACA,6FAEA,oBACA,OAGA,2CACA,CACA,oBACA,OAGA,iDACA,CACA,oBACA,OAGA,yDACA,CACA,oBACA,uCAGA,uDACA,CACA,cACA,IACA,WACA,YACA,YACA,UACA,CAAI,KACJ,uFACA,CACA,cACA,wCACA,CACA,cACA,0CACA,IACA,mBACA,CAAM,SACN,QACA,CACA,CAAG,CACH,CACA,cACA,UACA,cAIA,yZACA,CACA,cACA,WACA,mBACA,QACA,SACM,QACN,MAEA,MACA,CACA,WACA,CACA,mBACA,yCACA,8CACA,CACA,cACA,gDACA,CACA,cACA,+BACA,CACA,qBACA,KACA,CACA,wBACA,uBAGA,CACA,qBACA,mBACA,CACA,CACA,cACA,iBACA,SAEA,MAEA,gBAEA,cAEA,cAEA,KACA,oBACA,CA4BA,cACA,oEACA,6IAnBA,kBACA,KACA,aACA,OAEA,YACA,OAEA,eAlBA,KACA,kBACA,KACA,4CAEA,WACA,EAEA,IACA,EASA,GACA,gDACA,OACA,MACA,WACA,8DACA,CACA,4BACA,iPC/IA,sCAGA,WACA,WACA,aACA,aACA,OACA,IACA,IACA,CAAC,CACD,GACA,aACA,aACA,aACA,YACA,EACA,GACA,YACA,WACA,EACA,kBACA,kBACA,CACA,gBACA,iCACA,CACA,cACA,uBAEA,cACA,sBACA,CACA,cACA,qBACA,CACA,cACA,8BACA,CACA,cACA,6CACA,CACA,cACA,cACA,CACA,kBACA,YACA,OAEA,WACA,OACA,OACA,0EAIA,OAHA,8BACA,SAEA,SAEA,cACA,WACA,oBAEA,cACA,sCACA,CAkBA,oBACA,WACA,EAnBA,gBACA,uBACA,mBAGA,UACA,UACA,aACA,kBACA,YACA,YACA,YACA,SATA,iBACA,yBAUA,SAEA,EAGA,oBAOA,OANA,IACA,oBACA,GACA,wBAGA,CACA,CACA,cACA,kDACA,CAUA,cACA,yBATA,CACA,MACA,QACA,SACA,OACA,GAIA,IACA,MACA,QACA,SACA,MACA,CACA,CACA,cACA,IACA,IACA,IACA,QACA,SACA,CAAI,EACJ,OACA,QACA,SACA,MACA,OACA,UACA,WACA,IACA,GACA,CACA,gCCtIA,yCAAuE,MAAkC,EAAI,EAC7G,mBAEA,GADA,OACA,4BACA,aAEA,CACA,2HCAA,cACA,6BACA,MAA2D,OAAkB,IAC7E,QACA,EACA,CAAM,eAAiB,aAAe,mBAEtC,MACA,UAAY,cAAkB,EAC9B,EAAgB,QAAY,OAC5B,EAAoB,QAAY,kBAChC,MAA2B,SAAG,UAA2B,uCAA8C,CACvG,CACA,iBACA,yBACA,EAAyB,YAAgB,CACzC,QACA,UAAc,cAAkB,EAChC,SACA,EAA2B,OAAe,oBAC1C,MAA6B,SAAG,CAAC,IAAI,EAAI,iBAA6B,CACtE,EAEA,iBACA,6BACA,+BACA,EAA6B,YAAgB,CAC7C,QACA,UAAc,mBAA+B,EAC7C,EAAkB,QAAY,OAC9B,EAA2B,OAAe,MAC1C,SAKA,OAJM,WAAe,MACrB,qBAAmC,OAAkB,EACrD,+BAE6B,SAAG,CAAC,IAAI,EAAS,CAAL,EAAK,IAAsB,iBAA+B,CACnG,UAEA,gBAeA,CACA,CAAM,6BAAkF,CAfxF,YACA,kCAWA,OAVqB,aAAiB,MACtC,8BACA,eACA,wCAA0E,EAAe,KAKzF,OAHA,MADA,yBACA,KACA,yDAGA,CAAK,6BAEL,EAIA,EACA,wEChEA,gBACA,wBACA,kBACI,GACJ,aAEA,CACA,iBACA,WACA,SACA,YACA,aAIA,OAHA,yBACA,OAEA,CACA,CAAK,EACL,KACA,WACA,YAAwB,WAAqB,KAC7C,WACA,qBACA,IAEA,YAEA,CACA,CAEA,CACA,CACA,iBACA,OAAS,aAAiB,WAC1B,mFChCA,gBACA,MAAkB,eAAmB,IACrC,MACA,aAAY,QAAuB,EACnC,EAAkB,SAAa,yBAC/B,MAA2B,SAAG,mBAAqB,aAAiB,CACpE,SACA,2BAOA,GANA,YACA,MAAoB,YAAgB,IACpC,cACA,sBACA,kBAAyB,EAAa,2BAA2B,EAAkB,IACnF,EACA,CAEA,mBACA,SAqBA,OACA,eACa,eAAmB,KAEhC,mBACA,gBACA,OAAa,SAAa,CAC1B,MAAiB,WAAW,EAAU,IAAM,aAAmC,CAC/E,MAEA,CACA,EAEA,OADA,cACA,CAjCA,cACA,MAAwB,eAAmB,IAC3C,WACA,WACA,UACA,UAAc,mBAA8B,EAC5C,iBACA,EAAoB,SAAa,yBACjC,MAA6B,SAAG,mBAAqB,aAAiB,CACtE,SACA,2BAQA,GAPA,cACA,qBACA,EAAsB,YAAgB,IACtC,cACA,sBACA,kBAA2B,EAAa,2BAA2B,EAAkB,IACrF,EACA,EAeA,SAEA,MACA,WACA,yBACA,WACA,iBACA,aACA,sBACA,CAAK,EACL,mBACA,4BAA2D,cAAqB,IAEhF,MADA,IACA,WAAkD,EAAU,GAC5D,OAAiB,UACjB,CAAO,GAAI,EACX,OAAa,SAAa,OAAU,WAAW,YAAoB,MAAgB,KACnF,CACA,EAEA,OADA,wBACA,CACA,EArBA,kFCnDA,MAAuB,eAAmB,SAK1C,cACA,MAAoB,YAAgB,IACpC,kBACA,qDEGA,oEAHA,4BAIA,EAA8B,eAAmB,EACjD,eACA,+CACA,gBACA,CAAC,EACD,EAAuB,YAAgB,CACvC,QACA,IACA,iCACA,kBACA,uBACA,iBACA,oBACA,YACA,KACA,CAAM,EACN,EAAoB,YAAgB,IACpC,MAA4B,UAAc,OAC1C,yCACA,KAAsB,UAAc,GAAG,EACvC,EAAyB,OAAe,YACxC,uBACA,4DACA,eACA,oBACA,kDACA,OACA,WA4FA,0BACA,MAAmC,OAAc,IACjD,EAAsC,QAAY,KAClD,EAAyB,QAAY,MACrC,CAAG,EAmCH,OAlCE,WAAe,MACjB,UACA,yBACA,iBACA,EAnIA,sCAqIA,EACA,EACA,CAAc,aAEd,EAEA,GAA8B,gBAC9B,0BACA,yCACA,YACA,sCAA4E,QAAY,GAExF,GAEA,EAAQ,IACR,wCAEA,aACA,EACA,yBACA,mCACA,CAAK,IACL,WACA,uBACA,uCACA,wCACA,CACA,CAAG,QACH,CAEA,qCACA,CACA,EAvIA,IACA,eACA,0CACA,OACA,OACA,OACA,0BACA,CAAK,IACL,EAgIA,mCACA,MAA6B,OAAc,IAC3C,EAAoC,QAAY,KAahD,OAZE,WAAe,MACjB,UACA,sBAEA,EA5KA,gCA4KA,EADA,CAA8B,iBAC9B,CACA,WACA,CAAS,CAET,EAEA,OADA,gCACA,sCACA,CAAG,QACH,CACA,gCACA,8BACA,CACA,EAnJA,IACA,eACA,yCAEA,OACA,OACA,0BACA,CAAK,IAwCL,OD9FA,gBCuDoB,SDvDpB,UACA,MAA0B,OAAc,IACtC,WAAe,MACjB,UACA,kBACA,IAEA,EAEA,OADA,gCAA+D,WAAe,EAC9E,uCAA+E,WAAe,CAC9F,CAAG,OACH,EC4CoB,IACpB,sBAEA,OACA,yBACA,mBACA,KAEA,CAAK,IACD,WAAe,MACnB,KAUA,OATA,IACA,oDACA,6BACA,mCAEA,iDAEA,gBACA,IACA,KACA,sDACA,8BAEA,CACA,CAAK,YACD,WAAe,KACnB,KACA,IACA,mBACA,mDACA,IACA,EACK,OACD,WAAe,MACnB,cAAyC,EAEzC,OADA,+BACA,qCACA,CAAK,KACsB,SAAG,CACxB,IAAS,KACf,CACA,KACA,MACA,OACA,uCACA,WACS,CACT,eAAwB,OAAoB,oCAC5C,cAAuB,OAAoB,kCAC3C,qBAA8B,OAAoB,CAClD,uBACA,uBAEA,EAEA,GAoFA,aACA,yBACA,yBACA,CACA,2BAA+D,EAAU,EACzE,6BACA,qBAAwC,kCAA0C,EAClF,2BAAwD,QAAY,EACpE,EACI,QAA2B,MAE/B,kBAEA,CA/FA,cA1GA,mBA4G6B,YAAgB,SAC7C,MAAkB,YAAgB,IAClC,EAAc,QAAY,OAC1B,EAAuB,OAAe,MAUtC,OATE,WAAe,MACjB,gBACA,KAEA,OADA,kBACA,KACA,oBACA,CAEA,CAAG,eACsB,SAAG,CAAC,IAAS,MAAQ,WAA6B,CAC3E,CAAC,EACD,YAhBA,wFCjHA,IAKA,aACE,WAAe,MACjB,4DAIA,OAHA,4DACA,2DACA,IACA,KACA,OACA,6EAEA,GACA,CACA,CAAG,IACH,CACA,aACA,qCAOA,OANA,4CACA,aACA,uBACA,oBACA,yBACA,6BACA,CACA,4GCxBA,gCACA,kCACA,GAAsB,0BAEtB,EAAiB,YAAgB,SACjC,IACA,UACA,aACA,mBACA,qBACA,KACA,CAAI,EACJ,MAAoC,UAAc,OAClD,EAA2B,OAAc,IACzC,EAA6B,OAAc,IAC3C,EAAgC,QAAY,OAC5C,EAAuB,OAAe,YACtC,EAAqB,QAAY,EACjC,UACA,QACA,cACA,CAAK,CACL,SACA,cACA,CACA,CAAG,UACD,WAAe,MACjB,MACA,kBACA,uBACA,eACA,cACA,YAEA,aAAiD,UAAc,CAE/D,CAAO,eACP,uBACA,6BACA,GACA,eACA,aAAiD,UAAc,CAE/D,CAAO,CAWP,uCACA,wCACA,2BAbO,cACP,wCA+JA,YACA,eACA,2BACA,SAGA,QACA,EArKA,MACA,YACA,YAIA,KACA,GAMA,OADA,gBAA2D,wBAAgC,EAC3F,KACA,0CACA,2CACA,cACA,CACA,CACA,CAAG,iBACD,WAAe,MACjB,MACA,SACA,6BAEA,IADA,cACA,CACA,2BACA,wBACA,mBACA,qBAkDA,mBAAkC,MAAiB,EAAI,EACvD,6BACA,eAEA,GADA,YAAuB,EAAQ,EAC/B,iCAEA,EAuEA,EA9HA,GA8HA,2BA9HA,CAAsE,UAAc,EACpF,4BACA,KAGA,CACA,WACA,2BACA,gBACA,2BACA,wBACA,mBACA,oBACA,oBAA+D,UAAc,EAE7E,2BACA,WACA,CAAS,GACT,CACA,CACA,CAAG,YACH,MAAwB,aAAiB,CACzC,IACA,WACA,SADA,OAEA,uDACA,yBACA,SACA,sBACA,eA2BA,GACA,WAGA,OAFA,OACA,iBACA,EA/BA,EACA,MAIA,kBAGY,oBACZ,mBACA,QAAoC,UAAc,IAJlD,mBACA,QAAqC,UAAc,GAJnD,yBAUA,CACA,CAAK,CACL,gBAEA,MAAyB,SAAG,CAAC,IAAS,MAAQ,mCAA0E,CACxH,CAAC,EAeD,cACA,SACA,uDACA,eACA,oDACA,+CACA,8DAEA,CAAG,EACH,yCACA,QACA,CACA,gBACA,eACA,aAGA,GAA0B,OAAM,EAChC,sDACA,QACA,qBADA,CAEA,iDACA,iBACA,CACA,QACA,EAXA,GAA6B,OAAiB,UAE9C,CAaA,qBAA0B,MAAiB,EAAI,EAC/C,mBAJA,EAKA,6BACA,SAAoB,iBAAqB,EACzC,OANA,CADA,EAOA,aANA,gCAMA,GACA,UACA,CACA,CAlDA,cAxHA,aA2KA,iBAEA,SACA,OACA,OACA,WACA,OACA,WAEA,WACA,UACA,CAAK,CACL,UACA,SACA,cACA,CACA,CACA,IACA,gBACA,aACA,eAIA,OAHA,QACA,cAEA,CACA,6EC5MA,EAAiB,iBAAK,mCACtB,IACA,cACA,SAAsB,UAAc,MAIpC,MAHE,OAAe,MACjB,uBACA,CAAG,MACH,eAA2C,EAAG,KAC9C,4GCFA,EAAa,YAAgB,SAC7B,IAAU,kBAA2C,EACrD,MAAgC,UAAc,KAC5C,OAAe,eACjB,uCACA,SAAqB,cAAqB,CAAiB,SAAG,CAAC,IAAS,MAAQ,WAAmC,SACnH,CAAC,EACD,cARA,6FCSA,MACA,YAAU,cAAoB,EAC9B,WAOA,OAjBA,IAkBA,SAA0B,UAAe,GACzC,EAAoB,QAAa,GAAG,EACpC,EAAyB,QAAa,IACtC,EAA+B,QAAa,SAE5C,OAvBA,EAsBA,wBAtBA,EAuBA,CACA,SACA,oBACA,gCACA,CAAK,CACL,kBACA,gBACA,yBACA,CAAK,CACL,WACA,eACA,CACA,CAAG,CAlCM,YAAgB,QAEzB,CADA,QACA,EACG,IAgGH,OAhEE,WAAgB,MAClB,kBACA,iCACA,CAAG,MACD,OAAe,MACjB,gBACA,YAEA,GADA,MACA,CACA,gBACA,OACA,EACA,WACQ,gCACR,aAGA,GADA,MAEA,mBAEA,aAGA,WACA,CACA,CAAG,QACD,OAAe,MACjB,UACA,EACA,0CACA,MAEA,QADA,WACA,0BACA,qBACA,mBACA,aACA,gCACA,qCACA,oBACA,wCACA,6BAEA,CAAa,CACb,CAEA,EACA,MACA,cACA,wBAEA,EAIA,OAHA,uCACA,wCACA,qCACA,KACA,kBACA,0CACA,2CACA,uCACA,CACA,CACA,CADM,CACN,gBAEA,CAAG,QACH,CACA,qDACA,IAAS,aAAkB,KAC3B,mCACA,IACA,CAAK,IACL,CACA,EAjGA,GACA,0BAA4D,oBAA6B,EAAI,UAAe,SAC5G,EAAc,OAAe,gBAmG7B,GACA,0DACA,mDACA,EACA,MAGA,GADA,mDACA,wCAEA,YAEA,oBA9G6B,IAE7B,MADA,sBACA,YAA4C,cAAmB,QAAU,EAAK,MAC9E,EA6FA,cACA,+BACA,CA9FA,kICFA,EAlBA,CACA,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,OACA,MACA,KACA,CACA,eACA,MAAe,YAAgB,SAC/B,YAAY,QAA6B,EACzC,IAA2B,IAAI,GAI/B,MAHA,4BACA,oCAE2B,SAAG,IAAS,WAAsC,CAC7E,CAAG,EAEH,OADA,2BAAkC,EAAK,EACvC,CAAW,WACX,CAAC,GAAI,EACL,gBACA,GAAc,WAAkB,wBAChC,uFCjCA,EAAW,YAAgB,SAC3B,aAAU,QAAyB,EACnC,EAAwB,UAAc,YACtC,YACA,MACA,uBACA,WACA,MAIA,EAHA,EAAY,QAAc,YAA+B,UAAc,YACxD,gBAAoB,2BAKnC,MAA2B,SAAG,IAAc,oBAA2C,gBAAoB,IAAe,cAAkB,kBAA0C,CACtL,CACA,MAAyB,SAAG,IAAc,sBAA2C,CACrF,CAAC,EACD,qBACA,MAAgB,YAAgB,SAChC,aAAU,QAAyB,EACnC,GAAM,gBAAoB,KAC1B,eAuCA,GACA,0DACA,mDACA,EACA,MAGA,GADA,mDACA,wCAEA,YAEA,kBACA,EAnDA,GACA,EAeA,cACA,OAA0B,MAC1B,gBACA,WACA,OACA,mBAEA,KACA,cACA,QACA,OACA,EACQ,GACR,SAEM,YACN,MAAkC,WAC5B,iBACN,sCAEA,CACA,OAAW,UACX,EArCA,WAIA,OAHA,SAA0B,UAAc,EACxC,SAAkC,OAAW,SAElC,cAAkB,KAC7B,CACA,OAAS,UAAc,YAAuB,UAAc,gBAC5D,CAAC,EACD,0BACA,iBAAmB,EAAU,GACJ,SAAG,CAAC,UAAS,WAAI,EAAU,EAEpD,cACA,OAAS,gBAAoB,eAC7B,gECvCA,cACA,MAAsB,QAAY,IAIlC,OAHE,WAAe,MACjB,WACA,CAAG,EACM,SAAa,kCACtB,0ECLA,YACA,OACA,cACA,gBACA,EACC,EACD,SAkBA,UACA,cACA,WACC,EACD,MAA4B,UAAc,IAC1C,MACA,EAAuB,QAAY,IACnC,EAAuB,OAAc,IAOrC,OANE,WAAe,MACjB,gBACA,KACA,YAEA,CAAG,UACH,CACA,EAjCA,aAAyE,aAAuB,EAChG,aACA,QACA,EAAuB,OAAc,IAarC,SAZmB,aAAiB,CACpC,IACA,MAEA,2BADA,EACA,KACA,WACA,EAAQ,IACR,IAEA,CAAK,CACL,WAEA,gECvBA,uBAAuD,iBAAqB,MAC5E,2ECAA,cACA,SAA0B,UAAc,SA+BxC,MA9BE,OAAe,MACjB,MACA,GAAgB,0CAA0D,EAC1E,iCAQA,EACA,EARA,sBAGA,UAFA,OAKA,WAGA,wBACA,sBACA,0BACA,eACA,eACU,IACV,gBACA,iBAEA,SAAkB,WAAe,CACjC,CAAO,EAEP,OADA,aAAwC,iBAAmB,EAC3D,kBACA,CACA,CADM,CACN,OAEA,CAAG,MACH,CACA,2EC0BA,MA3DA,cAAiC,GAAY,CAC7C,IACA,CACA,iBACA,CACA,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,uBACA,2BACA,IACA,CAAK,CACL,CACA,kBACA,0BACA,QAEA,+CACA,CACA,8FCzDA,gBAA6B,GAAS,CACtC,IACA,GACA,cACA,GACA,QACA,6BACA,wBACA,WACA,wBACA,2BACA,iBACA,CACA,cACA,eACA,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,iBACA,QAAoB,QAAa,EACjC,OACA,wBAGA,2BAFA,6CAIA,eACA,SAAyB,qCAAqC,CAC9D,CAAO,CACP,aACA,SAAyB,aAAe,CACxC,CAAO,CACP,gBACA,SAAyB,gBAAkB,CAC3C,CAAO,CACP,4BACA,mCACA,qCACA,+BACA,CAAK,EACL,oCACA,sBACA,IACA,OACA,SAAyB,sCAAsC,EAC/D,gCACA,EACA,MAEA,uCACA,wBACA,SACA,eACA,UACA,YACA,UACA,CAAW,CAEX,CACA,4BAiBA,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,EAAM,OACN,qBACA,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,oBACA,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,iDCxJA,MA5EA,WACA,SACA,IACA,MACA,GACA,EACA,MACA,GACA,EACA,qBACA,MACA,EACA,UAEA,OACA,IACA,CAAO,CAEP,EACA,OACA,QACA,KACA,UACA,OACA,OACA,cACA,IACA,CAAW,CACX,CAAS,CACT,CAAO,CAEP,EACA,OACA,UACA,KACA,KACA,IACA,KACA,EAAQ,SAER,GACA,GAEA,CACA,QACA,CAAK,CAIL,cACA,SACA,OACA,OACA,CAAS,CACT,EAEA,WAKA,sBACA,GACA,CAAK,CAKL,2BACA,GACA,CAAK,CACL,iBACA,GACA,CACA,CACA,6ECxBA,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,yGCxCA,gBAA0B,GAAS,CACnC,IACA,GACA,GACA,GACA,GACA,cACA,GACA,QACA,WACA,yBACA,2BACA,kBACA,gBACA,yBACA,2BACA,iBA8UA,GACA,qEACA,aACA,gGACA,OACA,OACA,kBACA,gCACA,WACA,mBACA,iBACA,oBACA,wBACA,eACA,iBACA,6BACA,kBACA,CACA,EAhWA,cACA,4BACA,iBACA,CACA,WACA,yBAEA,cACA,uBACA,CACA,cACA,cAAqB,iBACrB,sCACA,CACA,iBACA,wDACA,oBAEA,CACA,aACA,MAAiB,QAAW,iCAO5B,OANA,SACA,OACA,eACA,2BACA,gBACA,CAAK,EACL,CACA,CACA,cACA,SAAqB,0CAA0C,CAC/D,CACA,UACA,uBAEA,OADA,mBACA,SAAkC,IAAI,QAAQ,IAAI,mBAClD,CACA,UACA,gBACA,aAAkB,UAAc,CAChC,CACA,QACA,eACA,sBACA,CACA,WACA,2BACA,GAAkC,KAAd,QAAc,yBAElC,CACA,aACA,mDACA,CACA,gBACA,6BAGA,2BACA,oBACA,iCAGA,yBACA,CACA,mBACA,4DAAsE,QAAc,4BACpF,CACA,UACA,2DACA,YAAwB,iBAAsB,EAC9C,mBACA,CACA,WACA,yDACA,YAAwB,iBAAsB,EAC9C,mBACA,CACA,eACA,6BACA,uBACA,sBACA,gBAA2B,2CAA8C,EAEzE,CACA,kBACA,6BACA,+CACA,wBACA,UACA,QACA,gBAAmC,UAAc,EAEjD,uBAGA,mBAEA,gBAA2B,6CAAgD,EAE3E,CACA,oBACA,6BAEA,aACA,0BACA,SAAuB,kBAAoB,CAE3C,CACA,WACA,oCACA,8CACA,aAAsB,UAAc,OAC5B,WAER,OADA,wBACA,gBAMA,GAHA,GACA,mBAEA,uBACA,gDACA,GACA,0BAEA,CAQA,0BACA,MACA,kCACA,cACA,SACA,WACA,SAEA,CAAO,CACP,EAkBA,GACA,eACA,qBACA,uBACA,iBACA,QAtBA,KACA,MAAsB,QAAa,iBACnC,GACA,uBACA,sBAIA,CAFA,KACA,WACA,wBACA,uBACA,EACA,EACA,MAGA,IACA,CAOA,EACA,KACA,+BACA,EACA,MAEA,mBACA,gFACA,SAAuB,uCAAiD,EAExE,UACY,QAAgB,eAC5B,SACA,aACA,OACA,CAAS,EAEE,QAAgB,MAC3B,yBACA,EACA,MAEA,2BACA,gBACA,EACA,OAGA,2BACA,kBAEA,4BACA,EA+CA,OA9CA,QAAoB,QAAa,EACjC,iCACA,aACA,sBACA,cACA,eAMA,WAA+B,gBAAgB,qBAC/C,MACA,CACA,IACA,eACA,CAAU,SACV,KACA,MACA,CACA,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,kCACA,aACA,CAAK,EACL,eACA,CACA,MAmEA,YAlEA,IACA,eACA,aACA,OACA,KACA,iCACA,2BAEA,aACA,OACA,KACA,oBACA,CACA,gBACA,OACA,KACA,sBACA,CACA,aACA,OACA,KACA,0BACA,sBACA,CACA,eACA,OACA,KACA,YACA,oCACA,0CACA,WACA,iBACA,iBACA,eACA,mBACA,oBACA,uBACA,EAEA,aACA,cACA,GAAc,QAAgB,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,GAAa,YACjB,2BACA,iBACA,CAAO,EACP,gBAA2B,mCAAsC,CACjE,CAAK,CACL,CACA,EACA,gBACA,OACA,oBACA,wBACA,YAAiB,QAAQ,oCACzB,gBACA,WACA,gBACA,EAEA,iGCnWA,gBAA+B,GAAY,CAC3C,gBAAyB,EACzB,QACA,cACA,eACA,CACA,EACA,cACA,iBACA,eAA2C,QAAqB,MAChE,cAYA,OAXA,IACA,MAAkB,GAAK,EACvB,WACA,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,GAAa,YACjB,0BACA,cACA,CAAO,CACP,CAAK,CACL,CACA,OACA,qBACA,CACA,SACA,4BAEA,QACA,OAA+B,eAC/B,0BACA,GAAiB,QAAU,MAE3B,CACA,YAAsB,EACtB,oBACA,2CAAuE,QAAU,QACjF,CACA,UACI,GAAa,YACjB,2BACA,IACA,CAAO,CACP,CAAK,CACL,CACA,UACI,GAAa,YACjB,0BACA,WACA,CAAO,CACP,CAAK,CACL,CACA,WACI,GAAa,YACjB,0BACA,YACA,CAAO,CACP,CAAK,CACL,CACA,aCvFA,gBAAkC,GAAY,CAC9C,gBAAyB,EACzB,QACA,cACA,gBACA,kBACA,CACA,IACA,CACA,cACA,UAAyB,GAAQ,EACjC,mBACA,qBACA,oCACA,OACA,CAAK,EAEL,OADA,YACA,CACA,CACA,OACA,WACA,qBACA,UACA,iBACA,aAAkB,wBAAyB,CAC3C,CACA,UACA,WACA,mBACA,uCACA,IACA,aACA,kBAEA,iBAGA,CACA,aAAkB,0BAA2B,CAC7C,CACA,UACA,6DACA,eACA,CACA,WACA,0DACA,uCACA,CACA,QACI,GAAa,YACjB,0BACA,cACA,CAAO,CACP,CAAK,CACL,CACA,SACA,kCACA,CACA,QACA,OAA+B,eAC/B,0BACA,GAAoB,QAAa,MAEjC,CACA,YAAsB,EACtB,+BAA8C,QAAa,MAC3D,CACA,UACI,GAAa,YACjB,2BACA,IACA,CAAO,CACP,CAAK,CACL,CACA,wBACA,gDACA,OAAW,GAAa,OACxB,gBACA,4BAAoE,IAAI,IAGxE,CACA,EACA,cACA,gDACA,2BCxFA,cACA,OACA,gBACA,gBACA,6CACA,0BACA,+BACA,GAAqB,wBACrB,IACA,YACA,SACA,MACA,kCACA,cACA,SACA,iBACA,KAEA,uCACA,IACA,CAAiB,EAEjB,SAEA,CAAW,CACX,EACA,EAAwB,QAAa,2BACrC,iBACA,KACA,wBAEA,2BACA,0BAEA,OACA,oBACA,YACA,iCACA,qBAEA,KACA,cACA,GAEA,UAAkB,GAAW,UAC7B,IAAmC,IAAU,CAAG,IAAQ,CACxD,OACA,qBACA,8BACA,CACA,EACA,gBACA,qBAEA,GACA,QACA,YACA,EACA,GALA,EA+CA,kBAAyC,eAAmB,EAC5D,gEACA,EAjDA,GAKA,KACA,gBACA,EAAU,IACV,kBACA,GACA,4CACA,gBACA,MAEA,eACA,GACA,EAAY,UAEZ,QACA,CACA,qBACA,cACA,sBACA,EACA,CACA,oBACA,oBACA,gBACa,CACb,GAIA,WAEA,CACA,CACA,CACA,oBAAqC,eAAmB,EACxD,iBACA,qCACA,KACA,EACA,KACA,GACA,MACA,CCrFA,YACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,cACA,IAAyB,EACzB,0BAAgD,EAChD,6BAAsD,EACtD,WADmE,aACnE,KACA,gBACA,gBACA,SACA,CACA,QACA,UACA,cAEA,QAA6B,GAAY,qBACzC,IACA,mCACA,kBAEA,CAAK,EACL,QAA8B,GAAa,qBAC3C,IACA,mCACA,mBAEA,CAAK,EACL,CACA,UACA,UACA,cAEA,YACA,eACA,YACA,eACA,CACA,cACA,wBAAsC,4BAAqC,SAE3E,cACA,wBAAyC,sBAA+B,SAExE,gBACA,yCAA+C,EAAU,EACzD,2CACA,CACA,mBACA,oCACA,cACA,yBACA,EACA,kCACA,wBAIA,OAHA,qCAA2D,QAAgB,kBAC3E,sBAEA,kBACA,CACA,CACA,kBACA,yCAAoD,UAAiB,GAErE,GADA,OACA,CAEA,CACA,oBACA,yCAAwD,EAAU,EAClE,cACA,aAEA,gBACA,EAAiB,QAAgB,MACjC,cAGA,wCAA0E,eAA0B,CACpG,CACA,sBACA,OAAW,GAAa,OACxB,6BAAqD,WAAU,IAC/D,EACA,yBACA,EAEA,CACA,iBACA,yCAA+C,EAAU,EACzD,sCACA,CACA,iBACA,cACI,GAAa,YACjB,yBACA,WACA,CAAO,CACP,CAAK,CACL,CACA,kBACA,cACA,GACA,cACA,MAEA,OAAW,GAAa,YACxB,yBACA,SACA,CAAO,EACP,0BAEA,CACA,kBAA4B,KAAoB,EAChD,OAAqC,gBAIrC,mBAHqB,GAAa,OAClC,6CAEA,KAAsC,IAAI,QAAQ,IAAI,CACtD,CACA,sBAAgC,KAAc,EAC9C,OAAW,GAAa,YAIxB,GAHA,+BACA,cACA,CAAO,EACP,uBACA,yBAEA,OACA,KACA,oCACA,EACA,+BACA,CAAK,CACL,CACA,mBAA6B,IAC7B,OACA,KACA,kCACA,EAUA,mBATqB,GAAa,OAClC,0DACA,wBAIA,OAHA,gBACA,WAAkC,KAAI,EAEtC,kDACA,CAAO,IAEP,KAAsC,IAAI,CAC1C,CACA,cACA,iCACA,mBACA,aAEA,4BACA,uBACM,QAAgB,iBACtB,wCACA,CACA,iBACA,+BAAyC,IAAI,QAAQ,IAAI,CACzD,CACA,sBAEA,OADA,WAAuB,EAAqB,SAC5C,UAD4C,KAC5C,GACA,CACA,yBACA,uCAAiD,IAAI,QAAQ,IAAI,CACjE,CACA,2BAEA,OADA,WAAuB,EAAqB,SAC5C,UAD4C,UAC5C,GACA,CACA,+BACA,EAAQ,CAAa,YACrB,gCAEA,iBACA,CACA,gBACA,eAEA,mBACA,eAEA,oBACA,eAEA,qBACA,SACA,CACA,sBACA,YAA4B,QAAO,KACnC,WACA,gBACA,CAAK,CACL,CACA,oBACA,4BACA,KAMA,OALA,cACU,QAAe,gBACzB,IAAmB,0BAEnB,CAAK,EACL,CACA,CACA,yBACA,YAA+B,QAAO,KACtC,cACA,gBACA,CAAK,CACL,CACA,uBACA,4BACA,KAMA,OALA,cACU,QAAe,mBACzB,IAAmB,0BAEnB,CAAK,EACL,CACA,CACA,uBACA,gBACA,SAEA,OACA,mBACA,qCACA,KACA,aACA,EAmBA,OAlBA,aACA,aAAmC,QAAqB,CACxD,WACA,EACA,EAEA,+BACA,gDAEA,yBACA,8BAEA,6BACA,+BAEA,4BAA0E,IAAS,EACnF,eAEA,CACA,CACA,iCACA,cACA,EAEA,CACA,qBACA,2DACA,KACA,aACA,CACA,CACA,QACA,gBACA,eACA,CACA,4GCnRA,gBAAkC,GAAY,CAC9C,iBACA,QACA,eACA,UACA,aACA,mBACA,kBACA,CACA,IACA,UACA,UACA,UACA,GACA,GACA,CACA,KACA,GAGA,GACA,GACA,CACA,GACA,YACA,cACA,oCACA,CACA,cACA,0BACA,0BACA,wBACA,UAEA,oBAEA,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,UAEA,GADA,4CACA,iIAA6I,QAAc,+BAC3J,YACA,yEAGA,UACA,iCACA,eAAmC,QAAmB,kBACtD,gCACA,8BACA,cACA,cACO,EAEP,0BACA,KACA,QACA,EACA,aACA,IAEA,UAEA,qBACA,iBAAwD,QAAc,iCAA+C,QAAc,qBAA6C,QAAgB,mCAAiD,QAAgB,wBACjQ,UAEA,gBACA,iBAAwD,QAAc,iCAA+C,QAAc,mCACnI,UAEA,CACA,uBACA,+CACA,yBAMA,MAoTO,QAAmB,CAzT1B,KAyT0B,mBAzT1B,KACA,UACA,qBACA,uBAEA,CACA,CACA,mBACA,eAEA,iBACA,SAYA,OAXA,2BACA,2BACA,gBACA,cACA,SACA,kBACA,OACA,KAEA,CAAO,CACP,CAAK,EACL,CACA,CACA,aACA,cACA,CACA,kBACA,eAEA,SAAY,MAAa,EAAI,EAC7B,mBACA,IACA,CAAK,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,KACA,UACA,MAAsB,QAAgB,CACtC,uBACA,SAEA,GAAQ,IAAQ,oBAAoC,QAAc,IAClE,OAEA,MAAiB,QAAc,yBAE/B,yBACA,iBACA,mBAEA,CAAK,CALL,IAMA,CACA,KACA,8HACA,CACA,MACA,UACA,WACQ,IAAQ,EAAkB,KAAd,QAAc,gCAAyD,QAAc,wBAGzG,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,GAAqB,MACrB,KAEA,yBACA,0BACA,aACA,gBACA,QACA,IACA,KACA,GAAa,OAAU,mBACvB,EAEA,sCACA,sBAEA,CACA,UAAU,6BAAgC,EAC1C,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,iCACA,gBACA,cACA,OACA,aA2BA,MA1BA,CACA,SACA,0BACA,YACA,wBACA,UACA,mBACA,YACA,OACA,8BACA,QACA,iBACA,iCACA,mCACA,oCACA,oDACA,+FACA,aACA,mBACA,qBACA,kCACA,oBACA,oBACA,eACA,qBAGA,CACA,gBACA,cACA,0CAMA,GALA,sBACA,qBACA,uBACA,kBAEQ,QAAmB,MAC3B,MAEA,WACA,SAsBA,mBArBA,MACA,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,MAHuB,KAAd,QAAc,WAGvB,IAHuB,mCAGvB,EAHuB,oCAGvB,8CACA,CACA,kBACA,GAAoB,KAAd,QAAc,eACpB,kCACA,kCACA,CACA,QACA,CACA,oBACA,cAA+C,KAAd,QAAc,+DAC/C,CACA,gBACA,MAAuB,KAAd,QAAc,+BAA0D,QAAgB,gBACjG,gEC3aA,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,0BACA,eACA,wBACA,sBACA,qBACA,CACA,EACA,cACA,qBACA,CACA,cACA,IAGA,EACA,EACA,EALA,KACA,IACA,KAIA,sBACA,IACA,GACA,CAAG,EAaH,MAA4B,GAAY,yCAAoD,GAAa,yBACzG,mCACA,MACA,IACA,KACA,iBACA,MACA,KAEA,EACA,MACA,IACA,KACA,eACA,MACA,KAEA,EACA,MACA,gBACA,MACA,UACA,IAEA,EACA,aACA,CAAK,YACL,SACA,GACA,gBAEA,CAAK,EAEL,WAIA,EAHA,KACA,OAGA,oCACA,IACA,WACA,CAAM,SACN,mBACA,CACA,qCACA,KACA,OAEA,gBAAqC,IAAQ,MAC7C,kBACA,gCACA,gEACA,UACA,KACA,MACA,CACA,IACA,gBACM,QAAK,aACX,gBACO,UACP,EACA,KAEA,GAEA,CAAO,CACP,CAAK,CACL,EACA,OACA,UACA,OAnFA,IACA,IACA,YACA,YAEA,EA+EA,cACA,MACA,GAEA,YAlFA,KACA,IACA,EAiFA,cAhFA,KACA,IACA,EA+EA,WACA,WACA,IACA,IAEA,YAEA,EAEA,CACA,iDClIA,YACA,cACA,uBACA,wCACA,CACA,aAGA,OAFA,sBACA,mBACA,KACA,yBACA,oBACA,CACA,CACA,eACA,4BACA,CACA,cACA,CACA,gBACA,CACA,6NCpBA,sDACA,aAEA,CACA,gBACA,iCACA,CACA,cACA,uCACA,CACA,gBACA,sCACA,CACA,gBACA,iCACA,CACA,gBACA,iCACA,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,+BAGA,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,CA6BA,gBACA,qDACA,SAEA,eACA,eACA,SAGA,QACA,CACA,cACA,yDACA,CACA,cACA,SACA,SAEA,oBACA,cACA,SAEA,2BACA,MAGA,oCAGA,4CAKA,cACA,2DACA,CACA,cACA,uBACA,eACA,CAAG,CACH,CACA,wBACA,uCACA,yBACI,yBAzEJ,gBACA,SACA,SAEA,iBACA,kBACA,yBACA,WACA,qBACA,WACA,UACA,IACA,YAAoB,IAAW,KAC/B,eACA,sDACA,YACA,MAEA,kBACA,4BACA,IAGA,CACA,uBACA,CACA,QACA,EAwDA,KAEA,CACA,CACA,cACA,QACA,CACA,oBACA,eACA,iCACA,CACA,oBACA,eACA,oCACA,CACA,eACA,sBAQA,8BACA,qBAEA,yBAGA,UAFA,8CAA+D,YAAkB,IAGjF,qFCtNA,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,SAAG,aAAgC,mBAAyB,oFCvBrF,aACA,SACA,OACA,gBACA,IACA,CAAK,CACL,WACA,IACA,CAAK,CACL,YACA,CAEA,CACA,CACA,MAAqC,eAAmB,MACxD,MAAuC,YAAgB,IACvD,IACA,WACC,IACD,OAAkB,UAAc,UAChC,MAAyB,SAAG,mBAA4C,uCAA8E,CACtJ,6ECzBA,mCACA,MACA,aACA,8BACA,kBAEA,2BACA,kCAGA,EAEA,kCACA,2CACA,cACA,CAAC,iGCZD,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,2CAA2F,OAAgB,2BCL3G,kBAQA,MAAiB,QAAc,IAC/B,EAAsB,IACtB,EAA6B,OAA0B,CADnB,EAEpC,0BACA,4DACA,GAEA,kDACE,QAAoB,IACpB,EAA+B,KAC/B,EAA0B,GAC5B,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,QAAa,MACnB,KAAU,QAAe,QAEzB,GAAM,EAAW,CACjB,QADiB,CAEjB,qBACA,4BACA,wCACA,CAAG,EACH,cAOA,OAJA,0DACA,EACA,GAEA,wCACA,2GCvEA,gBAAqC,GAAY,CACjD,EACA,YACA,GACA,cACA,KACA,QACA,UACA,mBACA,mBACA,SACA,CACA,cACA,mCACA,gCACA,CACA,cACA,kBACA,gDACS,QAAmB,kBAC5B,mCACA,8BACA,iBACA,cACO,EAEP,0CAAgE,QAAO,kBAA8B,QAAO,2BAC5G,aACM,mCACN,gCAEA,CACA,gBACA,qBACA,6BAEA,CACA,oBACA,UACA,UACA,CACA,mBACA,eAEA,QACA,8BACA,eACA,UACA,SACA,CACA,YAKA,OAJA,UACA,8BACA,+DACA,0BACA,kBACA,CACA,KACA,sBAAkD,OAAe,EACjE,UACA,KACA,+BACA,+BACA,2BACA,yBACA,mBACA,iBAEA,CACA,MACI,GAAa,YACjB,iCACA,wBACA,kBACA,qBACA,gCACA,sCACU,oBACV,+BACA,oBACA,OACA,QACA,EACA,GAGA,CACA,2BACA,UACA,CAAO,CACP,CAAK,CACL,CACA,wBC1FA,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,oBAAsD,GAAI,CAC1D,CAAK,CACL,KAEA,YAAsB,OAAgB,mCACtC,cAEA,OAAW,mCACX,2EC/BA,gBACA,MAAS,OAAY,GAAU,GAAa,GAC5C,gCCNA,sBACA,qBACA,QAEA,GACA,CACA,aACA,uwBCLO,gBAKA,GACP,OANO,UAOP,OAPO,UAQP,wBACA,wBACA,uBACA,uBACA,qBACA,qBACA,wBACA,6BACA,0BACA,uBACA,qBACA,UACA,wBACA,EAKO,GACP,SACA,SACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,iBACA,qBACA,aACA,eACA,aACA,8BACA,gBACA,EAKO,GACP,SACA,SACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,aACA,kBACA,kBACA,qBACA,EAsBO,kBAGP,MADA,SACA,kCACA,aACA,OAGA,kDACA,yEACA,QACA,eAGA,OAAgB,gBAKhB,MAJA,qBACA,cACA,mBACA,aACA,CACA,CAoBO,kBAGP,MADA,SACA,kCACA,IASA,EATA,SAGA,sCACA,6CACA,iEAKA,OAJA,QAIA,GACA,4BAAsD,KACtD,kCAAgE,KAChE,+BAA0D,KAC1D,kCAAgE,KAChE,uCAA0E,KAC1E,oCAAoE,KACpE,qCACA,CAEA,OADA,cACA,CACA,CAiBO,kBACP,6CACA,iEACA,yEACA,sEAEA,UACA,aACA,aACA,CAAK,KACL,CAqBO,kBACP,6CACA,iEAEA,2BACA,aACA,CAAK,IACL,CAiBO,kBACP,6CAEA,YAAoB,WAAwB,KAC5C,WACA,cACA,2EAEA,YAAwB,uBAAkC,KAE1D,0FACA,8BACA,0DAEA,CACA,CAEA,UACA,eACA,aACA,CAAK,KACL,CAoBO,kBACP,6CACA,iEAEA,2BACA,aACA,CAAK,IACL,CAmBO,kBACP,6CACA,mFAEA,4EAEA,UACA,kBACA,aACA,CAAK,KACL,CAoBO,kBACP,6CACA,iEAEA,2BACA,aACA,CAAK,IACL,CAwBO,gBAGP,MADA,SACA,kCACA,aACA,OAGA,wCACA,8DACA,QACA,QAGA,OAAc,0BAId,OAHA,YACA,cACA,aACA,CACA,CAmBO,kBACP,6CAEA,UACA,uBACA,aACA,CAAK,KACL,CAmBO,kBACP,6CAEA,UACA,kBACA,aACA,CAAK,KACL,CAoBO,kBACP,6CAEA,UACA,oBACA,aACA,CAAK,KACL,CA0BO,kBACP,4CACA,gEAEA,UACA,0BACA,YACA,CAAK,KACL,CAeO,gBACP,oDACA,iEACA,wBACA,wBACA,CAWO,gBACP,8CAEA,+DACA,yBACA,yCACA,UACA,CAWO,gBACP,+CAEA,+DACA,yBACA,yCACA,UACA,CAWO,gBACP,gBACA,CAUO,cACP,8CAEA,YAEA,OADA,cACA,CACA,CASO,cACP,8CAGA,SADA,YACA,YAUO,cACP,8CAGA,OADA,MACA,WACA,CAWO,kBACP,6CACA,2DAEA,gCACA,CAUO,kBACP,2CACA,yDAEA,qBACA,4CAEA,yBACA,yCAEA,YACA,CAaO,cACP,4CACA,CAaO,cACP,iCACA,CAuBO,cACP,sCACA,0DACA,qFACA,sBACA,sDACA,CAAK,CACL,CAuBO,cACP,oCACA,4FACA,CAGO,aACP,4DACA,CAEO,aACP,4DACA,CAEO,aACP,2DACA,CAEO,aACP,2DACA,CAEO,aACP,2DACA,CAEO,aACP,4DACA,CAEO,aACP,yDACA,+DC5uBA,IC6BA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EA0DA,EACA,EACA,EACA,EACA,EDnGA,KACA,YACA,UA0BA,kBACA,cACA,qDACA,CAEA,IADA,mDACA,aACA,eACA,kBACA,wBACA,cAEA,EACA,CACA,MACA,cACA,EAJA,EAKA,CACO,kBACP,oBACA,QACA,MACA,iHACA,OACA,CASO,gBACP,aACA,QACA,MACA,KACA,WACA,CClEA,gBAAyD,sEAAiF,OAAW,iCACrJ,KAAkD,MAAgB,iCAAlE,QAAkI,oDAAqH,CAA7D,sDAA6D,0CAAsD,kFAA7S,QAA6S,EADxJ,sCAAwH,SAAgB,QAAW,eAAyB,OAAS,wBAAwB,aAA4B,SAAc,MAAS,iBAA+B,eAAsB,QAAW,MAAY,yJAAgK,gBAAkD,OAAS,aAAkB,YAAkB,cAAoB,eAAoD,OAA9B,SAA8B,EAAc,eAAuB,KAAe,IAAY,cAAoB,IAAM,+BAA2D,OAAU,gBAEv8B,gBAAuC,oCAAuD,uBAAuC,IAAS,cAAuB,SACrK,cAAiD,EAA3B,IAA2B,2EAAoG,iBAAmB,YAAiB,qGAAsH,IAI/S,OACA,gBAJA,0CAKA,SAJA,s7NAKA,YAJA,o2QAKA,EACA,GACA,6BACA,mDACA,CAAG,CACH,0BACA,gGACA,CAAG,CACH,6BACA,qIACA,CAAG,CACH,oBACA,yCACA,CAAG,CACH,uBACA,+CACA,CACA,EAqFA,aACA,QACA,6CAEA,CACA,aACA,UAYA,MAXA,UACA,IACA,KACI,EACJ,YAEA,IAEA,GACA,cAEA,CACA,CACA,OACA,mBACA,UACA,QACA,SACA,SACA,QACA,WACA,aACA,SACA,SACA,aACA,aACA,IACA,MACA,SACA,IACA,YACA,MACA,aAEA,OADA,IACA,QACA,CACA,0BACA,IACA,MACA,CACA,aACA,CAAG,CACH,mBACA,UACA,QACA,IACA,qBACA,MACA,SACA,IACA,sBACA,MACA,CACA,YACA,CAAG,CACH,4BACA,UACA,QACA,IACA,6BACA,MACA,aACA,YACA,CACA,GACA,CAAG,CACH,oCACA,UACA,QACA,IACA,MACA,SACA,IACA,YACA,MACA,aACA,YACA,CACA,IACA,oBACA,CAAG,CACH,6BACA,UACA,SACA,SACA,aACA,aACA,IACA,YACA,MACA,aAEA,OADA,IACA,QACA,CACA,GACA,CAAG,CACH,iBACA,UACA,MAAa,EACb,QACA,0BACA,SAGA,OAFA,IACA,SACA,cACA,SAGA,OAFA,IACA,SACA,eACA,SAGA,OAFA,IACA,UACA,eACA,SACA,QACA,WACA,OAEA,SACA,MACA,SACA,MACA,wBACA,MACA,SACA,MACA,SACA,MACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,mBACA,MACA,SAGA,OAFA,IACA,aACA,gBACA,SAGA,OAFA,IACA,QACA,gBACA,SACA,QACA,YACA,KACA,WACA,MACA,CACA,YACA,CAAG,CACH,qCACA,WACA,aAEA,IACA,UACA,UACA,QACA,QACA,KACA,SACA,uBACA,SAGA,CACA,KACA,kBACA,CAAG,CACH,0BACA,UACA,QACA,QACA,QACA,QACA,OACA,MACA,UACA,IACA,yBACA,MACA,CACA,0BACA,OACA,MACA,CACA,wBACA,CAAG,CACH,gCACA,WACA,aAEA,IACA,UACA,UACA,QACA,QACA,QACA,QACA,KACA,SACA,0BACA,SAGA,CACA,KACA,kBACA,CAAG,CACH,gBACA,UACA,QACA,MACA,wBACA,MACA,SACA,MACA,SACA,MACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,mBACA,MACA,SAGA,OAFA,IACA,aACA,kBACA,SAGA,OAFA,IACA,QACA,gBACA,CACA,YACA,CAAG,CACH,gBACA,UACA,QACA,OACA,iBACA,MACA,SACA,QACA,OACA,oBACA,MACA,SACA,QACA,OACA,gBACA,MACA,CACA,uBACA,CAAG,CACH,0BACA,UACA,QACA,OACA,iBACA,MACA,SACA,QACA,OACA,oBACA,MACA,CACA,iBACA,OACA,MACA,CACA,+BACA,CAAG,CACH,+BACA,iBACA,OACA,oBACA,MACA,CACA,YACA,CAAG,CACH,wBACA,UACA,QACA,QACA,OACA,oBACA,MACA,CACA,iBACA,OACA,oBACA,MACA,CACA,+BACA,CAAG,CACH,2BACA,UACA,QACA,QACA,OACA,oBACA,MACA,CACA,iBACA,OACA,MACA,CACA,+BACA,CAAG,CACH,2BACA,UACA,QACA,QACA,OACA,wBACA,MACA,CACA,iBACA,OACA,2BACA,MACA,CACA,YACA,CAAG,CACH,+BACA,iBACA,OACA,2BACA,MACA,CACA,YACA,CAAG,CACH,kCACA,iBACA,OACA,MACA,CACA,+BACA,CAAG,CACH,uBACA,oBACA,OACA,uBACA,MACA,CACA,YACA,CAAG,CACH,8BACA,oBACA,OACA,MACA,CACA,+BACA,CAAG,CACH,kBACA,UACA,SACA,IACA,GAAkB,SA2HT,EAET,CA7HwB,MA4HxB,GADe,EAGf,QAEA,OADA,IACA,IACA,SAEA,OADA,IACA,IACA,SAEA,OADA,IACA,IACA,SAEA,OADA,IACA,IACA,SAEA,OADA,IACA,GACA,SAEA,OADA,IACA,IACA,SAEA,GADA,IACA,eACA,aAEA,UACA,SAEA,OADA,IACA,WA+BA,SACA,MACA,sBAGA,OACA,MACA,kBAJA,aAQA,qCADA,OACA,IACA,GA1CA,SAEA,OADA,IACA,GACA,UACA,aACA,aAEA,OADA,IACA,EACA,UAKA,OAJA,IACA,YACA,IAEA,EACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QAEA,YADA,YAGA,CACA,UACA,IApLA,MACA,SACA,KAEA,OADA,IACA,cAEA,OACA,MACA,SACA,MAEA,OADA,IACA,cAEA,OACA,MACA,UACA,SAMA,YALA,YACA,cACA,iBA8UA,IA7UA,EA8UA,2EAAuF,oBA1UvF,CACA,MACA,CAAG,CACH,iBACA,UACA,MAAa,EACb,QACA,0BACA,CACA,SACA,CAAG,CACH,8BACA,UACA,QACA,QACA,MACA,mBACA,MACA,UACA,IACA,8BACA,MACA,OAAa,EACb,0BACA,SACA,QACA,YACA,WACA,MACA,CACA,uBACA,OACA,mBACA,MACA,CACA,YACA,CAAG,CACH,6BACA,WACA,0BAEA,aACA,CAAG,CACH,+BACA,SACA,CAAG,CACH,8BACA,UACA,QACA,MAAa,EACb,0BACA,CACA,YACA,CAAG,CACH,4BACA,WACA,2BAEA,SACA,CAAG,CACH,2BACA,UACA,QACA,QACA,0BACA,CACA,YACA,CAAG,CACH,eACA,YACA,CACA,EACA,gBACA,OACA,OACA,QACA,OACA,QACA,CACA,CACA,cACA,IACA,EADA,OAEA,IACA,UAAwB,gBAA8B,EACtD,cAEA,GADA,MACA,EACA,aAEA,GACA,CACA,CAAI,SACJ,MACA,EAAI,OACJ,KACA,CACA,CA0EA,aAGA,IAFA,SACA,IACA,SACA,UACA,oBACA,aAEA,MACA,CACA,2CACA,CACA,OACA,iBACA,kBACA,UAEA,GACA,CAAG,CACH,8BACA,eACA,iBACA,aACA,UACA,sBACA,MACA,kBACA,IACA,MACA,WACA,SACA,CACA,CAAG,CACH,6BACA,kBACA,UAEA,uBACA,CAAG,CACH,+BACA,kBACA,UAEA,GACA,CAAG,CACH,4BACA,kBACA,UAEA,yCACA,IACA,MACA,CACA,GACA,CAAG,CACH,8BACA,kBACA,UAEA,gBACA,QACA,uBACA,MACA,OAAa,EACb,GACA,CACA,CAAG,CACH,2BACA,kBACA,UAEA,gBACA,QACA,qBACA,MACA,SACA,GACA,CACA,CAAG,CACH,gBACA,EACA,aACA,MACA,eACA,iBACA,gBACA,MAAe,EACf,KACA,KACA,SACA,KAGA,KACA,YACA,cACA,cACA,aACA,UAGA,cACA,QACI,CACJ,oBACA,iBACA,UAEA,2BACA,QACA,YACA,cACA,eACA,CAAO,CAEP,CACA,6BACA,UAEA,EADA,iBACA,mBAEA,yBAEI,CACJ,oBAEA,EADA,QACA,MACM,iBACN,kBAEA,oBAEA,CACA,CACA,aACA,QACA,oBAEA,EADA,QACA,MACI,iBACJ,kBAEA,oBAEA,CACA,qBACA,WACA,6DAEA,4EACA,CACA,aACA,mEACA,CACA,aAEA,OADA,KACA,oEACA,CAIA,cACA,OACA,UACA,UACA,YACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,mBACA,kBACA,EACA,QACA,YAEA,UACA,mCACA,wCACA,CACA,QACA,CACA,cACA,qBAGA,OAFA,eACA,iBACA,CACA,CAgPA,MALA,CACA,MApjCA,GAwjCkB,MAxjClB,KACA,YACA,UACA,KACA,IACA,IACA,IACA,SACA,SACA,SACA,GACA,aAwDA,IAJA,GAIS,SAHT,KACA,KACA,MACS,CACT,MACA,aACA,KACA,QAEA,CACA,IA9DA,aACI,sBACJ,qBACA,SAMA,SACA,WACA,6BACA,oBACA,YAAsB,WAAkB,KACxC,gBACA,UACA,YACA,YAEA,2BACA,QACA,YACA,cACA,eACA,CAAW,CAEX,MAEA,gBACA,cACA,YACA,YAEA,2BACA,QACA,YACA,cACA,eACA,CAAW,CAEX,EAGA,oBACA,EAzCA,CACA,IACA,CAAK,OAEL,CACA,EAiiCA,UA5OA,gBACA,SACA,KAGA,KAOA,GALA,6CACA,UACA,UACA,cAEA,qBACA,SACI,qBACJ,KACA,IAbA,EACA,EAEA,EAWA,EADA,OAEA,IACA,UAA2B,gBAAgC,EAC3D,cACA,QACA,oBACA,IACU,gEACV,cAEA,4BACA,SAEA,CACA,CAAM,SACN,MACA,EAAM,OACN,KACA,CACA,CAcA,OAbA,oBACA,YACI,qBACJ,cAEA,mBACA,MACA,6BACA,4BAEI,oBACJ,mBAEA,SAGA,OACA,WAkBA,OAjBA,UACA,6BACA,eACQ,6BACR,iBAGA,GACA,kBAEA,oBACA,YACM,oBACN,YACM,sBACN,gBAEA,GACA,UACA,YACA,QACA,YACA,QACA,aACA,OACA,mBACA,QAEA,mBACA,UAEA,gBACA,0BAqHA,GACA,mBACA,0DAEA,UACA,IAOA,EAPA,IACA,KAEA,QADA,KACA,IAAoB,WAAkB,KACtC,qBACA,2BACA,CAEA,gBACA,YAEA,UAEA,MADA,YACA,QACQ,CACR,cACA,YACA,uBACA,CAIA,OAFA,QACA,IACA,CACA,EAjJA,YAuDA,GACA,mBACA,0DAEA,UACA,IAwBA,EAIA,EA5BA,IACA,KACA,IAGA,EAHA,oBACA,KACA,OAEA,IACA,UAA2B,gBAAgC,EAC3D,cACA,SACA,eACA,eA+BA,GACA,gBACA,eAEA,6CACA,uBACA,eAEA,mBAAmC,WAAgB,IACnD,+DACA,eAGA,QACA,EA7CA,MACA,SACA,SAEA,KACA,SACA,CACA,CACA,CAAM,SACN,MACA,EAAM,OACN,KACA,CAEA,gBACA,KAAiB,OAGjB,UAEA,IAAkB,EADlB,gBACkB,EAAmB,MAC7B,CACR,cACA,YACA,IAAkB,kBAAiD,CACnE,CAIA,OAFA,QACA,IACA,CACA,EArGA,SAGA,EAxCA,IACA,IACA,CAAG,EAuCH,cAoBA,QAnBA,GACA,OACA,MACA,EACA,GACA,UACA,UACA,YACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,mBACA,kBACA,EACA,KACA,IAAoB,WAAkB,KACtC,WACA,UACA,QACA,QACA,OACA,KACA,QACA,UACA,sBACA,WACA,QACA,CACA,CACA,SACA,QACA,QACA,CACA,UACA,mCACA,sCACA,QACA,CACA,IACA,CA3CA,IA4CA,yCACA,oBACA,CAAK,EAEL,OADA,gCACA,KACA,CA4FA,CAIA,EC5lCA,SAAS,EAAO,GAAiC,EAA3B,IAAN,CAAwC,EAAO,wEAAsF,iBAAmB,YAAiB,qGAAsH,CAAS,CAAP,CAAO,CAwCxT,OACA,EAzCwT,QAExT,YACA,cACA,EAsCA,SArCA,YACA,MAAgB,WAAP,EAAO,YAChB,EAqCA,OArBA,cACA,IACA,EADA,KAEA,QAAkB,IAAe,KACjC,KAEA,QACA,EAeA,eAdA,YACA,4CACA,CAcA,EACA,gBACA,SACA,sCACA,QACA,aACA,6BAEA,iDACA,oBACA,2BAEA,SARA,CASA,CACA,gBACA,iBACA,0BACA,cACA,YACA,wBACA,wBACA,+CAEA,4BAEA,CAOA,sBACA,SACA,KACA,oBASA,OARA,OAEA,OADA,YACA,QAEA,OAEA,OADA,WACA,QAEA,CACA,wCACA,iBAEA,CACA,gBACA,iCACA,CAzBA,2CACA,0BACA,iCACA,+BACA,EA8DA,MAxCA,cAEA,GADA,yBACA,qBACA,+BACA,wCACA,kDACA,gDAMA,IALA,qBACA,MACA,KAEA,KACA,oBACA,gBACA,4BACA,0BACA,eAGA,oBACA,IAVA,EAWA,EACA,EAFA,KAGA,2DACA,6BACA,QACA,GADc,gBACd,QADwC,IAExC,uDACA,yEAKA,IAHA,qCAEA,GADA,mEACA,uCACA,IAAc,kBACd,gBADuC,IAEvC,uDACA,wEAEA,0BACA,EAEA,4HACA,kCAuCA,EA3BA,kBAXA,EACA,EAiCA,GArBA,YADA,SACA,oBACA,qBACA,UA/EA,EA+EA,oEAEA,CAAG,EACH,eACA,WACA,uBACA,mCACA,QACA,EACA,wCACA,QACA,EACA,mCACA,iCACA,iCACA,yCACA,uCACA,uBACA,mBAjCA,EAiCA,qBAhCA,KACA,UACA,mCACA,yBACA,cACA,CAAO,CACP,CAAK,EAEL,GAyBA,0BACA,UAnGA,EAmGA,mEAEA,EAEA,gBACA,SAUA,OATA,yBACA,eACA,wBACA,mDACA,KAEA,CAAK,EACL,MACA,CAAG,EACH,CACA,CA6BA,eACA,qBACA,CACA,gCACA,SACA,KACA,kBACA,eACI,oBACJ,mBACI,6DACJ,qCACA,0CAEA,UA9JA,EA8JA,mFAA2G,iCAE3G,CAF6I,CAE7I,oBACA,qBACA,UAlKA,EAkKA,sFAEA,qCACA,UArKA,EAqKA,mHAEA,WACA,UAxKA,EAwKA,qGAEA,CAAG,EACH,sBACA,qBACA,UA7KA,EA6KA,qFAEA,CAAG,EACH,kCAMA,OALA,yCACA,yCACA,mCACA,mCACA,6BAhEA,IAYA,EACA,EAbA,GACA,SAAgB,CAChB,WAAkB,CAClB,UAAiB,CACjB,WAAkB,CAClB,OACA,UACA,YACA,WACA,YAEA,CAAK,CAGL,cACA,SACA,wBACA,0BAEA,oCAEA,CACA,2BAA6C,IAAgB,KAC7D,wBAEA,QACA,EAsCA,uCACA,CACA,EAEA,sCACA,cACA,sBACA,oBACA,CACA,CAAC,EACD,kCACA,gBACA,sBACA,qBAEA,CAAC,EACD,kCACA,eACA,sBACA,oBACA,CACA,CAAC,EACD,OAnBA,GAmBA,CACA,oBACC,EAYD,mCACA,cACA,QAbA,YACA,qBACA,eACA,kEACA,EAUA,UATA,WACA,WACA,EAQA,UAPA,YACA,eACA,EAMA,WACA,qBACA,SACA,CAAK,CACL,qBACA,YACA,CAAK,CACL,qBACA,YACA,CAAK,CACL,qBACA,YACA,CAAK,CACL,iBACA,QACA,CACA,CAAG,CACH,wBACA,CAAC,EAYD,mCACA,cACA,QAbA,YACA,qBACA,eACA,kGACA,EAUA,UATA,YACA,wCACA,EAQA,UAPA,YACA,4DACA,EAMA,WACA,sBACA,uBACA,CAAK,CACL,sBACA,uBACA,CAAK,CACL,sBACA,uBACA,CACA,CAAG,CACH,wBACA,CAAC,EA2FG,GAAG,+BACP,cACA,QAnFA,YACA,qBACA,IAXA,EAGA,EAGA,EAQA,EAHA,WACA,IACA,KAEA,eAKA,GAHA,OADA,UACA,UACA,WAEA,SACA,oBAEA,SADA,WACA,CAEA,IADA,IACa,IAAa,IAE1B,SADA,UAEA,6BACA,KAEA,iBACA,CACA,YAEA,IADA,IACa,IAAa,IAE1B,SADA,UAEA,IArCA,MADA,EAsCA,kBArCA,oCAqCA,SACA,KAEA,iBACA,CACA,YAEA,IADA,IACa,IAAa,IAE1B,SADA,UAEA,IA5CA,MADA,EA6CA,kBA5CA,OA4CA,SACA,KAEA,iBACA,CACA,CACA,oBACA,KAAS,IAAa,IAEtB,SADA,UAEA,IAnDA,MADA,EAoDA,kBAnDA,OAoDA,SAEA,WAEA,YAEA,EA4BA,UA3BA,YACA,IAEA,EAFA,IACA,IAWA,GATA,qBACA,uBAGA,OADA,UACA,WACA,gBAEA,GADA,aACA,KAEA,iBACA,YACA,8CACA,+CACA,6CACA,CACA,uBACA,EAQA,UAPA,YACA,yFACA,EAMA,WACA,mBACA,2DACA,CAAK,CACL,kBACA,2DACA,CAAK,CACL,oBACA,qBACA,CAAK,CACL,wBACA,yFACA,CACA,CAAG,CACH,uBACA,cACA,iBACA,gBACA,mBACA,uBAEA,CAAC,EACD,sJAsBA,mBAuCI,GAAK,iCACT,cACA,QA9DA,qBACA,UACA,gCAIA,EAyDA,UAxDA,YACA,cAMA,CAJA,SADA,mCACA,SACA,uBACA,eAEA,YACA,wDACI,WACJ,IAEA,kBACA,EA4CA,UAPA,YACA,0FACA,EAMA,UA3CA,cACA,MACA,YACA,UACA,gBACA,YACA,iBACA,YACA,iBACA,YACA,MACI,gCACJ,UACA,gBACA,YACA,iBACA,YACA,iBACA,YACA,MACI,gCACJ,UACA,gBACA,aACA,iBACA,aACA,iBACA,aACA,MACI,uBACJ,aAGA,OADA,iBACA,gCACA,EAUA,wBACA,CAAC,EACD,cACA,gBAA0B,GAAK,GAAK,CACnC,CAD4B,CAG7B,IAHoC,MAGpC,sDACA,8LAoDA,wCACA,cACA,QArDA,mBACA,WACA,mBACA,kBAEA,EAiDA,UAhDA,YACA,MACA,EACA,EACA,EACA,EACA,EACA,EAKA,EAJA,IACA,OAMA,GADA,OADA,gBACA,eACA,2CAIA,GAHA,QACA,UACA,QACA,MACA,iCAKA,GAHA,QACA,QACA,QACA,MAEA,IADA,kBACA,YACA,OAEA,IACA,CASA,OARA,OAGA,MAFA,QACA,WACA,MACA,oBAEA,oCACA,4BACA,CACA,EAQA,gBACA,UARA,YACA,sBACA,CAOA,CAAC,EAID,oCACA,cACA,QALA,YACA,wBACA,CAIA,CAAC,EACD,2EAmFA,qCACA,cACA,QApFA,YACA,qBACA,MACA,EACA,IACA,WAEA,QAAgB,IAAW,IAE3B,KADA,GAFA,GAEA,sBACA,KACA,gBACA,KAEA,aACA,EAuEA,UAtEA,YACA,MACA,EACA,2BACA,WAEA,IACA,KACA,QAAgB,IAAW,IAC3B,YACA,kBACA,iBACA,eAEA,OATA,GASA,qBAaA,OAVA,GADA,WAEA,kBACA,iBACA,eACI,QACJ,kBACA,kBACI,QACJ,iBAEA,iBACA,EA2CA,UAPA,YACA,+DACA,EAMA,UA3CA,YACA,IAEA,EACA,EAHA,KACA,IAGA,WAEA,QAAgB,IAAW,IAC3B,YACA,gBACA,gBACA,GALA,EAKA,UACA,GANA,EAMA,QAEA,cAmBA,OAhBA,GADA,SAEA,gBACA,GAbA,EAaA,WACA,GAdA,EAcA,UACA,aACI,OACJ,gBACA,eACA,eACA,WACI,QACJ,GAtBA,EAsBA,UACA,GAvBA,EAuBA,UACA,GAxBA,EAwBA,KACA,GAzBA,EAyBA,MAEA,CACA,CAUA,CAAC,EACD,mCACA,6BA2BA,mCACA,gBACA,QA5BA,YACA,qBACA,IACA,EACA,EACA,EACA,EACA,EALA,KAOA,mBAA0C,IAAgB,MAG1D,GAFA,EAFA,CAEA,IACA,KACA,wCACA,WACA,iBACA,KAA2C,SAA3C,IACA,CAEA,GAH2C,CAG3C,GACA,kBADA,SACA,SACA,CACA,QACA,EAOA,UANA,YACA,qBAMA,CAAC,EACD,6BAmCA,oCACA,gBACA,QApCA,gBAEA,EACA,EACA,EACA,EACA,EALA,qBAQA,QADA,kBACA,WAA0C,IAAgB,MAE1D,GADA,OACA,gCAEA,IADA,mBACA,OAFA,QAGA,qBAEA,QACA,EAoBA,UAnBA,gBAEA,EACA,EACA,EACA,EACA,EALA,qBAQA,QADA,QADA,EACA,QACA,WAA0C,IAAgB,KAE1D,cADA,QAEA,oBAEA,QACA,CAKA,CAAC,EACD,mCAeA,kCACA,eACA,QAhBA,gBAEA,EADA,qBAGA,SADA,EAEA,WAFA,EAEA,IACA,OAHA,CAGA,aAGA,QACA,EAOA,UANA,YACA,oBACA,CAKA,CAAC,EACD,GA3PA,GA2PA,QACA,iBACA,uBACC,EACD,mCAQA,yIACA,wBACA,YAAuC,EAAE,GACzC,4BACA,mBAAsC,EAAE,eAAe,EAAE,YAAY,oCACrE,eACA,wCACA,CACA,eACA,qBACA,CACA,eACA,oBACA,CACA,eACA,oCACA,CACA,eACA,+CACA,CA8BA,eACA,iPACA,CASA,QAFA,cACA,cACA,KAAgB,OAAS,KACzB,kBACA,cAEA,iBACA,aACA,+BACA,yBACA,iCACA,yBACA,qBACA,+BACA,gDACA,yCACA,qBACA,gBACA,YACA,iBACA,kBACA,uBACA,kBAEA,iBACA,OACA,gBACA,2BACA,oBACA,YACA,+BAGA,OADA,eACA,IA7yBA,EA6yBA,IACA,CACA,iBACA,aACA,CACA,iBACA,aACA,8BAEA,CACA,QACA,qBACA,SACA,mBACA,uCAEA,cACA,oDAGA,OADA,uCAEA,kDAEA,oBACA,oBACA,OACA,kDAEA,eACA,sBACA,cACA,gDAEA,CAAG,CACH,oBACA,OACA,eACA,oDAEA,OACA,OACA,YACA,oEAEA,qBACA,qEAEA,YACA,qEAEA,IACA,uBACA,CAAM,SACN,mCACA,CACA,aACA,CACA,EACA,qBACA,YACA,QAEA,GADA,qBACA,EACA,mBAAoD,IAAqB,KAEzE,IADA,qBACA,mBACA,2CAGM,YACN,oDAEA,YACA,CACA,CACA,qBACA,YAKA,MAJA,aACA,6BAA8C,6CAG9C,MADA,mBACA,OAAgD,IAAkB,KAClE,OACA,eACA,UACA,QAGA,CACA,+BACA,QACA,oBAEA,UADA,kCACA,OAA+C,IAAkB,KACjE,qBACA,oDAEiB,WAAP,EAAO,kCACjB,yBAWA,GAPa,WAAP,EAAO,+BACb,sBAEA,YACA,UACA,OAEA,+BACA,oBACA,mBAAmD,IAAkB,KACrE,oBAGA,gBAGA,uCACA,iBACA,2BACA,yBACA,gCAEA,gBACA,2BACA,gBACA,cACA,YACA,OACA,CAAO,EAEP,OAEA,YAEA,QACA,CACA,eACA,KAEA,MADA,mCAEA,aACI,QACJ,aACA,qCACA,cAGA,iCAEA,UACA,uBACA,mBACA,CACA,mBAGA,IAFA,QACA,iCACA,QACA,YACA,8BACA,8BAEA,mCAEA,aACA,GACA,yCACQ,uBAER,SAKA,IAJA,MACA,iCACA,IACA,eACA,QACA,eACA,wCAGA,KAEA,CAIA,OAHA,+BACA,8BAEA,CACA,CACA,eACA,IACA,EADA,qBAGA,OADA,2BACA,oEACA,KAEA,IADA,2BACA,MAHA,CAQA,CACA,iBACA,MACA,cACI,KACJ,8BAEA,CAwWA,iBACA,MAMA,EALA,QACA,WACA,KAEA,KAEA,kCAKA,IAJA,iBACA,0BAEA,iCAMA,IALA,IACA,wBACA,4BACA,wDAEA,QAIA,GADA,oCARA,CAcA,GAFA,KACA,aACA,aACA,iBACA,aACA,iCACA,QACA,CAOA,GALA,SACA,OA1rBA,EA0rBA,OACA,iBACA,YACA,iCACA,oCACA,iDACM,kBACN,KAEA,OACA,MACA,QACA,WACA,kBACA,WACA,GAGA,CA+OA,uBACA,MACA,EACA,EAIA,EACA,EACA,EACA,EACA,EACA,EARA,IACA,KACA,KA2BA,GApBA,mBACA,qBAEA,WACA,cACA,YACA,cACA,aA/8BA,IA+8BA,EACA,GACA,cACA,KACA,eACA,IACQ,iBACR,IACQ,gBACR,QAIA,MACA,KApJA,YACA,MAGA,EACA,EACA,EAJA,KACA,KAKA,QADA,mCACA,SAgBA,GAfA,cACA,sCAGA,KADA,sCAEA,KACA,oCACI,QACJ,KACA,OACA,oCAEA,MAEA,aACA,GACA,GACA,yCACM,eACN,qBACA,8BACA,oCAEA,0DAEA,EAAI,IACJ,oBACA,SACA,EAQA,qDAPA,kCACA,YACA,wDAEA,KACA,iBAKA,mCAEA,8BACA,YACA,2DAEA,CACA,gBACA,oDAEA,IACA,uBACA,CAAI,SACJ,iCACA,CAYA,OAXA,EACA,QACI,oBACJ,oBACI,QACJ,YACI,SACJ,6BAEA,sCAEA,EACA,EAyEA,IAxEA,YACA,QAEA,QADA,mCACA,SAMA,IALA,iBACA,0CAEA,mCACA,aACA,uBACA,mCAMA,OAJA,gBACA,mEAEA,qCACA,EACA,EAuDA,IACA,aACA,KACA,IACA,eACA,IACU,iBACV,IACU,gBACV,QAGA,KAuCA,GAnCA,GACA,SAEA,QA/+BA,IA++BA,KAEA,EAp/BA,IAm/BA,GAl/BA,IAk/BA,EACA,EAEA,IAEA,yBACA,MACA,aA3SA,gBACA,MACA,EACA,EACA,EACA,EACA,EAUA,EATA,QACA,WACA,IAAgB,CAChB,sBACA,OACA,OACA,OACA,KACA,KAEA,kCAKA,IAJA,iBACA,0BAEA,iCACA,QAOA,GANA,2BACA,4BACA,wDAEA,mCACA,SACA,wBACA,QACA,IACA,yBACA,YAEA,KACA,KACA,MACQ,GACR,KACA,MAEA,wCAA6D,sBAAsB,4CAEnF,cACA,QACM,CAIN,GAHA,SACA,cACA,aACA,QAhwBA,EAgwBA,OACA,MAEA,eAEA,IADA,iCACA,OACA,mCAEA,UAEA,GADA,qCAEA,gGAEA,IACA,yBACA,YAEA,KACA,KACA,KACA,QACA,gBACU,MAKV,OAFA,QACA,WACA,GAJA,6CAAoE,oBAMpE,EAAQ,UAKR,OAFA,QACA,WACA,GAJA,0CAA+D,6CAM/D,CAqBA,GApBA,+BACA,IACA,SACA,cACA,cAEA,OAzyBA,EAyyBA,QACA,EACA,WAEA,YAGA,IACA,sBACA,YAEA,YACA,kCAEA,oCACA,gDACM,kBACN,KAEA,CAUA,OATA,GACA,yBAEA,IACA,QACA,WACA,iBACA,YAEA,CACA,EAgLA,kBAtiBA,KACA,IACA,EACA,EACA,EAEA,EAGA,EACA,EACA,EACA,EAEA,EACA,EACA,EACA,EAhBA,KAIA,QAEA,WAMA,sBAMA,QADA,mCAEA,KACA,KACA,UACI,WAKJ,SAJA,MACA,KACA,KAQA,IAJA,iBACA,0BAEA,mCACA,QAGA,GAFA,WAEA,CADA,oCACA,EAMA,OALA,aACA,QACA,WACA,8BACA,WACA,GACM,EAEA,QACN,iDAFA,qDAIA,WACA,OACA,QAEA,GADA,oCAEA,OACA,aACA,YAGA,SACA,cACA,aACA,OAlhBA,EAkhBA,OACA,QACA,WACA,WACA,iCACA,0BACA,KACA,mCACA,WACA,OA3hBA,EA2hBA,OACA,YAEA,EACA,sBACM,EACN,iCAEA,UAEA,WAEA,KADA,oCAEA,KACA,oCAEA,IAEA,CACA,6DACA,EA2cA,KACA,MAEA,GA7cA,cACA,IA/fA,EA+fA,EACA,EAOA,EACA,EAPA,EA/iBA,EAgjBA,KACA,KACA,IACA,IACA,KAIA,SADA,mCAEA,UACI,UAGJ,SAFA,KAMA,IAFA,gBACA,YACA,OAEA,QADA,sCACA,OAnkBA,IAokBA,EACA,SAnkBA,EADA,EAskBA,kDAEM,MA1hBN,KADA,EA2hBM,IA1hBN,MACA,KAEA,EAuhBM,KACN,MACA,wDAA6E,6BACrE,EAIR,mDAHA,QACA,WAKA,MAGA,UACA,GACA,yCACM,OACN,UACA,GACA,yCACQ,eAGR,aAIA,IAHA,MACA,eACA,iCACA,8BACA,eACA,mCAKA,GAHA,oBACA,iBAEA,OACA,IACA,QACA,CACA,mBA7mBA,IA8mBA,EACA,iCAjnBA,IAknBQ,GACR,GACA,iBAGA,KACA,CAsBA,IArBA,EACA,OACA,KACA,kCACQ,GACR,KACA,8BACQ,MACR,GACA,gBAGA,2BAGA,iCAEA,KACA,KACA,IACA,aACA,eACA,mCAEA,qBACA,CACA,QACA,EAqWA,eAhoBA,KACA,UAEA,QADA,mCAEA,SAMA,IAJA,gBACA,YACA,aACA,eACA,wCACA,WAGA,GAFA,sBAEA,KADA,qCAMA,SAJA,aACA,aACA,cAIM,WACN,aACA,iBACA,gBACM,gCACN,sEAEA,aACA,cAGA,kEACA,EA+lBA,eA9lBA,SACA,YA1XA,EAqBA,EAuWA,QADA,mCAEA,SAMA,IAJA,gBACA,YACA,aACA,eACA,yCACA,UAGA,OAFA,sBACA,aACA,GACM,WAGN,GAFA,sBAEA,GADA,oCAEA,gBACQ,gBACR,gBACA,kBACQ,MA/YR,OADA,EAgZQ,GA9YR,EAEA,QACA,EAEA,OACA,EAEA,CAsYQ,KAGR,IAFA,IACA,IACe,IAAe,IAE9B,GAhaA,YACA,aACA,aACA,KAGA,IADA,UACA,OACA,QAEA,EACA,EAqZA,mCACA,KACA,WAEA,sCAGA,WArYA,CADA,EAsYA,IArYA,MACA,uBAEA,8DAmYA,YACA,EAAQ,IACR,gCAEA,gBACM,WACN,aACA,iBACA,gBACM,gCACN,sEAEA,aACA,aAEA,CACA,kEACA,EA0iBA,KACA,KACU,SAtFV,GACA,UAEA,QADA,mCACA,SAGA,IAFA,mCACA,aACA,uBACA,mCAWA,OATA,gBACA,kEAEA,8BACA,wBACA,mCAEA,wBACA,YACA,EACA,EAmEU,IACV,KACA,iCACA,mDAhtBA,gBACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EAGA,EAFA,SACA,WAGA,MADA,mCACA,gGAGA,kBAEA,IADA,qCACA,UAJA,SAYA,IAJA,gBACA,YACA,eACA,KACA,QACA,UAEA,OADA,qCACA,SACA,KACA,MACM,UAEN,OADA,kCAEA,KACA,MACM,6CACN,WACM,UAKN,GAJA,SACA,cACA,eACA,YACA,iBACA,KACA,iCACA,QACA,CACA,CADQ,CACR,WACA,SACA,cACA,eACA,KAEA,CACA,IACA,aACA,eACA,eACA,MAEA,OACA,iBAEA,kCACA,QAEA,GADA,YACA,WAGA,SACA,WACA,GACA,EAwoBU,IApgCV,IAogCU,KACV,KACA,cACA,aAGA,iBACA,kCAGM,OACN,gBAGA,aACA,iBACA,sCAEI,eAIJ,KAHA,oCACA,2CAA8D,0CAE9D,6BAAmE,IAA0B,KAE7F,GADA,uBACA,mBACA,+BACA,YACA,iBACA,iCAEA,KACA,CACA,MACI,gBACJ,gDACA,4CAIA,QAFA,OAEA,GADA,uCACA,OAA0D,IAA0B,KACpF,8CACA,OACA,KACA,CAGA,GACA,iCAEA,kCACA,mDAA8E,8CAE9E,2BAGA,qCACA,iBACA,kCAJA,4DAOA,CAIA,OAHA,mBACA,sBAEA,gCACA,CA+EA,iBACA,YACA,QACA,eACA,8DACA,UAEA,yBACA,gBAGA,kBACA,kBAMA,IALA,SACA,aACA,2CAEA,cACA,qCACA,gBACA,cAEA,6BACA,SArGA,GACA,IACA,EACA,EACA,EAEA,EALA,aAIA,KAMA,IAJA,eACA,2BACA,6BACA,gCAIA,IAHA,qCACA,YACA,iCACA,4BAHA,CASA,IAHA,KACA,mCACA,aACA,eACA,mCAOA,IALA,8BACA,KACA,YACA,qEAEA,QACA,YACA,mCAEA,WACA,GACA,yCACU,eACV,KACA,CACA,eAEA,IADA,aACA,eACA,mCAEA,mCACA,CACA,aACA,cACA,aAEA,0CAEA,CAcA,GAbA,YACA,qIACA,cACA,aACI,GACJ,wCAEA,oBA9nCA,EA8nCA,OACA,YACA,yDACA,yDAEA,2BACA,iCACA,sCACA,cACA,aAEA,MACA,CACA,uBACA,6DAIA,EAwBA,GAEA,mBA0BA,QACA,QAzBA,gBACA,UAAkC,WAAP,EAAO,iBAClC,IACA,QAEA,cACA,wBACA,SAEA,uBAAiD,IAAgB,KACjE,OAEA,EAcA,KAbA,cACA,cACA,iBAEI,gBACJ,kBAEA,IA94DA,EA84DA,4DACA,CAMA,EACA,6BACA,mCA0BA,MACA,YACA,YACA,YACA,YACA,aACA,aACA,aACA,aACA,aACA,aACA,cACA,cACA,cACA,eACA,eACA,2FACA,+CAuCA,eACA,yBACA,oCACA,uCACA,mCACA,uDACA,uBA5CA,KACA,kBACA,qBAGA,QAFA,KAEA,EADA,mBACA,OAAwC,IAAgB,KAExD,WADA,OACA,EACA,qBACA,oCAEA,mCACA,2BACA,sBAEA,OAEA,QACA,EA0BA,4BACA,6BACA,+BACA,yBACA,qCACA,qCACA,qCAbA,EADA,EAeA,mCACA,4DACA,gDACA,gDACA,cACA,eACA,mBACA,wBACA,CACA,iBAOA,IANA,IAIA,EAJA,kBACA,IACA,KACA,KAEA,WACA,KAEA,KADA,uBAEA,aACA,MAEA,iBACA,OAEA,2BACA,KAEA,QACA,CACA,iBACA,mCACA,CAWA,eACA,oBACA,CACA,eACA,gFA7IA,QA6IA,uBACA,CACA,eACA,yBA7IA,KA6IA,SACA,CACA,mBACA,YACA,YACA,cAzIA,KAyIA,WAjIA,KAiIA,GA/HA,MA+HA,aA9IA,KA8IA,kDACA,CAOA,iBACA,IACA,EADA,yBAEA,kCACA,uBACA,gBACA,6BAGA,CACA,CACA,eAEA,MADA,QACA,OACA,CAuFA,iBACA,yBACA,uBAGA,SADA,CADA,oCACA,cACA,IACA,CACA,eACA,0CACA,CAqBA,iBACA,+BAQA,IAPA,IACA,EAEA,EAHA,WAEA,IAEA,IACA,IACA,KACA,aACA,YACA,MACA,UACA,qBACA,OAEA,IAQA,OANA,QACA,kBACA,kCAEA,cAEA,UACA,CAoCA,qBACA,IAEA,EACA,EACA,EAJA,KACA,QAIA,mBAA0C,IAAgB,KAC1D,OACA,YACA,mCAEA,oEACA,WACA,aAEA,kCACA,OAEA,QAEA,UAGA,SACA,cACA,CAyFA,mBACA,gBAEA,UADA,sCACA,OAA4C,IAAgB,KAE5D,IADA,SACA,0CAA2E,WAAP,EAAO,gEAU3E,GATA,EACA,yBACA,yBAEA,YAGA,UAEA,aAEA,GADA,oCACA,2CACA,wBACU,0BACV,2BAEA,UA73EA,EA63EA,sDAEA,SACA,CACA,QACA,CAEA,QACA,CACA,2BACA,WACA,SACA,YACA,WAEA,IAlRA,EAkRA,kBACA,IAEA,GACA,iCAEA,IAJA,EAKA,EACA,EAFA,8CAUA,GAPA,GAEA,QADA,2BACA,EAEA,mDACA,OAEA,uBACA,qBACI,CAIJ,GAHA,4BACA,yBAEA,sBACA,oCACA,SArH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QAEL,6BACA,EACA,EAgDA,cApjFA,EAqjFA,MA7BA,CACA,UACA,MAAS,GACT,OADc,KAEd,GACA,SACA,OACA,aACA,QACA,IAAO,GACP,KADU,CACV,GACA,QACA,OACA,MACA,EAgBA,SAfA,sBAgBA,YAfA,4BAgBA,SAfA,qBAgBA,+BCvoFA,OAAgB,YAChB,uBACA,oCACA,CAAC,CCCD,gCACA,2BACA,MAA4C,IAA1B,CAAwC,GAAlC,CAAwC,MAC5D,GAAK,GAAQ,EAAa,EAAI,CAA5B,EAAiC,OACvC,CADc,EACd,KADuC,GAEvC,YACA,IACA,EADA,EAAa,GAAE,uBAEf,IACA,EAAW,GAAE,WACb,CAAI,UACJ,OACA,OACA,MACA,CACA,EACA,eACA,iCACI,GAAE,gCACN,iBACM,GAAE,4BACR,KACA,MACA,CAAS,EACT,GACA,OACA,MACA,CAAS,CACT,CAAO,CACP,CAAK,CACL,CAAG,CACH,EACA,eACA,IAGA,EAHA,2BACA,uBACA,cAEA,IACA,kBACA,CAAI,UACJ,OACA,OACA,MACA,CACA,EACA,eACA,iCACA,+BACA,kCACA,kBACA,8BACA,UACA,OACA,MACA,CAAS,CACT,CAAO,mBACP,UACA,MACA,CAAS,CACT,CAAO,CACP,CAAK,UACL,CAAG,CACH,EAGA,mBACA,8BACA,KACA,2CAEA,YACA,EACA,mBACA,0BACA,SACA,UACA,UACA,UACA,6BACA,wBACA,iDAAkF,WACxE,iCACV,iEAAiG,aAGjG,QACA,KACA,cACA,EAAe,EAAK,SACpB,KACA,YACA,YACA,aACA,KACA,SACA,YACA,CACA,QACA,EAsBO,eACP,8DACA,kBAEA,EAAY,GAAO,GACnB,KADmB,GACnB,SACA,iCACA,sBACA,aACA,SACA,IACA,gBACA,GACA,OACA,MACA,CAAS,CACT,CAAQ,SACR,4CACA,IACA,CACA,CAAK,UACL,CAAG,CACH,CC9IA,IAAI,GAAM,yBACN,GAAK,wBACL,GAAI,GAAoC,IAA1B,CAAwC,GAAlD,CAAwD,MAC5D,GAAK,GAAQ,EAAa,EAAI,EAA5B,CAAiC,OACvC,CADc,OAAyB,CACvC,MACA,0BAKA,QAJA,kBACA,SACA,KACA,KACA,aAAgC,KAAQ,IAExC,QADA,oBAEA,QACA,IACA,KACA,OAEA,YAGA,iBACA,cACA,YACA,CACA,IAQA,iBACA,iCACI,GAAE,aACN,YACA,CAAK,YACC,GAAE,mCACR,kBACA,CAAO,CACP,CAAK,CACL,CAAG,CACH,EAIA,eACA,iCACA,OAAW,GAAE,qBACb,iBACA,CAAK,CACL,CAAG,CACH,EAWA,iBAEA,MADA,kBACA,UACA,iCACA,kBACA,YACA,CAAK,kBACL,6BACA,CAAK,mBACL,6BACA,CAAK,CACL,CAAG,CACH,EAWA,mBACA,SACA,UACA,UACA,UACA,2BACA,wDAEA,0DAEA,KACA,cACA,EAAe,EAAK,0BACpB,KACA,YACA,YACA,EAAe,GAAI,QACnB,GADmB,GACnB,SACO,EACP,KACA,SACA,6BACA,CACA,QACA,ECnHA,SAAS,GAAO,GAAiC,EAA3B,EAAN,EAAwC,IAAO,wEAAsF,iBAAmB,YAAiB,qGAAsH,CAAS,CAAP,CAAO,CAkBxT,QAlBwT,cAGxT,EAgBA,cACA,WAjB8D,KAiB9D,gDACA,6DApBA,cAAkD,qBAA0C,sDAqB5F,QACA,gBACA,eACA,kBACA,oBACA,gBACA,CAkKA,OA3LA,EA0BA,EACA,WACA,kBACA,INnBO,IACP,EMkBA,4DACA,2DACA,iBACA,aNhCO,QMgCsB,CNhCtB,GAQP,OAPA,uCACA,KACA,eACA,0BAGA,CAAG,EACH,CACA,EMuB6B,kBAA4B,CAzBzD,CACA,qBAA0B,KAAK,GAAG,IAAI,OACtC,oBAAyB,KAAK,GAAG,IAAI,eACrC,QACA,iBACA,2BAqBA,kBACA,qBACA,qBNzBO,CMyBqB,CAAQ,WNvBpC,WACA,WACA,YAKA,QACA,gBACA,aANA,WACA,OACA,eACA,EMiBoC,KNbpC,eACA,EMaA,CACA,CAAG,EACH,WACA,sBACA,WACA,wBACA,0CACA,+BAEA,gDACA,MACA,IACA,CAAO,EACP,uCACA,IACA,MFiDO,YEjDmC,EFkD1C,IACA,IADA,EAAY,GAAO,GAEnB,KAFmB,CAEnB,CACA,MAxCA,GAwCA,GACA,SACA,UACI,WACJ,YACA,SACA,QACA,EAAI,IACJ,YACA,SACA,SAEA,OACA,eACA,MACA,CACA,EErE0C,gBAC1C,SACA,SACA,gCACA,4EAEA,OADA,qBACA,6BAEA,WACA,CAAU,SACV,OACA,CACA,MACA,CACM,GAAQ,iCACd,aACA,SACA,gCACA,sEAEA,OADA,kBACA,6BAEA,WACA,CAAO,oBACP,cACA,CAAO,CACP,CACA,CAAG,EACH,aACA,0BACA,UACA,wCACA,4BACA,eACA,aACA,QACA,EACA,sBACA,yBACA,CAAO,CACP,CACA,CAAG,EACH,WACA,wBACA,WACA,oBACA,qBACA,WACA,aACA,QACA,EACA,sBACA,4BACA,CAAO,CACP,CACA,CAAG,EACH,iBACA,oBACA,ID8C0B,EC9C1B,uBACA,yCACA,8BAMM,CDsCoB,EC1C1B,iBAIiB,SAJjB,gBACA,MACA,IACA,CAAO,EACU,aDwCjB,CADW,GArEX,GAqEqC,GA3ErC,MA2EgB,GA3EhB,GACA,CA0E2C,MA1E3C,cACA,EAyE2C,IAC3C,ICxCiB,iBAA4C,oBAAsB,CACnF,CACA,CAAG,EACH,YACA,iBACA,gCACA,2BACA,eACA,eACA,mBAGA,CACA,CACA,CAAG,EACH,gBACA,oBACA,WAEA,IADiB,EAAO,kCAExB,2BACA,yCACA,8BAEA,gDACA,MACA,IACA,CAAO,EACP,EAAqB,EAAO,yBAE5B,GADM,EAAO,4BACb,UACQ,EAAO,oCACf,kBACA,aACA,sBACA,yFACA,IACc,EAAO,oBACrB,CAAc,SACd,iFACc,EAAO,0BACrB,CACA,CAAW,EACX,iBACY,EAAO,iCACnB,sBACA,wBACA,CAAa,EACb,kBACA,EACU,CDrCH,SAAS,CAAS,IACzB,ICoCoB,EDpCpB,QADyB,IACzB,8CACA,yBACA,OACA,EACA,EAAY,GAAO,GAEnB,IACA,CAHmB,CAGnB,SACA,CAAI,SAEJ,MADA,iDACA,CACA,CAEA,OADW,GA1DX,GA0DoC,GAAM,MAA1B,CAChB,KACA,CAF0C,CCwBtB,+BAC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C,EAAG,EAAG,EAAG,GACjBJ,CACT,gECzBO,SAASwE,EAAQ7H,CAAI,CAAE0K,CAAM,CAAEpuD,CAAO,EAC3C,MAAOq4C,CAAAA,EAAAA,EAAAA,CAAAA,CAAOA,CAACqL,EAAM,CAAC0K,EAAQpuD,EAChC,gECaO,SAASgnD,EAAOu8D,CAAQ,CAAEvtG,CAAO,EAEtC,MAAO63F,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAAC73F,GAAWutG,EAAUA,EAC5C,iICzCA,yBAEA,uBAEA,aAEA,4BACA,gBACA,mBACA,MACA,MAEA,oBACA,YACA,iBACA,eACA,EAEA,+CAEA,qBAEA,2CAEA,gBAEA,YACA,aACA,SAEA,2DACA,mBACA,QACA,EACA,KACA,CACA,EAEA,OACA,YACA,qBACA,eACA,EACA,GACA,gBACA,oBACA,oBACA,sBACA,SACA,EACA,GACA,UACA,UACA,sBACA,sBACA,kBACA,oBACA,mBACA,EAEA,EAAwB,eAAmB,OA+B3C,MAA6B,YAAgB,IA+B7C,MACA,aAAY,QAAoB,EAChC,OAAY,eAAmB,aAA6B,QAAa,YACzE,EAEA,qBACA,SACA,eACA,2BACA,SAEA,EADA,EACA,UACA,GAFA,EAEA,YAEA,MAJA,EAIA,KACA,EALA,EAKA,CAEA,CAAS,EAET,QACA,EAEA,kCAEA,YACA,SAAY,QAAqB,EACjC,aACA,8CACA,8BACA,YACA,EAEA,4BAEA,gBACA,MACA,IACA,IACA,OACA,gBACA,kBACA,kBAEA,cACA,MAAmB,QAAY,GAC/B,aACI,WAAe,MACnB,UACA,GACA,eAEA,EACA,eACA,6BACA,wBACa,EACb,cACA,CAAK,cACL,CAgCA,cACA,UACA,SAAY,uCAAmD,MAC/D,MAAyC,UAAc,eACvD,EAAiC,QAAY,EAC7C,WACA,eACA,iBACA,gBACA,WACA,SACA,CAAK,EACL,EAAkB,QAAY,IAC9B,EAAqB,QAAY,KAoBjC,OAnBA,YAQA,GACA,WACA,SATqB,aAAiB,eACtC,uBACA,gBACA,GACA,gBACA,KACS,SAIT,0BACK,EACD,WAAe,MACnB,aACA,KACA,YACA,GACK,IACL,mCACA,CAEA,4BAEA,cACA,8BACA,MACA,kBACA,QAEA,EACA,4BACA,UAEA,mBACA,EACA,EAEA,0BAEA,MACA,eACA,WACA,SAGA,QACA,EAkBA,cACA,UACA,SAAY,sDAAkE,MAC9E,EAAkB,QAAY,GAC9B,aACA,MAAqB,aAAiB,KACtC,0BACA,oDACA,gBACA,YACA,CAAoB,MACpB,iBACA,OACA,KACA,EACA,EACA,CACA,CAAK,UACL,GACA,WACA,0BACA,UACA,CAAK,EACL,SAAiC,UAAc,MAC/C,eACA,GAIA,OAHI,WAAe,MACnB,oBACA,CAAK,EACL,CACA,CA2JA,kBAjIA,YACA,UACA,MAAY,0CAAoD,EAChE,sBACA,KACA,UACA,OACA,qEACA,QACA,CAAK,EACL,KACA,UACA,MACA,CAAK,EACL,EAA2B,QAAY,eACvC,WACA,OACA,CAAK,GAkBL,OAjBI,WAAe,MACnB,cACA,qBACA,GACA,cAEA,EAEA,OADA,QACA,KACA,oCACA,IACA,yBACA,GACA,gBACA,OACA,CACA,CAAK,YACL,CACA,OACA,OACA,QACA,SAAsB,aAAiB,KACvC,oBACA,QACA,WACA,MACA,CAAqB,CACrB,aACA,CAAiB,CACjB,CAAa,MACb,OAAoB,aAAiB,MACrC,kBACA,QACA,yBACA,MACA,CAAqB,CACrB,YACiB,CACjB,CAAa,QACb,IAAiB,aAAiB,KAClC,qBACA,eACA,WACA,oBACA,sBACA,4CACA,qCACA,EAEA,CAAa,eACb,CAAS,CACT,YACA,qCAA8C,EAC9C,SACA,uBACA,CAAa,CACb,SACA,4BACA,CAAa,CACb,WACA,8BACA,CAAa,CACb,OACA,qBACA,CAAa,CACJ,CACT,CACA,EA4CA,IAEA,qBACA,CACA,QACA,OACA,iCAA4E,CAC5E,SACA,CACA,EACA,GAEA,qBAEA,iDAEA,kBACA,SACA,gBACA,WACA,MACA,aACA,WACA,IACA,UACA,WACA,EACA,uBACA,EACA,eAEA,GADA,GAGA,OACA,MACA,CACA,QACA,CAEA,gBACA,gCACA,aACA,MACA,OAAoB,QAAsB,EAC1C,iBACA,iCACA,MAEA,WACA,kBACA,KACA,CACA,MACA,MACA,MAEA,CACA,CACA,EAEA,WACA,uEACA,iEACA,gCACA,mCACA,CAAK,CACL,EAEA,WAAkD,mCAClD,aACA,GAAW,EAAK,GAAG,+BAA6D,GAChF,GAEA,eACA,aACA,gBACA,sCACA,mCAEA,gBACA,oBACA,CAEA,kCACA,6BACA,6BAEA,kBACA,EACA,uBACA,qBACA,mBAEA,oBACA,kBAEA,uDACA,WAWA,cATA,aADA,UACA,GACA,YACA,IACA,KACA,CACA,YACA,CAKA,QACA,CAEA,mDAEA,kBACA,UACA,gBACA,QACA,WACA,CAGA,eACA,kBAGA,SACA,cAEA,+BACA,GANA,GASA,gBACA,wBAYA,kBACA,GAVA,cACA,QACA,SACA,eACA,gBACA,IAEA,yBAIA,yBAEA,YACA,0BAWA,oBAIA,EAHA,oBACA,gBAVA,cACA,2BACA,IACA,UACA,qBAEA,QACA,EAGA,KACA,gBAEA,GACA,YAEA,YAAoB,uBAAoC,KACxD,IACA,EADA,KAEA,oBACA,aAIA,IAHA,KACA,MAEA,eACA,WACA,cACA,OACA,aACA,kBACA,6BACA,4BAEA,GACA,CACA,CACA,QACA,CAEA,gBACA,OACA,GAwCA,cACA,UACA,SAAY,sDAAqE,EACjF,MAAgC,UAAc,sBAC9C,EAAgB,QAAY,6BAC5B,EAAsB,QAAY,IAClC,EAAkB,QAAY,IAC9B,EAAsB,QAAY,IAClC,aACA,YACA,sBAQA,GACA,SARqB,aAAiB,UAAI,SAA+B,IACzE,sBACA,wBACA,KACA,kBACA,CACA,CAAK,KAGL,0BACK,EACL,MAAyB,aAAiB,KAC1C,aACA,wBACA,CAAK,QAqHL,OAjCI,WAAe,MACnB,wBACA,wCAA0E,EAC1E,WACA,+BACA,oBACA,2BACA,2BACA,EACA,2BACA,yBACA,wBACA,2BACqB,EAErB,CAAa,EAEb,wBACA,OACA,qBACS,EACT,gBACA,6CACA,kBACA,2CACA,CAAK,UACD,WAAe,MACnB,2CACA,KACA,kCACA,eACA,GACK,WACL,CACA,KAAc,aAAiB,CA1E/B,QACA,0BACA,SACA,iBACA,KACA,KACA,2BACA,OACA,MACA,CAAS,IACT,EAgE+B,SAC/B,KAAc,aAAiB,CAhE/B,QACA,0BACA,SACA,iBACA,KACA,KACA,2BACA,OACA,MACA,CAAS,IACT,EAsD+B,SAC/B,QAAiB,aAAiB,CA5GlC,QACA,cACA,0BACA,yBACA,gCACA,KACA,KACA,2BACA,SACA,CAAS,CACT,EAkGkC,SAClC,OAAgB,aAAiB,CAxHjC,QACA,cACA,0BACA,kCACA,gCACA,KACA,KACA,2BACA,SACA,CAAS,CACT,EA8GiC,SACjC,OAAgB,aAAiB,CAnGjC,IACA,8BACA,0BACA,KACA,KACA,2BACA,MACA,CAAS,CACT,EA2FiC,SACjC,OAAgB,aAAiB,CA3FjC,UACA,cACA,4BACA,yBACA,kCACA,KACA,KACA,2BACA,OACA,SACA,CAAS,CACT,EAgFiC,SACjC,OAAgB,aAAiB,CA1DjC,QACA,WACA,4BACA,wDACA,KACA,UACA,2BACA,OACA,MACA,CAAS,OACT,EAgDiC,SACjC,QAAiB,aAAiB,CAhDlC,IACA,aACA,oBACA,UACA,UACA,oCAAwF,OACxF,EA0CkC,SAClC,OAAgB,SAAa,oBAC7B,KACA,qBACA,EAAS,QACT,CACA,CAEA,cACA,SAiBA,OACA,gBACA,QACA,CAAS,CACT,KApBA,IACA,eACA,SAEA,EAiBA,UAhBA,IACA,UACA,CACA,iBACA,oBACA,CAAa,GAYb,YATA,KACA,KASA,CACA,CAEA,sBAEA,iBACA,gBACA,aAEA,cACA,iCAEA,qBACA,iBACA,uBACA,SAEA,gBACA,WACA,kBACA,SAEA,cACA,WACA,eACA,YACA,mCACA,SACA,MACA,QAEA,CACA,CACA,QACA,CAEA,YACA,8BACA,sBACA,0BACA,kBACA,0BACA,CAAC,CAED,0BAEA,sBAEA,OACA,0BAEA,mBADA,wDAEA,EAEA,iCAEA,uBAEA,kBAEA,2BAEA,kBAA0C,EAC1C,uBACA,WACA,eACA,qBACA,mBACA,+BACA,eAEA,SACA,UAIA,QACA,CAwBA,eAvBA,kBACA,uBACA,WACA,eACA,qBACA,kBACA,MACA,SACA,yBACA,YACA,CAA4B,aAG5B,eAAkG,WAIlG,oBAIA,SACA,EACA,WAEA,QACA,SACA,UACA,EACA,IAAsB,qBACtB,WACA,qBACA,eACA,QACA,qCACA,gBACA,OAAqB,2BACrB,CACA,oCAEA,2CACA,+BACA,GACA,CAA4B,6BAC5B,GACA,EACA,CACA,SACA,EAEA,OAAgC,2CAAwC,QACxE,EACA,EACA,aACA,IACA,GACA,QACA,YACA,EACA,KACA,EAEA,QACA,WACA,UACA,EACA,2BACA,0CACA,CACA,WACA,eAEA,MACA,GAEA,eACA,kBACA,gDACA,OAEA,MACA,QAEA,MACA,iBAEA,MACA,mCAA+C,EAAO,MAEtD,KACA,iBAEA,oCACA,CAEA,mBACA,SACA,gBACA,YACA,eACA,CACA,OACA,eACA,aACA,SACA,2BACA,CACA,EAEA,0BAEA,WACA,OACA,MACA,SACA,KACA,YACA,eACA,QACA,EAEA,eACA,aACA,OACA,OACA,aACA,aACA,WACA,YAEA,mBACA,aACA,WACA,OACA,QACA,MACA,EAEA,mBACA,gBACA,kBACA,SACA,SACA,+BACA,MAEA,GAFqB,GAErB,OACA,OACA,OACA,OACA,EAEA,OACA,CACA,OACA,MACA,CACA,CAEA,oBACA,aAGA,gBACA,QAEA,0BACA,GAEA,iCACA,GAKA,oCAEA,YAA8C,gBAAoB,IAElE,8BACA,UACA,+BACA,UACA,OACA,OACA,mBACA,KACA,CAEA,CAEA,uBACA,EACA,CACA,QACA,UACA,EAEA,oBACA,QAAY,wHAAgH,KAC5H,SACA,SAEA,eACA,MACA,sBACA,qCACA,mBAEA,EACA,KACA,QACA,OAEA,wBACA,QACA,4BACA,qBACA,wCACA,WACA,OACA,WACA,UACA,MACA,cAEA,EACA,MACA,EAfA,QAeA,WACA,WACA,mBACA,oBACA,IAAgB,mBAAiB,MACjC,CAAgB,qBAChB,MACA,OACA,MACA,gBACA,UACA,MACA,oBAEA,IAEA,OADA,KACA,CAGA,CACA,2BACA,EACA,EACA,YACA,QACA,kBASA,CACA,iCACA,YACA,wBAEA,YACA,uBAEA,KAjBA,CACA,0BACA,YACA,cAEA,YACA,aAEA,CAUA,YACA,uCACA,IAEA,OADA,gBACA,CAGA,CACA,qBACA,YACA,QACA,eACA,iBACA,eACA,iBACA,YACA,yBACA,IAEA,OADA,gBACA,CAGA,CACA,gBACA,IAAgB,mBAA+B,MAC/C,wBACA,MACA,eACA,UACA,MACA,mBAEA,IAEA,OADA,KACA,CAGA,CACA,MACA,SAEA,SADA,WACA,GACA,OACA,MACA,KACA,4BAEA,IAEA,OADA,aACA,CAGA,MACA,SACA,SACA,gBACA,aACA,MAEA,4BACA,IACA,GACA,KACA,mBAEA,aACA,GACA,SAGA,CACA,WACA,MACA,MACA,MAEA,IACA,QAGA,EAGA,OADA,MACA,CACA,EAEA,QACA,gBACA,0BACA,mBACA,EA01BA,gBAA2B,EAC3B,MAAyB,QAAY,GACrC,MAAyC,UAAc,EACvD,WACA,gBACA,cAAuB,CACvB,eACA,cACA,gBAAyB,CACzB,gBACA,sBACA,WACA,SAAkB,CACb,CACL,WACA,6BAGA,WACA,GA52BA,aAAqC,EACrC,IAgCA,EAhCA,GACA,MACA,MAEA,GACA,WACA,gBACA,cAAuB,CACvB,eACA,cACA,gBAAyB,CACzB,gBACA,sBACA,WACA,SAAkB,EAElB,KACA,yBACA,qBACA,GACA,KACA,GACA,UACA,SACA,QACA,EACA,GACA,cACA,gBACA,cACA,aACA,EAEA,IACA,KACA,GACA,WACA,eACA,iBACA,gBACA,WACA,SACA,EACA,GACA,WACA,WACA,UACA,EACA,aACA,uBACA,yBACA,SACA,gBACA,wBACA,EACA,YACA,SAYA,OAXA,YACA,aACA,sBACA,cACA,mBACA,YACA,cACA,SACA,CAAiB,IAGjB,CACA,EAmCA,UACA,gBACA,cACA,eACA,CAAS,CACT,EACA,cACA,aACA,MACA,0BACA,OACA,qBACA,EACA,oBACA,OACA,YACA,CACA,EACA,gBACA,SACA,GACA,MACA,EACA,uBACA,cACA,gBACA,wBACA,gBAEA,2BACA,wBAEA,CADA,aAEA,mBACA,sBACA,4BACA,EACA,GACA,sBACA,CAUA,OATA,QACA,uBACA,gCACA,EACA,GACA,iBACA,OAEA,sBACA,MACA,EACA,mBACA,oBACA,2BAYA,GAXA,gBACA,kBACA,eAGA,gBACA,OACA,EACA,gBACA,eAEA,gBACA,OACA,GACA,OACA,KACA,cAA0C,GAAU,EAAI,CACxD,gBACA,MACA,EACA,GACA,KACA,MAEA,eACA,CACA,OACA,gBACA,+BACA,cACA,eACA,CAAa,EACb,KAEA,EACA,sBACA,kBAAoC,KAAgB,wEACpD,GACA,YACA,WAAgB,GAAS,UACzB,KACA,gBACA,YACA,GACA,gBACA,aACA,MAGA,WAEA,QACA,EACA,eACA,QACA,CAAK,IACL,gBACA,WACA,MACA,IAAwB,WAAoC,EAC5D,MACA,4DACA,eACA,WACA,GACA,MAGA,GACA,WACA,6BACA,mBAEA,CACA,GACA,cACA,CACA,CACA,gBAaA,yBACA,YACA,YACA,OACA,WACA,EACA,KACA,EACA,KACA,CAA4B,OAC5B,CACA,EACA,iBACA,EAEA,WAAoD,IACpD,aACA,IACA,MACA,WACA,IACA,YACA,eACA,EACA,mBACA,GACA,EACA,UACA,8DAEA,OACA,SACA,gBACA,+BACA,4BACA,yBACA,cACA,WACA,wBAGA,yCAGA,UACA,gBAGA,cACA,YACA,cACA,MACA,CAAyB,GAIzB,CACA,gCACA,sCACA,sBACA,EACA,YACA,gBACA,WACA,KAAiC,EAAK,GAAG,EAAS,EAClD,QACA,kBACA,OACA,YACA,KAEA,SADA,QAEA,CACA,EACA,WAA+C,IAC/C,aACA,iBACA,OACA,SACA,GACA,cACA,OACA,QACA,CAAa,EACb,4BACA,gBACA,sBACA,cACA,OACA,0BACA,cACA,CAAiB,IAIjB,eAEA,SADA,SAGA,uBAA0D,EAC1D,cACA,MACA,CAAS,CACT,EACA,YACA,eACA,SACA,SACA,UACA,EACA,EACA,aACA,SACA,KACA,wCACA,aACA,aACA,gBACA,YACA,6CACA,WACA,SACA,GACA,4BACA,SAEA,eACA,iBAEA,kBACA,WAMA,GALA,GACA,cACA,OACA,YACiB,EACjB,EACA,UACA,cAA2C,eAAuB,EAAe,EAOjF,GALA,sBAA8D,EAC9D,cACA,cACA,eACA,CAAa,EACb,YACA,WAAwB,GAAS,aACjC,mBACA,oBACA,UACA,SACA,MACA,MAEA,wDACA,aAEA,YACA,aACA,UACA,CACA,EACA,cAA6C,QAC7C,EACA,EACA,WAIA,GAHA,cACA,eACA,CAAS,EACT,YACA,wBACA,OACA,IACA,mBACA,CACA,MACA,EAKA,CAJA,sCACA,aACA,wBAA4E,OAAqB,EACjG,CAAa,qBACb,gBAGA,eAcA,OAZA,cACA,UACA,yBACA,GACA,MAAoB,EAAM,CAC1B,uBAAsC,GAAU,EAAI,CACpD,gBACA,eACA,CAAS,EACT,eACA,IACA,kCACA,CACA,EACA,MACA,OACA,KACA,eAAoD,EAEpD,YACA,EACA,KACA,OACA,gBACA,EACA,YACA,6BACA,kCACA,sCACA,wBACA,EAAK,CA2BL,UAA0C,IAC1C,4BACA,kBACA,kBACA,SACA,cACA,OACA,QAEA,2BACA,gCACA,oCACA,oBACA,oBACA,QAGA,eAA+B,EAC/B,cACA,KACA,eAAwC,CAAI,aAA5C,EAAkE,CAA1B,EAExC,kBACA,EACA,UAAwC,IACxC,aACA,iBAgBA,OAfA,OACA,IACA,iBAAqD,KAAO,QAAQ,CACpE,OACA,SACA,KACa,CACJ,EACT,eACA,EACA,GACA,iBACA,OACA,iBACA,gBACA,CACA,MAAsC,qBAA6B,EAAI,CACvE,+BACA,CACA,sBACA,cACA,cACA,0BACA,0BACA,qBACA,EACA,EAAoB,CACpB,OACA,WACA,SACA,QACA,MACA,QACA,SACA,kBACA,oBACA,kDAGA,QACA,gBACA,GACA,iBACA,gBAGA,OACA,IACA,QACA,KACA,CACA,SACA,aACA,KACA,sBACA,GAAiD,EACjD,GACA,CACA,KAA2C,mBAA2B,EAEtE,CAAoC,MAAe,CAC1B,CACJ,EACrB,iBACA,KAEA,YAAiD,EACjD,IACA,gBAEA,0CACA,2BACA,gBAEA,CAAa,CAEb,EAqKA,OACA,SACA,YACA,cACA,iBACA,iBACA,YACA,YACA,eACA,iBAnhBA,KACA,wBACA,YACA,IACA,WACA,2BACA,gBACA,KACA,CACA,iBACA,EA0gBA,kBA5rBA,yBACA,SAEA,GADA,YACA,0BACA,6BACA,YACA,CACA,aACA,GACA,8BACA,oCACA,oBACA,cACA,CACA,oBACA,GACA,qCACA,2CACA,0BACA,CACA,eACA,wBAEA,cACA,eACA,0BACA,gBACA,kBACa,CACb,MAEA,QAEA,EA4pBA,eA5fA,uDA6fA,YACA,kBACA,cACA,QACA,CAAa,CACb,kBACA,QACA,CAAa,CACb,kBACA,QACA,CAAa,CACb,uBACA,OACA,CAAa,CACb,qBACA,QACA,CAAa,CACb,aACA,QACA,CAAa,CACb,kBACA,OACA,CAAa,CACb,iBACA,QACA,CAAa,CACb,sBACA,OACA,CAAa,CACb,eACA,QACA,CAAa,CACb,oBACA,GACA,KACA,QACA,CACA,CAAa,CACJ,CACT,UACA,YACA,aAzNA,iBACA,IACA,qCACA,wBAEA,SACA,OACA,cACA,eACA,CAAS,EACT,IACA,eACA,WAAwB,YAAiB,SACzC,YACA,GACA,MAEA,WAEA,aACA,cACA,SAA8B,CAC9B,eACA,CAAiB,EACjB,eAGA,GACA,SAAsC,YAAsB,IAE5D,oBACA,8BAEA,CACA,SAEA,MADA,KACA,CACA,QACA,CACA,iBACA,cACA,eACA,gBACA,kCACA,4BACA,gBACa,CACb,CACA,EA0KA,MAvUA,YACA,mBACA,wBACA,CAAS,EACT,UAoUA,WACA,YACA,MAnJA,OAAoD,IACpD,WACA,OACA,WACA,EACA,EAIA,GAHA,qBACA,MAEA,eACA,qBACA,qBACA,mBACA,cACA,gBAGA,CACA,WACA,sBACA,aACA,YACA,+BACA,aACA,SACA,IACA,OACA,0BACA,KACA,CACA,UACA,CACA,CAEA,IACA,CACA,qBACA,oBACA,KACA,GACA,EACA,cACA,QACA,CAAa,EACb,cACA,QACA,CAAa,CACb,CACA,GACA,cACA,gBACA,cACA,cACA,YACA,QACA,EACA,QACA,4BACA,6BACA,cACA,8BACA,cACA,EACA,uCACA,UACA,wBACA,UACA,iCACA,cAEA,2CACA,cACA,uBACA,QACA,EAAwB,CACxB,4BACA,gBACA,EAAoB,CACpB,oBACA,SACA,EAAoB,CACpB,gBACA,qBACA,CAAS,CACT,EAgEA,WA7KA,OAA0C,IAC1C,SACA,kBACA,aAGA,oBACA,uBAEA,eACA,qBAEA,cACA,mBACA,yBACA,YACA,KAEA,eACA,cACA,gBAEA,cAAmC,KAAe,EAElD,EAsJA,YAjWA,IACA,EACA,+BACA,WAAqC,CACrC,cACA,gBACS,CACT,EA2VA,cACA,SA3VA,UACA,cAA0C,MAAQ,SAAU,KAC5D,cACA,KACA,KACA,CAAS,EACT,cACA,OACA,gBACA,UACA,CAAS,EACT,uCACA,EAgVA,SAnEA,OAAwC,IACxC,gBACA,yBACA,mCACA,EAgEA,gBACA,CACA,EAkDA,GACA,WACA,EAEA,wBACA,EAAqB,aAAiB,KACtC,4BACA,cACA,gBACA,MAEA,GAA8B,gBAAuB,EAErD,CAAK,MAiBL,OAhBA,GACA,0BACA,UACA,CAAK,EACD,WAAe,MACnB,sBACA,4CACA,wBAEA,sBACA,uBACA,yBAA2C,GAE3C,oBACA,CAAK,EACL,2CACA,6CKnsEA,mbJA6B,uDAA2D,cAAc,OAAO,0CAA0C,aAAa,kCAAkC,oBAAoB,GAAC,mFAAmF,0BAA0B,OAAO,+CAA+C,+BAA+B,sBAAqB,yBAAyB,2BAA2B,qEAAqE,kEAAkE,SAAS,wFAAwF,IAAu0C,EAA7+B,CAAO,SAAjV,MAAiV,KAAoB,IAAtV,EAAsV,GAAQ,EAA29B,CAA39B,sBAAhU,GAAgU,IAAiC,0BAA0B,mBAAvU,GAAuU,CAAuB,KAArV,CAAqV,eAAqB,QAAQ,eAA3U,KAA2U,0BAA8C,EAAE,EAAxV,KAAwV,0BAAiC,MAAM,8BAA8B,KAAK,yBAAjU,CAAiU,oDAA5Q,CAA2V,MAAM,WAAW,iDAAuD,kIAAkI,gDAAgD,mKAAsK,yBAAyB,oDAAoD,2DAA2D,sBAAsB,GAAG,IAAI,EAA6E,SCA9gE,IACP,QDD+9D,ICC/9D,cACA,YDF6/D,QCE7/D,SDF8gE,MCE9gE,OAAwE,IAAa,IACrF,kBAEA,gDAAkE,MAAQ,EAC1E,kBACA,CACA,CACA,SACO,aACP,0CAAyE,IAAe,IACxF,kBAEA,iCACA,0CACA,QACA,CACA,kBACA,mBACA,QACI,CACJ,WACA,gBACA,sBACA,CAAO,IACP,GACA,EACA,qBACA,CACA,EACO,kBACP,0BACA,CACO,oBACP,4BACA,cACA,+CACA,CAAG,EACH,yBACA,CAkCO,cACP,0EACA,CC5EA,uGAAyH,GACzH,GACA,MAAQ,MACR,MAAQ,MACR,KAAO,MACP,MAAQ,MACR,KAAO,MACP,MAAQ,MACR,OAAS,MACT,MAAQ,MACR,OAAS,MACT,MAAQ,MACR,OAAS,MACT,OAAS,MACT,OAAS,SACT,OAAS,SACT,MAAQ,SACR,OAAS,SACT,SAAW,MACX,QAAU,MACV,OAAS,MACT,MAAQ,KACR,EACA,UCtBA,GACA,2BACA,iBACA,uBACA,8BACA,sBACA,mDACA,eACA,QAAU,CDeW,iBCdrB,EACO,aACP,gEACA,GACA,KACA,KAEA,CACO,aACP,QACA,CCnBO,cACP,GACA,CACO,aACP,QACA,CCDA,gBACA,eACA,iDACA,aACA,GACA,CACA,cACA,eACA,0CACA,gDACA,CAKA,cACA,8BAyKO,cACP,IACA,WACA,QACA,SACA,UACA,UACA,aAAiB,CACjB,SACA,WACA,aACA,KACA,OACA,IACA,iBACA,KACA,CAAI,EACJ,KD1MA,EC2MA,MAEA,MAHgC,CAE5B,EAAQ,IAF2B,EAE3B,sEACZ,EAEA,6BACA,iBACA,OFnMA,IEoMA,CACA,EADO,CACP,UADkB,CAClB,iBAEA,0CACA,4CACA,eA9LO,OACP,eACA,SACA,OACA,6FAsCA,OArCA,kBACA,sBACA,MAAuB,EAAM,OACvB,GAAS,oBAAc,KAC7B,kCACA,uBACA,mBACA,gBACA,OAA0B,OAAW,SAC7B,gBAEA,6BACR,OAA0B,EAAW,KAAK,EAAW,QAC7C,gCACR,OAA0B,OAAW,GAAG,EAAc,IAAI,OAAW,OAC7D,CACR,aACA,OAA0B,EAAW,GAAG,EAAQ,IAAI,EAAW,SAP/D,OAA0B,EAAW,KAAK,EAAW,IAS/C,gBACA,EAAI,kFACJ,uBACN,IACA,SACA,KACA,CAAQ,EACR,iBACA,iBACA,WAAkC,KAAQ,IAAI,EAAO,OACrD,MAAyB,EAAE,IAAQ,GAC3B,IACA,EAAI,uGAAwG,iBAAiB,6BAErI,EAAM,IACA,EAAI,8EAA+E,QAAQ,oEAAoE,QAAQ,KAE7K,CAAG,EACH,CACA,EAmJA,KACA,iCACA,CACA,eACA,CAAI,EACJ,qBACA,+EACA,+BACA,KACA,6CACM,CACN,4CACA,EAEA,qCACA,eACA,mBACA,aACA,YACA,CACA,EACA,GACA,KACA,QACA,KACA,KACA,eACA,IACA,EACA,aACA,GACA,2BACA,WACA,uEAA2G,EAAE,qBAAmC,GAAG,MAInJ,MAAsB,mBAAa,CAHnC,WACA,MAAe,mBAAa,CAAC,UAAQ,QACrC,EACmC,CACnC,CAAK,EAEL,MA1LA,sBACA,mBACA,uCACA,6BAA6F,EAAK,sBAClG,wBACA,UACA,cACA,KACA,YACA,qBACA,aAA0D,oBAAuC,oBAAc,wBAC/G,CAAK,CACL,EACA,GACA,MAAc,EAAI,YAAa,EAAa,OAC5C,GACA,CAFkB,EAElB,EACA,MAEA,kBACA,WACA,oBACA,MA/EA,kDA+EA,MA9EA,SAAiC,oBAAc,MA8E/C,oDACA,CACA,sBACA,SACA,aACA,OAAe,kBAAY,IAC3B,KACA,CAAO,eAEP,UAAkB,UAAQ,aAC1B,OACA,YAGA,OADA,2BACe,mBAAa,SAC5B,KACA,MACA,UACS,UACT,CAAO,EAEP,CACA,kBACA,WAEA,OADA,KACA,iBACA,gIACA,mBACA,6BACA,kCACA,UACA,+CAxGA,KACA,OACA,MAGA,OADA,uCACA,CACA,EAkGA,CACA,cACS,MACT,EAA0B,oBAAc,IACxC,6BACA,qCACA,qEACA,uBACA,0DACA,SACA,EAAU,gBACV,eACA,UACA,EAAU,SAEV,IADA,kBACA,UACU,qCACV,MACA,eACA,wBACA,EAAY,2DACZ,iBACA,OAAuB,mBAAa,SACpC,OAAwB,OAAU,GAAG,EAAE,EACxB,OACD,CACd,wBACA,OAAuB,mBAAa,SACpC,OAAwB,OAAU,GAAG,EAAE,EACxB,IACf,OACY,iBACZ,WAAyB,QAAW,SACxB,CACZ,wBACA,WAAyB,OAAU,GAAG,EAAM,IAAI,OAAU,GAC1D,OACU,yBAIV,yCAJU,CACV,2BACA,YACA,CAGA,CAHU,CAGF,wBACR,2BACA,wIACA,EACA,OAAmB,mBAAa,IAChC,OAAoB,OAAU,GAAG,EAAE,EACxB,KAEX,SAEA,CACA,QACA,CAAK,IACL,CAKA,WAJA,EACA,SACA,eACG,aACH,IACA,EAuEA,gBACA,oCACA,SAAuB,mBAAa,SACpC,CCrQO,OACP,gBACA,QACI,EAAW,iBFHf,EEIW,CACX,CACA,ECHO,EAAoB,mBAAa,EACjC,SACP,cACA,sBACA,CACA,qBACA,cACA,mDACA,CAAK,CACL,CACA,oBACA,uCACA,CACA,CACO,cACP,0BACA,SACA,mBACA,8BACA,GACA,KACA,KACS,CACT,CAAO,EAEP,IAEA,CAAG,CACH,CACO,aACP,MH9BA,EG+BA,GADe,CACf,MADsB,UACtB,2CACA,KACA,KASA,OARA,wBACA,QACA,cACA,oCACA,CAAK,CACL,CAAG,EACH,qBACA,6BACA,CACA,CC5CO,SAAS,EAAK,GACrB,IACA,EAFqB,OAErB,EACA,QACA,SACA,UACA,UACA,aAAiB,CACjB,SACA,WACA,aACA,KACA,OACA,IACA,iBACA,KACA,CAAI,EACJ,CACA,OACA,YACA,CAAI,CAAE,eAAU,CAAC,IAAW,GAC5B,IAD4B,CAC5B,GJpBA,EIqBA,cADmD,EACnD,IACA,CAF0D,MAEjD,EAAmB,CAC5B,EAD4B,OAC5B,EACA,QACA,SACA,UACA,UACA,WACA,SACA,WACA,aACA,oDACA,OACA,IACA,iBACA,KACG,CACH,CCxCA,cACA,MAAc,YAAM,GAIpB,MAHE,eAAS,MACX,uBACA,CAAG,QACH,WAEA,oBACA,yBACA,CAIO,kBAHP,IAIA,gEACA,CACA,OACA,CAAI,EACJ,CACA,OACA,YACA,CAAI,CAAE,eAAU,CAAC,IAAW,GAC5B,IAD4B,CAC5B,GLpBA,EKsBA,GADA,WADmD,OAAO,IAC1D,0BAAkE,CAAgB,EAClF,IACI,EAAQ,OAFsE,mEAGlF,aACA,qBACA,sEACA,iCAEA,OAAsC,KAItC,OAHA,MACA,UACA,WACA,CACA,CACA,gDAAmE,EAAQ,uGAC3E,ONtBA,IMuBA,CACA,EADO,CACP,UADkB,KAClB,CACA,MAEA,CACA,cACA,YACA,CAAI,EACJ,uCACA,4CACA,8EACA,4DRIO,eACP,GQL6G,CRK7G,mEACA,gCAIA,uCAIA,wBACA,UACA,iBACA,4JACA,CACA,CAAG,EA/BH,cACA,gEACA,iBACA,qCACA,oCACA,uCACA,cACA,2CAA8D,EAAE,GAAG,EAAE,GACrE,oBACA,QACA,6JACA,0BACA,+FACA,qBAEA,EASA,QALA,wDACA,GAYA,GQpB6G,QAC7G,GAzCA,EAyCA,YAzCA,EAyCA,6BAxCS,iBAAW,GAwCpB,EAxCoB,IAwCpB,GAxCoB,CAwCpB,EAxCoB,IAwCpB,EAxCoB,GAyCpB,QACA,sDACA,MAAoB,cAAQ,IAC5B,UACA,cAA+B,MAAU,EAAE,GAAS,EACpD,WACA,EAAoB,YAAM,KACxB,eAAS,MACX,IACA,WACA,gBACA,CAAM,EAgBN,aACA,eACA,CAGA,OApBA,aACA,OACA,MACQ,EAAa,eACrB,eACA,CAAS,EAED,EAAc,SACtB,GADsB,MACtB,MACA,CAAS,GAGT,wBACA,KAKA,gBACA,sBACA,KACA,aACA,0CACA,+CACA,CACA,CAAG,QACH,MAAoB,YAAM,KACxB,eAAS,MACX,uBACA,KAEA,YACA,CAAG,QACH,cAIA,GAHA,MACA,SACA,UACA,GACA,OADA,QAEA,uBACA,MACM,EAAa,mBAEb,EAAc,aAEjB,CACH,CC9GO,cACP,gEACA,mBACA,cACA,IACA,eACA,KACA,CAAQ,EACR,QAA+B,EAAc,GAC7C,KACA,IAF6C,MAE7C,YACO,EACP,GACA,KACA,IACA,OACA,QACA,EAMA,OALA,aACA,QACQ,eACR,mBAEa,mBAAa,KAC1B,QACA,wCAAmE,EAAc,GAAmB,GACpG,MADiF,YACjF,GAIA,UAA6B,gBAAe,CAH5C,OAAuC,mBAAa,mBAAyC,IAC7F,cACA,CAAK,IACuC,CAC5C,CACA,CClCO,cACP,IACA,KACA,WACA,KACA,CAAI,EACJ,QAA2B,EAAc,KACzC,OADyC,EACzC,GACA,OACA,eACG,GACH,CCVO,cACP,IACA,OACA,YACA,WACA,CAAI,EACJ,EAAgB,aAAO,OACvB,OACA,WACA,EAAG,QACH,MAAS,mBAAa,CAAC,EAAW,UAClC,OACA,CAAG,GACH,CCbO,gBACP,gEACA,CACA,OACA,CAAI,EACJ,CACA,OACA,CAAI,CAAE,eAAU,CAAC,IAAW,GAC5B,IAD4B,CAC5B,GTLA,CSMA,eADmD,MACnD,WACA,6BACA,gCACA,6CACA,2BACA,yBACA,CAAO,EACP,GACK,cACL,0BACA,qBAEA,+BACA,oBACA,8BAEA,CCvBO,aACP,mBACA,cACA,IACA,mBACA,kBACA,KACA,CAAQ,EAER,OADM,EAAM,KACC,mBAAa,IAC1B,KACO,CACP,CAIA,OAHA,kBAAqC,EAAmB,GACxD,cADwD,CACxD,iBAAmD,EAAc,GAAmB,GACpF,MADiE,YACjE,GACA,CACA,CACA,CCVO,aACA,SACA,SACM,EAAM,SACZ,OACA,2ECDP,IAeO,aAQP,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,cA0GP,cAyDA,0OCvTA,iBACA,uBACA,sDAEA,SAA4B,cAAQ,IACpC,EAAkB,iBAAW,MAC7B,KACA,CAAG,KACH,EAAmB,iBAAW,MAC9B,KACA,CAAG,KACH,EAAiB,iBAAW,MAC5B,QACA,CAAG,KACH,aAAW,2CACX,CACA,iCAAgE,iBAAe,CAAG,WAAS,CAG3F,oBACA,MAAuB,YAAM,IAC7B,OACA,WACA,CAAG,MACD,eAAS,MACX,yCACA,4BACA,OACA,UACA,YACA,EAEA,OADA,0BACA,KACA,4BACA,CACA,CAAG,SACH,CAoGA,cACA,MAAc,YAAM,MACpB,4DACA,CAAG,EAIH,OAHA,OACA,WACA,CAAG,MACM,iBAAW,UACpB,MACA,gDACA,CAAG,KACH,CAGA,iCACA,mBAAwD,EACxD,wBAAU,MAA6B,EACvC,EAAqB,iBAAW,CAChC,GACA,aACA,gBAEA,kBAEA,KAEA,EAAuB,iBAAW,CAClC,QAQA,EAPA,kBACA,yBAEA,mBACA,OAEA,kCAEA,IACA,eACA,CAAQ,SAER,OADA,uCACA,CACA,CACA,QACA,CAAK,CACL,OAEA,EAAoB,iBAAW,MAC/B,kCACA,KACA,SAEA,IACA,qCACA,eACA,CAAM,SAEN,OADA,qDAA2D,EAAI,YAC/D,CACA,CACA,CAAG,UACH,MAAwC,cAAQ,KAChD,EACA,IAEA,6BAEA,QACA,GACA,aACA,wCAAgD,EAAI,iDAGpD,IACA,qCACA,oCACA,KACA,2DAA+D,EAAK,EACpE,CAAM,SACN,qDAA2D,EAAI,WAC/D,CACA,CAAG,EACH,SACA,GACA,aACA,yCAAiD,EAAI,iDAGrD,kCACA,kCACA,KACA,2DAA6D,EAAK,EAClE,CAAG,EACD,eAAS,MACX,MACA,CAAG,MACH,MAA8B,iBAAW,CACzC,IACA,kBAGA,MACA,CAAK,CACL,OAIA,OAFA,eACA,qBACA,QAEA,iCACA,cACA,kBACA,yBACA,CAAE,EAAI,EACN,SACA,EACA,EAEA,6BAEA,MAAgC,cAAQ,KACxC,EACA,KAEA,GAEA,aACA,OACA,CAiBA,OAhBA,OACA,2BAOA,OANA,IACA,cACA,iBAEA,+BAEA,KACA,iBACA,oBAEA,iCAEA,CACA,CAAG,MACH,CACA,CAqDA,sBACA,MAAwB,YAAM,IAC9B,SAdA,GACA,MAAkB,YAAM,GACxB,aACE,eAAS,CACX,SACA,WACA,CAAK,CACL,GAEA,EAKA,KACA,WACA,kBAEA,CAAG,EACH,MAAoB,aAAO,MAC3B,MAAkC,EAAQ,OAC1C,UACA,QAWA,OATA,UAJ0C,IAK1C,UACA,EACA,gBACA,YAEA,YACA,UAEA,CACA,CAAG,UAIH,MAHE,eAAS,MACX,UAA4B,EAAQ,MACpC,CAAG,UACH,CACA,CACA,kBACA,KALoC,CAKpC,8CACA,8BACA,MAA8C,cAAQ,IACtD,EAA2B,YAAM,IACjC,IACA,EACA,EACA,GAMA,OAJA,iBACA,KACA,aAEA,MA6BA,YACA,cACA,YACA,kBACA,uBACA,2BACA,WACA,CAAE,EAAI,EACN,MACA,SAAwB,cAAQ,OAChC,MAA4B,cAAQ,OACpC,iBACA,YACA,IACA,EAAsB,YAAM,EAC5B,aACA,qDACE,eAAS,UAOX,EANA,OAEA,oCAEA,EAHA,OAMA,+BACA,IACA,8DACA,cACA,0DACA,kBAAqB,UAAuB,EAC5C,WACA,eAEA,UACA,IACA,SAEA,CAAS,CACT,CAAO,CACP,WAAQ,wBAGR,OADA,aACA,KACA,cACA,CACA,CAAG,EACH,EAEA,kBACA,EACA,EACA,EACA,EACA,EACA,MAAkB,YAAM,OACtB,eAAS,MACX,MACA,oEACA,yBACA,GAAiB,8BAAsD,EAEvE,CAAG,oBACH,OACA,EACA,mBACA,QACA,CAIA,OAHA,WACA,sBACA,aACA,CACA,CACA,aACA,SAAgC,cAAQ,KAIxC,MAHE,eAAS,MACX,KACA,CAAG,KACH,CACA,CAuCA,iCAA2F,EAC3F,EACA,EACA,IACA,eACA,kBAGA,2HAEA,IAEA,CAAK,CACL,OACA,EAEA,CACA,IA2DA,GACA,aACA,aACA,EACA,cACA,QAAU,uBAA2B,EACrC,QAAW,WAAe,IAAa,cAAQ,IAC/C,EAzHA,WACA,MAAoB,YAAM,KAO1B,MANE,eAAS,MACX,aACA,KACA,YACA,GACG,IACM,iBAAW,kBACpB,IAiHA,EAAuB,YAAM,EAAG,KAAgB,EAChD,EAAmB,YAAM,SA8BzB,OA7BA,qBACE,eAAS,MACX,eAEA,yDADA,OAGA,iCACA,mHACA,sBACA,qBAEA,GADA,0CACA,CACA,OAA0B,iBAC1B,mBACA,mBACA,UACA,aAEA,KACA,IAGA,CACA,CAAK,EAEL,OADA,yBAAoC,EAAK,EACzC,KACA,cACA,CACA,CAAG,UACH,OAAW,WACX,CACA,yBACA,KAMA,+BAEA,QAPA,qBACA,iDAEA,MAMA,CA4VA,cACA,SAA4B,cAAQ,MAIpC,SAHiB,iBAAW,MAC5B,QACA,CAAG,KACH,GAEA,iCACA,eAAmC,EACnC,wBAAQ,MAA6B,EACrC,GACA,OAEA,SAAsC,cAAQ,KAC9C,EACA,CACA,wBACA,2BAGA,CACA,aACA,aACA,GAEA,IACA,EACA,iBAEA,aACA,sBACA,CACA,wBACA,0BACK,CACL,CAKA,OAJA,cACA,OACA,GACA,CAAG,KACH,CACA","sources":["webpack://_N_E/../../node_modules/.pnpm/@dx-shared+rule-engine@0.0.9/node_modules/@dx-shared/rule-engine/dist/ConfigRuleEngine.js","webpack://_N_E/../../node_modules/.pnpm/@dx-shared+rule-engine@0.0.9/node_modules/@dx-shared/rule-engine/dist/RuleEngine.js","webpack://_N_E/../../node_modules/.pnpm/@dx-shared+rule-engine@0.0.9/node_modules/@dx-shared/rule-engine/dist/index.js","webpack://_N_E/../../node_modules/.pnpm/@dx-shared+rule-engine@0.0.9/node_modules/@dx-shared/rule-engine/dist/types.js","webpack://_N_E/../../node_modules/.pnpm/@turf+boolean-point-in-polygon@6.0.1/node_modules/@turf/boolean-point-in-polygon/index.js","webpack://_N_E/../../node_modules/.pnpm/@turf+distance@6.0.1/node_modules/@turf/distance/index.js","webpack://_N_E/../../node_modules/.pnpm/@turf+helpers@6.5.0/node_modules/@turf/helpers/dist/js/index.js","webpack://_N_E/../../node_modules/.pnpm/@turf+invariant@6.5.0/node_modules/@turf/invariant/dist/js/index.js","webpack://_N_E/../../node_modules/.pnpm/aria-hidden@1.2.4/node_modules/aria-hidden/dist/es2015/index.js","webpack://_N_E/../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js","webpack://_N_E/../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/card-number.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/cardholder-name.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/cvv.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/expiration-date.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/expiration-month.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/expiration-year.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/index.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/lib/is-array.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/lib/parse-date.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/luhn-10.js","webpack://_N_E/../../node_modules/.pnpm/card-validator@8.1.1/node_modules/card-validator/dist/postal-code.js","webpack://_N_E/../../node_modules/.pnpm/content-type@1.0.5/node_modules/content-type/index.js","webpack://_N_E/../../node_modules/.pnpm/cookie@0.4.2/node_modules/cookie/index.js","webpack://_N_E/../../node_modules/.pnpm/credit-card-type@9.1.0/node_modules/credit-card-type/dist/index.js","webpack://_N_E/../../node_modules/.pnpm/credit-card-type@9.1.0/node_modules/credit-card-type/dist/lib/add-matching-cards-to-results.js","webpack://_N_E/../../node_modules/.pnpm/credit-card-type@9.1.0/node_modules/credit-card-type/dist/lib/card-types.js","webpack://_N_E/../../node_modules/.pnpm/credit-card-type@9.1.0/node_modules/credit-card-type/dist/lib/clone.js","webpack://_N_E/../../node_modules/.pnpm/credit-card-type@9.1.0/node_modules/credit-card-type/dist/lib/find-best-match.js","webpack://_N_E/../../node_modules/.pnpm/credit-card-type@9.1.0/node_modules/credit-card-type/dist/lib/is-valid-input-type.js","webpack://_N_E/../../node_modules/.pnpm/credit-card-type@9.1.0/node_modules/credit-card-type/dist/lib/matches.js","webpack://_N_E/../../node_modules/.pnpm/cross-fetch@3.1.4/node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://_N_E/../../node_modules/.pnpm/date-fns-tz@1.0.10_date-fns@2.14.0/node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns-tz@1.0.10_date-fns@2.14.0/node_modules/date-fns-tz/esm/_lib/tzParseTimezone/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns-tz@1.0.10_date-fns@2.14.0/node_modules/date-fns-tz/esm/toDate/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns-tz@1.0.10_date-fns@2.14.0/node_modules/date-fns-tz/esm/utcToZonedTime/index.js","webpack://_N_E/../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js","webpack://_N_E/../../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js","webpack://_N_E/../../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","webpack://_N_E/../../node_modules/.pnpm/fbjs@0.8.18/node_modules/fbjs/lib/EventListener.js","webpack://_N_E/../../node_modules/.pnpm/fbjs@0.8.18/node_modules/fbjs/lib/ExecutionEnvironment.js","webpack://_N_E/../../node_modules/.pnpm/fbjs@0.8.18/node_modules/fbjs/lib/emptyFunction.js","webpack://_N_E/../../node_modules/.pnpm/fbjs@0.8.18/node_modules/fbjs/lib/invariant.js","webpack://_N_E/../../node_modules/.pnpm/fbjs@0.8.18/node_modules/fbjs/lib/warning.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/commands.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/constants.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/focusInside.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/focusables.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/solver.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/auto-focus.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/focusSolver.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/moveFocusInside.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/return-focus.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/sibling.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/array.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/safe.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/is.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://_N_E/../../node_modules/.pnpm/focus-lock@1.3.6/node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://_N_E/../../node_modules/.pnpm/form-data@4.0.1/node_modules/form-data/lib/browser.js","webpack://_N_E/../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://_N_E/../../node_modules/.pnpm/i18next@23.9.0/node_modules/i18next/dist/cjs/i18next.js","webpack://_N_E/../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js","webpack://_N_E/../../node_modules/.pnpm/lodash.debounce@4.0.8/node_modules/lodash.debounce/index.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_apply.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayEach.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiToArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignMergeValue.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignValue.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssign.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignIn.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignValue.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseClone.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseCreate.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFlatten.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMap.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsSet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeysIn.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMerge.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMergeDeep.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRest.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSetToString.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSlice.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnset.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castSlice.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneArrayBuffer.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneBuffer.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneDataView.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneRegExp.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneSymbol.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneTypedArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyObject.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbols.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbolsIn.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createAssigner.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCaseFirst.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_customOmitClone.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_defineProperty.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_flatRest.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeysIn.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getPrototype.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbolsIn.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicode.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneByTag.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneObject.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isFlattenable.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIterateeCall.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeysIn.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overRest.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_parent.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_safeGet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToString.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_shortOut.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeToArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/capitalize.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/cloneDeep.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/constant.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/flatten.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLikeObject.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEmpty.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEqual.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isMap.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isPlainObject.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSet.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keysIn.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/last.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/merge.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/omit.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/set.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toPlainObject.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/unset.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/upperFirst.js","webpack://_N_E/../../node_modules/.pnpm/markdown-to-jsx@7.1.5_react@18.3.1/node_modules/markdown-to-jsx/dist/index.modern.js","webpack://_N_E/../../node_modules/.pnpm/matcher@4.0.0/node_modules/matcher/index.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs/appWithTranslation.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs/config/createConfig.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs/config/defaultConfig.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs/createClient/browser.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs/createClient/node.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs/serverSideTranslations.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs/utils.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs/ sync","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/esm/config/defaultConfig.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/esm/utils.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/esm/config/createConfig.js","webpack://_N_E/../../node_modules/.pnpm/i18next@23.9.0/node_modules/i18next/dist/esm/i18next.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/esm/createClient/browser.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/esm/appWithTranslation.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/esm/index.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/serverSideTranslations.js","webpack://_N_E/?61fe","webpack://_N_E/./config/metrics/digitalData.ts","webpack://_N_E/./config/metrics/ExtendedAdobeTagManager.ts","webpack://_N_E/./config/metrics/metrics.ts","webpack://_N_E/./config/metrics/MetricsContext.tsx","webpack://_N_E/./config/metrics/index.ts","webpack://_N_E/./config/react-query.ts","webpack://_N_E/./hooks/useSegments.tsx","webpack://_N_E/./hooks/useScrolled.tsx","webpack://_N_E/./hooks/useQueryLanguage.ts","webpack://_N_E/./hooks/useStaticUrls.ts","webpack://_N_E/./hooks/useNaaActivityBanner.tsx","webpack://_N_E/./hooks/index.ts","webpack://_N_E/../../libs/framework/user-segments/src/lib/framework-user-segments.tsx","webpack://_N_E/../../libs/framework/user-segments/src/index.ts","webpack://_N_E/./hooks/useConductrics.tsx","webpack://_N_E/./hooks/useLanguage.tsx","webpack://_N_E/./hooks/useMetrics.tsx","webpack://_N_E/./next-i18next.config.js","webpack://_N_E/./components/Alert/Alert.tsx","webpack://_N_E/./components/Alert/index.tsx","webpack://_N_E/../../libs/osc/footer/src/lib/footer.tsx","webpack://_N_E/../../libs/osc/footer/src/lib/index.ts","webpack://_N_E/../../libs/osc/footer/src/index.ts","webpack://_N_E/./components/GlobalFooter/GlobalFooterLinks.ts","webpack://_N_E/./components/GlobalFooter/GlobalFooter.tsx","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-arrow@1.1.2_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-arrow/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-popper@1.2.2_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-popper/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.2_@types+react-dom@18.3.1_@types+react@18.3.18_react-d_02dc9a4e12418433f081a293d26a1b8b/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-menu@2.1.6_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-menu/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-dropdown-menu@2.1.6_@types+react-dom@18.3.1_@types+react@18.3.18_react-_a3eca0ae8a030d3fe2cb3bb8954216c2/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","webpack://_N_E/../../libs/queries/osc-language-selector/src/generated/queries.ts","webpack://_N_E/../../libs/queries/osc-language-selector/src/index.ts","webpack://_N_E/../../libs/osc/language-selector/src/lib/osc-language-code-names.tsx","webpack://_N_E/../../libs/osc/language-selector/src/lib/hooks/useLanguageSelectorLanguages.ts","webpack://_N_E/../../libs/osc/language-selector/src/lib/osc-language-selector.tsx","webpack://_N_E/../../libs/osc/language-selector/src/index.ts","webpack://_N_E/../../libs/osc/drawer/src/lib/drawer.tsx","webpack://_N_E/../../libs/osc/drawer/src/index.ts","webpack://_N_E/../../libs/osc/header/src/lib/gql/queries.ts","webpack://_N_E/../../libs/osc/header/src/lib/header.utilities.tsx","webpack://_N_E/../../libs/osc/header/src/lib/header.logo.tsx","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/nav-items.tsx","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/popup-contents.tsx","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/mega-menu.tsx","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/nav-drawer-list.tsx","webpack://_N_E/../../libs/osc/header/src/lib/hooks/useActiveUserLinks.ts","webpack://_N_E/../../libs/osc/header/src/lib/brand-header-body/brand-header-body.tsx","webpack://_N_E/../../libs/osc/join-modal-button/src/lib/osc-join-modal-button.tsx","webpack://_N_E/../../libs/osc/join-modal-button/src/index.ts","webpack://_N_E/../../libs/osc/header/src/lib/header.tsx","webpack://_N_E/../../libs/osc/header/src/lib/util/filter-mega-nav-experiments.ts","webpack://_N_E/../../libs/osc/header/src/lib/hooks/use-filter-mega-nav-experiments.ts","webpack://_N_E/../../libs/osc/header/src/index.ts","webpack://_N_E/./components/Header/Header.tsx","webpack://_N_E/./components/SearchForm/SearchForm.tsx","webpack://_N_E/./utils/constants/layouts.ts","webpack://_N_E/./hooks/useForwardUrl.ts","webpack://_N_E/./hooks/useMCLPSearchSuppress.tsx","webpack://_N_E/./components/Layout/Layout.tsx","webpack://_N_E/./components/Layout/index.tsx","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query-devtools@5.58.0_@tanstack+react-query@5.56.2_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-query-devtools/build/modern/index.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/hydration.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js","webpack://_N_E/./pages/_app.tsx","webpack://_N_E/./types/Conductrics.ts","webpack://_N_E/./utils/auth.ts","webpack://_N_E/./utils/constants/featureFlags.ts","webpack://_N_E/./utils/constants/rules.ts","webpack://_N_E/./utils/featureToggles.ts","webpack://_N_E/./utils/helpers/conductrics.ts","webpack://_N_E/./utils/helpers/metrics.ts","webpack://_N_E/./queries/generated/react-query.ts","webpack://_N_E/./utils/helpers/serverSideProps.ts","webpack://_N_E/./utils/helpers/urlBuilder.ts","webpack://_N_E/./utils/routeHelpers.ts","webpack://_N_E/../../libs/config/metrics/src/react-metrics/core/ActionTypes.js","webpack://_N_E/../../libs/config/metrics/src/react-metrics/core/utils/extractApis.js","webpack://_N_E/../../libs/config/metrics/src/react-metrics/core/createService.js","webpack://_N_E/../../libs/config/metrics/src/react-metrics/core/utils/isPromise.js","webpack://_N_E/../../libs/config/metrics/src/react-metrics/core/utils/attr2obj.js","webpack://_N_E/../../libs/config/metrics/src/react-metrics/core/useTrackBindingPlugin.js","webpack://_N_E/../../libs/config/metrics/src/react-metrics/core/createMetrics.js","webpack://_N_E/../../libs/config/metrics/src/react-metrics/index.js","webpack://_N_E/../../libs/config/metrics/src/AdobeTagManager/AdobeTagManager.ts","webpack://_N_E/../../libs/config/metrics/src/config/metricsConfig.ts","webpack://_N_E/../../libs/config/metrics/src/types/imageMetrics.ts","webpack://_N_E/../../libs/config/metrics/src/utils/clearImageAnalyticsData.ts","webpack://_N_E/../../libs/config/metrics/src/utils/trackEvent.ts","webpack://_N_E/../../libs/config/metrics/src/index.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/auth-context.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/auth-provider.tsx","webpack://_N_E/../../libs/framework/auth-provider/src/lib/cookie-utils.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/gql/queries.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/auth-client.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/make-auth-client.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/guest-utils.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/index.ts","webpack://_N_E/../../libs/framework/auth-provider/src/index.ts","webpack://_N_E/../../libs/framework/conductrics/src/lib/conductrics.ts","webpack://_N_E/../../libs/framework/conductrics/src/lib/conductrics-hooks.tsx","webpack://_N_E/../../libs/framework/conductrics/src/lib/util/should-render-experiment.ts","webpack://_N_E/../../libs/framework/conductrics/src/lib/index.ts","webpack://_N_E/../../libs/framework/conductrics/src/index.ts","webpack://_N_E/../../libs/framework/env/src/lib/default-public-vars.ts","webpack://_N_E/../../libs/framework/env/src/lib/helpers.ts","webpack://_N_E/../../libs/framework/env/src/lib/index.ts","webpack://_N_E/../../libs/framework/env/src/index.ts","webpack://_N_E/../../node_modules/.pnpm/i18next-http-backend@1.2.4/node_modules/i18next-http-backend/esm/utils.js","webpack://_N_E/../../node_modules/.pnpm/i18next-http-backend@1.2.4/node_modules/i18next-http-backend/esm/request.js","webpack://_N_E/../../node_modules/.pnpm/i18next-http-backend@1.2.4/node_modules/i18next-http-backend/esm/index.js","webpack://_N_E/../../libs/framework/i18n/src/lib/app-with-translation.tsx","webpack://_N_E/../../libs/framework/i18n/src/lib/date-time-utils.ts","webpack://_N_E/../../libs/framework/i18n/src/lib/number-utils.ts","webpack://_N_E/../../libs/framework/i18n/src/generated/queries.ts","webpack://_N_E/../../libs/framework/i18n/src/lib/onelink-utils.ts","webpack://_N_E/../../libs/framework/i18n/src/lib/string-utils.ts","webpack://_N_E/../../libs/framework/i18n/src/lib/translated-url.ts","webpack://_N_E/../../libs/framework/i18n/src/lib/index.ts","webpack://_N_E/../../libs/framework/i18n/src/index.ts","webpack://_N_E/../../libs/framework/incomplete-event/src/lib/incomplete-event.ts","webpack://_N_E/../../libs/framework/location-provider/src/lib/utils/constants.ts","webpack://_N_E/../../libs/framework/location-provider/src/lib/location-context.ts","webpack://_N_E/../../libs/framework/location-provider/src/lib/utils/session.ts","webpack://_N_E/../../libs/framework/location-provider/src/lib/location-util.ts","webpack://_N_E/../../libs/framework/location-provider/src/lib/location-provider.tsx","webpack://_N_E/../../libs/framework/location-provider/src/lib/index.ts","webpack://_N_E/../../libs/framework/location-provider/src/index.ts","webpack://_N_E/../../libs/framework/logger/src/lib/logger.ts","webpack://_N_E/../../libs/framework/logger/src/lib/helpers.ts","webpack://_N_E/../../libs/framework/logger/src/lib/index.ts","webpack://_N_E/../../libs/framework/logger/src/index.ts","webpack://_N_E/../../libs/framework/merge-cache-control/src/lib/framework-merge-cache-control.ts","webpack://_N_E/../../libs/utilities/cookies/src/lib/index.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/default-fetch-fn-utils.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/extract-files/isExtractableFile.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/extract-files/extractFiles.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/cookie-forward.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/default-fetch-fn.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/make-query-client.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/use-clients.tsx","webpack://_N_E/../../libs/framework/react-query/src/lib/use-query-incomplete.tsx","webpack://_N_E/../../libs/framework/react-query/src/lib/query-provider.tsx","webpack://_N_E/../../libs/framework/react-query/src/lib/index.ts","webpack://_N_E/../../libs/framework/react-query/src/index.ts","webpack://_N_E/../../libs/framework/theme/src/lib/constants.ts","webpack://_N_E/../../libs/framework/theme/src/lib/get-theme-classname.ts","webpack://_N_E/../../libs/framework/theme/src/lib/theme-toggles.ts","webpack://_N_E/../../libs/framework/theme/src/lib/index.ts","webpack://_N_E/../../libs/framework/theme/src/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/uri-builder.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/constants.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/types.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/uri-builder-utils/uri-builder.utils.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/search-uri-builder/search-uri-builder.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/search-uri-builder/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/location-uri-builder/location-uri-builder.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/location-uri-builder/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/book-uri-builder/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/property-uri-builder/property-uri-builder.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/property-uri-builder/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/lib/index.ts","webpack://_N_E/../../libs/framework/uri-builder/src/index.ts","webpack://_N_E/../../libs/osc/alert/src/lib/alert.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/alert.dialog.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/alerts.content.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/alerts.controls.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/alerts.tsx","webpack://_N_E/../../libs/osc/alert/src/lib/index.ts","webpack://_N_E/../../libs/osc/alert/src/index.ts","webpack://_N_E/../../libs/osc/banner-notification/src/lib/banner-notification.tsx","webpack://_N_E/../../libs/osc/banner-notification/src/index.ts","webpack://_N_E/../../libs/osc/controls/src/lib/control-back.tsx","webpack://_N_E/../../libs/osc/controls/src/lib/control-close.tsx","webpack://_N_E/../../libs/osc/controls/src/lib/control-next.tsx","webpack://_N_E/../../libs/osc/controls/src/index.ts","webpack://_N_E/../../libs/osc/cycle/src/lib/cycle.context.tsx","webpack://_N_E/../../libs/osc/cycle/src/lib/cycle.tsx","webpack://_N_E/../../libs/osc/cycle/src/index.ts","webpack://_N_E/../../libs/osc/date-picker/src/lib/date-picker.dates-button.tsx","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMonth.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameMonth.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameDay.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isAfter.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isBefore.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMonths.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFirstDayOfMonth.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWithinInterval.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfWeek.js","webpack://_N_E/../../libs/osc/calendar/src/lib/calendar.day.tsx","webpack://_N_E/../../libs/osc/calendar/src/lib/calendar.month.tsx","webpack://_N_E/../../libs/osc/calendar/src/lib/calendar.tsx","webpack://_N_E/../../libs/osc/calendar/src/index.ts","webpack://_N_E/../../libs/osc/date-picker/src/lib/date-picker.calendar.tsx","webpack://_N_E/../../libs/osc/date-picker/src/lib/date-picker.tsx","webpack://_N_E/../../libs/osc/date-picker/src/lib/date-picker.screenreader.tsx","webpack://_N_E/../../libs/osc/date-picker/src/index.ts","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-dialog@1.1.6_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-dialog/dist/index.mjs","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog.base.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog-alert.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog-action-buttons.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/dialog-action.tsx","webpack://_N_E/../../libs/osc/dialog-v2/src/lib/index.ts","webpack://_N_E/../../libs/osc/dialog-v2/src/index.ts","webpack://_N_E/../../libs/osc/form/src/lib/form.error-icon.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.error.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.connector.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.help-message.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.label-helper.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.label.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.input.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.legend.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.card-number-input.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.select.tsx","webpack://_N_E/../../libs/osc/form/src/lib/form.textarea.tsx","webpack://_N_E/../../libs/osc/form/src/index.ts","webpack://_N_E/../../libs/osc/icon/src/lib/osc-icon-map.tsx","webpack://_N_E/../../libs/osc/icon/src/lib/osc-brand-icon-map.tsx","webpack://_N_E/../../libs/osc/icon/src/lib/osc-icon.tsx","webpack://_N_E/../../libs/osc/icon/src/lib/osc-amenity-icon-map.tsx","webpack://_N_E/../../libs/osc/icon/src/index.ts","webpack://_N_E/../../libs/osc/info-popup/src/lib/info-popup.tsx","webpack://_N_E/../../libs/osc/info-popup/src/index.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/queries/generated/queries.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/auto-complete.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/address-fields.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/password-fields.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/form-validation-regex.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/phone-fields.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/marketing-content-css.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/marketing-content.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/utils/join-form-analytics.ts","webpack://_N_E/../../libs/osc/join-form/src/lib/join-form.tsx","webpack://_N_E/../../libs/osc/join-form/src/lib/index.ts","webpack://_N_E/../../libs/osc/join-form/src/index.ts","webpack://_N_E/../../libs/osc/link/src/lib/link.ad-choices.tsx","webpack://_N_E/../../libs/osc/link/src/lib/link.new-window.tsx","webpack://_N_E/../../libs/osc/link/src/lib/link.utils.ts","webpack://_N_E/../../libs/osc/link/src/lib/link.tsx","webpack://_N_E/../../libs/osc/link/src/index.ts","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/internal/disabled.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/micro-task.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/disposables.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-disposables.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/form.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/class-names.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/match.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/render.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/internal/hidden.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/internal/form-fields.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/internal/id.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/env.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-latest-value.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-event.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/components/description/description.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/components/label/label.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/components/field/field.js","webpack://_N_E/../../node_modules/.pnpm/@react-aria+utils@3.27.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/utils/dist/platform.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+utils@3.27.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/utils/dist/isVirtualEvent.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+utils@3.27.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/utils/dist/domHelpers.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+interactions@3.23.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+utils@3.27.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/utils/dist/useLayoutEffect.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+utils@3.27.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/utils/dist/useEffectEvent.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+interactions@3.23.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/interactions/dist/utils.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+interactions@3.23.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/interactions/dist/useFocus.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+interactions@3.23.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+focus@3.19.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/focus/dist/useFocusRing.mjs","webpack://_N_E/../../node_modules/.pnpm/@react-aria+interactions@3.23.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@react-aria/interactions/dist/useHover.mjs","webpack://_N_E/../../node_modules/.pnpm/@tanstack+virtual-core@3.13.0/node_modules/@tanstack/virtual-core/dist/esm/utils.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+virtual-core@3.13.0/node_modules/@tanstack/virtual-core/dist/esm/index.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-virtual@3.13.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-virtual/dist/esm/index.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/owner.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-active-press.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-by-comparator.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-controllable.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-default-value.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-element-size.js","webpack://_N_E/../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_super_prop_base.js","webpack://_N_E/../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/default-map.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/store.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-store.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-inert-others.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/focus-management.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/platform.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-document-event.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-window-event.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-outside-click.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-owner.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-event-listener.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-refocusable-input.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-flags.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-transition.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-watch.js","webpack://_N_E/../../node_modules/.pnpm/@floating-ui+react@0.26.28_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs","webpack://_N_E/../../node_modules/.pnpm/@floating-ui+react@0.26.28_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@floating-ui/react/dist/floating-ui.react.mjs","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/internal/floating.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/internal/frozen.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/internal/open-closed.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/document-ready.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/active-element-history.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/bugs.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/utils/calculate-active-index.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/components/keyboard.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/components/mouse.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/internal/portal-force-root.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/components/portal/portal.js","webpack://_N_E/../../node_modules/.pnpm/@headlessui+react@2.2.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@headlessui/react/dist/components/combobox/combobox.js","webpack://_N_E/../../libs/framework/places-autocomplete/src/lib/use-places-autocomplete.tsx","webpack://_N_E/../../libs/framework/places-autocomplete/src/lib/use-suggestions.tsx","webpack://_N_E/../../libs/framework/places-autocomplete/src/lib/index.ts","webpack://_N_E/../../libs/framework/places-autocomplete/src/index.ts","webpack://_N_E/../../libs/osc/location/src/lib/location-options/hotels-near-me-option.tsx","webpack://_N_E/../../libs/osc/location/src/lib/location-options/location-options-utils.ts","webpack://_N_E/../../libs/osc/location/src/lib/icons.constant.ts","webpack://_N_E/../../libs/osc/location/src/lib/autoComplete-suggestion-options.tsx","webpack://_N_E/../../libs/osc/location/src/lib/location-options/popular-destinations.tsx","webpack://_N_E/../../libs/osc/location/src/lib/location-options/recent-searches.tsx","webpack://_N_E/../../libs/osc/location/src/lib/gql/queries.ts","webpack://_N_E/../../libs/osc/location/src/lib/location.input.tsx","webpack://_N_E/../../libs/osc/location/src/lib/location.tsx","webpack://_N_E/../../libs/osc/location/src/index.ts","webpack://_N_E/../../libs/osc/login/src/lib/login.types.ts","webpack://_N_E/../../libs/osc/login/src/lib/frame.tsx","webpack://_N_E/../../libs/osc/login/src/lib/login.icon.tsx","webpack://_N_E/../../libs/osc/login/src/lib/login.tsx","webpack://_N_E/../../libs/osc/login/src/index.ts","webpack://_N_E/../../libs/osc/markdown/src/lib/markdown.tsx","webpack://_N_E/../../libs/osc/markdown/src/index.ts","webpack://_N_E/../../libs/osc/pagination/src/lib/pagination.tsx","webpack://_N_E/../../libs/osc/pagination/src/index.ts","webpack://_N_E/../../libs/osc/popup/src/lib/popup.context.tsx","webpack://_N_E/../../libs/osc/popup/src/lib/popup.utils.ts","webpack://_N_E/../../libs/osc/popup/src/lib/popup.tsx","webpack://_N_E/../../libs/osc/popup/src/lib/popup.button.tsx","webpack://_N_E/../../libs/osc/popup/src/lib/popup.content.tsx","webpack://_N_E/../../libs/osc/popup/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.constants.ts","webpack://_N_E/../../libs/osc/special-rates/src/lib/utils.ts","webpack://_N_E/../../libs/utilities/use-smb-context-local-storage/src/lib/use-smb-context-local-storage.tsx","webpack://_N_E/../../libs/utilities/use-smb-context-local-storage/src/index.ts","webpack://_N_E/../../libs/osc/special-rates/src/lib/special-rates.tsx","webpack://_N_E/../../libs/osc/special-rates/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/gql/queries.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/constants/featureToggles.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.utils.ts","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameYear.js","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.summary.utils.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.summary.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/hooks/use-shop-form-speedbump.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.geocode-fail-modal.tsx","webpack://_N_E/../../libs/utilities/feature-toggles-configs/src/lib/getFeatureToggleConfig.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/hooks/use-aarp-toggle.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.tsx","webpack://_N_E/../../libs/utilities/use-previous-value/src/lib/use-previous-value.tsx","webpack://_N_E/../../libs/utilities/use-previous-value/src/lib/index.ts","webpack://_N_E/../../libs/utilities/use-previous-value/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.provider.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.location.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.dates.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.info-container.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/use-shop-form-context.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.button.tsx","webpack://_N_E/../../libs/osc/stepper/src/lib/stepper.tsx","webpack://_N_E/../../libs/osc/stepper/src/lib/index.ts","webpack://_N_E/../../libs/osc/stepper/src/index.ts","webpack://_N_E/../../libs/osc/rooms/src/lib/rooms.room.tsx","webpack://_N_E/../../libs/osc/rooms/src/lib/rooms.tsx","webpack://_N_E/../../libs/osc/rooms/src/lib/rooms.modal.tsx","webpack://_N_E/../../libs/osc/rooms/src/index.ts","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.rooms.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.group.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.special-rates.tsx","webpack://_N_E/../../libs/osc/shop-form/src/lib/shop-form.nights.tsx","webpack://_N_E/../../libs/osc/shop-form/src/index.ts","webpack://_N_E/../../libs/osc/speedbump/src/lib/gql/queries.ts","webpack://_N_E/../../libs/osc/speedbump/src/lib/hooks/useFeatureConfigs.ts","webpack://_N_E/../../libs/osc/speedbump/src/lib/use-speedbump.tsx","webpack://_N_E/../../libs/osc/speedbump/src/lib/speedbump.tsx","webpack://_N_E/../../libs/osc/speedbump/src/lib/index.ts","webpack://_N_E/../../libs/osc/speedbump/src/index.ts","webpack://_N_E/../../libs/osc/spinner/src/lib/spinner.tsx","webpack://_N_E/../../libs/osc/spinner/src/lib/spinner-dialog.tsx","webpack://_N_E/../../libs/osc/spinner/src/lib/index.ts","webpack://_N_E/../../libs/osc/spinner/src/index.ts","webpack://_N_E/../../libs/osc/tooltip/src/lib/tooltip.tsx","webpack://_N_E/../../libs/osc/tooltip/src/index.ts","webpack://_N_E/../../libs/queries/dx-guests-ui/src/generated/react-query.ts","webpack://_N_E/../../libs/queries/dx-guests-ui/src/index.ts","webpack://_N_E/../../libs/types/graphql/src/lib/graphql.ts","webpack://_N_E/../../libs/types/graphql/src/lib/index.ts","webpack://_N_E/../../libs/types/graphql/src/index.ts","webpack://_N_E/../../libs/utilities/accessibility/src/lib/use-has-user-modified-font-defaults.ts","webpack://_N_E/../../libs/utilities/accessibility/src/lib/index.ts","webpack://_N_E/../../libs/utilities/accessibility/src/index.ts","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeInterval.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachDayOfInterval.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfMonth.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDay.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInMonth.js","webpack://_N_E/../../libs/utilities/dates/src/lib/utils.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/use-days-of-week.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/use-date-format.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/use-locale.tsx","webpack://_N_E/../../libs/utilities/dates/src/lib/index.ts","webpack://_N_E/../../libs/utilities/dates/src/index.ts","webpack://_N_E/../../libs/utilities/generate-error/src/lib/generate-error.ts","webpack://_N_E/../../libs/utilities/generate-error/src/lib/index.ts","webpack://_N_E/../../libs/utilities/generate-error/src/index.ts","webpack://_N_E/../../libs/utilities/get-language-direction/src/lib/get-language-direction.ts","webpack://_N_E/../../libs/utilities/is-browser/src/lib/is-browser.ts","webpack://_N_E/../../libs/utilities/url-config/src/lib/url-config.ts","webpack://_N_E/../../libs/utilities/url-config/src/lib/index.ts","webpack://_N_E/../../libs/utilities/url-config/src/index.ts","webpack://_N_E/../../libs/utilities/use-forked-ref/src/lib/use-forked-ref.tsx","webpack://_N_E/../../libs/utilities/use-forked-ref/src/index.ts","webpack://_N_E/../../libs/utilities/use-rect/src/lib/oberserve-rect.tsx","webpack://_N_E/../../libs/utilities/use-rect/src/lib/use-rect.tsx","webpack://_N_E/../../libs/utilities/use-rect/src/lib/index.ts","webpack://_N_E/../../libs/utilities/use-rect/src/index.ts","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/compareAsc/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/isDate/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/isValid/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/assign/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/parse/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/getDaysInMonth/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/setMonth/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/set/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/addMilliseconds/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/subMilliseconds/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/toDate/index.js","webpack://_N_E/../../src/client/get-domain-locale.ts","webpack://_N_E/../../src/client/link.tsx","webpack://_N_E/../../src/client/normalize-locale-path.ts","webpack://_N_E/../../src/client/use-intersection.tsx","webpack://_N_E/../../src/client/use-merged-ref.ts","webpack://_N_E/./styles/global.css","webpack://_N_E/../../node_modules/.pnpm/next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.85.1/node_modules/next/dist/compiled/path-browserify/index.js","webpack://_N_E/../../node_modules/.pnpm/next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.85.1/node_modules/next/head.js","webpack://_N_E/../../node_modules/.pnpm/next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.85.1/node_modules/next/link.js","webpack://_N_E/../../node_modules/.pnpm/next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.85.1/node_modules/next/router.js","webpack://_N_E/../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","webpack://_N_E/../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js","webpack://_N_E/../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://_N_E/../../node_modules/.pnpm/react-clientside-effect@1.2.7_react@18.3.1/node_modules/react-clientside-effect/lib/index.es.js","webpack://_N_E/../../node_modules/.pnpm/react-focus-lock@2.13.6_@types+react@18.3.18_react@18.3.1/node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://_N_E/../../node_modules/.pnpm/react-focus-lock@2.13.6_@types+react@18.3.18_react@18.3.1/node_modules/react-focus-lock/dist/es2015/medium.js","webpack://_N_E/../../node_modules/.pnpm/react-focus-lock@2.13.6_@types+react@18.3.18_react@18.3.1/node_modules/react-focus-lock/dist/es2015/scope.js","webpack://_N_E/../../node_modules/.pnpm/react-focus-lock@2.13.6_@types+react@18.3.18_react@18.3.1/node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://_N_E/../../node_modules/.pnpm/react-focus-lock@2.13.6_@types+react@18.3.18_react@18.3.1/node_modules/react-focus-lock/dist/es2015/util.js","webpack://_N_E/../../node_modules/.pnpm/react-focus-lock@2.13.6_@types+react@18.3.18_react@18.3.1/node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://_N_E/../../node_modules/.pnpm/react-focus-lock@2.13.6_@types+react@18.3.18_react@18.3.1/node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://_N_E/../../node_modules/.pnpm/react-focus-lock@2.13.6_@types+react@18.3.18_react@18.3.1/node_modules/react-focus-lock/dist/es2015/index.js","webpack://_N_E/../../node_modules/.pnpm/react-idle-timer@5.7.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-idle-timer/dist/index.esm.js","webpack://_N_E/../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll-bar/dist/es2015/constants.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/medium.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/UI.js","webpack://_N_E/../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@18.3.18_react@18.3.1/node_modules/use-sidecar/dist/es2015/exports.js","webpack://_N_E/../../node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.js","webpack://_N_E/../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@18.3.1/node_modules/react-style-singleton/dist/es2015/singleton.js","webpack://_N_E/../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@18.3.1/node_modules/react-style-singleton/dist/es2015/hook.js","webpack://_N_E/../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@18.3.1/node_modules/react-style-singleton/dist/es2015/component.js","webpack://_N_E/../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@18.3.1/node_modules/react-style-singleton/dist/es2015/index.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll-bar/dist/es2015/utils.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll-bar/dist/es2015/component.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll-bar/dist/es2015/index.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/sidecar.js","webpack://_N_E/../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/Combination.js","webpack://_N_E/../../node_modules/.pnpm/@tanem+svg-injector@10.1.68/node_modules/@tanem/svg-injector/dist/svg-injector.esm.js","webpack://_N_E/../../node_modules/.pnpm/react-svg@16.3.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-svg/dist/react-svg.esm.js","webpack://_N_E/../../node_modules/.pnpm/universal-cookie@4.0.4/node_modules/universal-cookie/es6/utils.js","webpack://_N_E/../../node_modules/.pnpm/universal-cookie@4.0.4/node_modules/universal-cookie/es6/Cookies.js","webpack://_N_E/../../node_modules/.pnpm/universal-cookie@4.0.4/node_modules/universal-cookie/es6/index.js","webpack://_N_E/../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.18_react@18.3.1/node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://_N_E/../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.18_react@18.3.1/node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://_N_E/../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.18_react@18.3.1/node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://_N_E/../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@18.3.18_react@18.3.1/node_modules/use-sidecar/dist/es2015/medium.js","webpack://_N_E/../../node_modules/.pnpm/void-elements@3.1.0/node_modules/void-elements/index.js","webpack://_N_E/ignored|/builds/pac/hiw/dx-ui/node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm|fs","webpack://_N_E/ignored|/builds/pac/hiw/dx-ui/node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_2b4f27cada069c2c6ec5f77c52173754/node_modules/next-i18next/dist/commonjs|fs","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/defineProperty.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/extends.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/typeof.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/regenerator/index.js","webpack://_N_E/../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/a-callable.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/a-constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/a-possible-prototype.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/add-to-unscopables.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/advance-string-index.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/an-instance.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/an-object.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-for-each.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-from.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-includes.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-iteration.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-method-has-species-support.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-method-is-strict.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-reduce.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-slice.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-species-constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/array-species-create.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/classof-raw.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/classof.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/collection-strong.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/collection-weak.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/collection.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/copy-constructor-properties.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/correct-prototype-getter.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/create-iter-result-object.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/create-property-descriptor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/create-property.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/define-built-in-accessor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/define-built-in.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/define-built-ins.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/define-global-property.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/descriptors.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/document-create-element.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/dom-iterables.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/dom-token-list-prototype.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/enum-bug-keys.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/environment-is-ios-pebble.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/environment-is-ios.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/environment-is-node.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/environment-is-webos-webkit.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/environment-user-agent.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/environment-v8-version.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/environment.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/export.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/fails.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/flatten-into-array.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/freezing.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/function-apply.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/function-bind-context.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/function-bind-native.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/function-call.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/function-name.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/function-uncurry-this.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/get-built-in.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/get-iterator-method.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/get-iterator.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/get-json-replacer-function.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/get-method.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/get-substitution.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/global-this.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/has-own-property.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/hidden-keys.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/host-report-errors.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/html.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/ie8-dom-define.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/indexed-object.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/inherit-if-required.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/inspect-source.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/internal-metadata.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/internal-state.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-array-iterator-method.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-array.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-callable.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-forced.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-null-or-undefined.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-object.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-possible-prototype.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-pure.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-regexp.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/is-symbol.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/iterate.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/iterator-close.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/iterator-create-constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/iterator-define.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/iterators-core.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/iterators.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/length-of-array-like.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/make-built-in.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/math-trunc.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/microtask.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/new-promise-capability.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/not-a-regexp.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-create.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-define-properties.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-define-property.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-get-own-property-names.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-get-prototype-of.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-is-extensible.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-is-prototype-of.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-keys-internal.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-keys.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-set-prototype-of.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-to-array.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/object-to-string.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/own-keys.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/path.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/perform.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/promise-constructor-detection.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/promise-native-constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/promise-resolve.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/queue.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/regexp-exec-abstract.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/regexp-exec.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/regexp-flags.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/regexp-get-flags.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/require-object-coercible.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/safe-get-built-in.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/set-species.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/set-to-string-tag.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/shared-key.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/shared-store.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/shared.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/species-constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/string-multibyte.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/symbol-constructor-detection.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/symbol-registry-detection.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/task.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-absolute-index.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-indexed-object.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-length.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-object.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-primitive.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-property-key.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-string-tag-support.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/to-string.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/try-to-string.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/uid.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/validate-arguments-length.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/weak-map-basic-detection.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/well-known-symbol-define.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/internals/well-known-symbol.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.concat.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.filter.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.flat.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.for-each.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.from.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.includes.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.index-of.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.is-array.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.iterator.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.join.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.map.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.reduce.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.slice.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.some.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.date.to-string.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.function.name.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.json.stringify.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.object.define-properties.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.object.define-property.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.object.entries.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.object.keys.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.object.to-string.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.promise.all.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.promise.catch.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.promise.constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.promise.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.promise.race.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.promise.reject.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.promise.resolve.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.regexp.exec.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.regexp.to-string.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.set.constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.set.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.string.includes.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.string.iterator.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.string.replace.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.symbol.constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.symbol.description.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.symbol.for.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.symbol.iterator.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.symbol.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.symbol.key-for.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.weak-map.constructor.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/es.weak-map.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://_N_E/../../node_modules/.pnpm/core-js@3.40.0/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://_N_E/../../node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm/fs.cjs","webpack://_N_E/../../node_modules/.pnpm/i18next-http-backend@1.2.4/node_modules/i18next-http-backend/esm/getFetch.cjs","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://_N_E/../../node_modules/.pnpm/@floating-ui+core@1.6.9/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://_N_E/../../node_modules/.pnpm/@floating-ui+dom@1.6.13/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://_N_E/../../node_modules/.pnpm/@floating-ui+react-dom@2.1.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","webpack://_N_E/../../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://_N_E/../../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-collection@1.1.2_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom_60bb3e7f45950e429728cefacc549341/node_modules/@radix-ui/react-collection/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-context/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-direction/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-use-escape-keydown@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.5_@types+react-dom@18.3.1_@types+react@18.3.18_re_bd781bc14648a6d15f1c145f415e39bc/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-focus-guards@1.1.1_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-focus-guards/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.2_patch_hash=07e1fd26a62db1cdbcd60041e806c1e67bc20996d8_4bcca18067b3b2b21c78bc6e68b91f9b/node_modules/@radix-ui/react-focus-scope/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-id/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-portal@1.1.4_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-portal/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-use-size@1.1.0_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/focusManager.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/mutation.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/notifyManager.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/onlineManager.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/query.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/queryCache.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/mutationCache.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/queryClient.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/queryObserver.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/removable.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/retryer.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/subscribable.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/utils.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/suspense.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/isRestoring.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/utils.js","webpack://_N_E/../../node_modules/.pnpm/@turf+helpers@6.0.1/node_modules/@turf/helpers/index.mjs","webpack://_N_E/../../node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm/utils.js","webpack://_N_E/../../node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm/formats/json5.js","webpack://_N_E/../../node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm/formats/yaml.js","webpack://_N_E/../../node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm/extname.js","webpack://_N_E/../../node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm/readFile.js","webpack://_N_E/../../node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm/writeFile.js","webpack://_N_E/../../node_modules/.pnpm/i18next-fs-backend@2.3.1/node_modules/i18next-fs-backend/esm/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMonths.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInDays.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfToday.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subDays.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js","webpack://_N_E/../../node_modules/.pnpm/react-hook-form@7.33.0_react@18.3.1/node_modules/react-hook-form/dist/index.esm.mjs","webpack://_N_E/../../node_modules/.pnpm/html-parse-stringify@3.0.1/node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/utils.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/unescape.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/defaults.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/i18nInstance.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/TransWithoutContext.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/initReactI18next.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/context.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/Trans.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/useTranslation.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/withTranslation.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/Translation.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/useSSR.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/withSSR.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react-native@0.75.4__c9d41bbc273279ec4a31f8e1dad0c110/node_modules/react-i18next/dist/es/index.js","webpack://_N_E/../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","webpack://_N_E/../../node_modules/.pnpm/usehooks-ts@3.1.1_react@18.3.1/node_modules/usehooks-ts/dist/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigRuleEngine = void 0;\nconst RuleEngine_1 = require(\"./RuleEngine\");\nclass ConfigRuleEngine {\n constructor(rules) {\n this.rules = [];\n this.rules.push(...(Array.isArray(rules) ? rules : [rules]));\n return this;\n }\n run(facts) {\n return this.rules.reduce((acc, rule) => {\n const { name, conditions, config: defaultConfig, tag: defaultTag } = rule;\n let ruleConfig = {};\n const ruleTags = new Set([defaultTag]);\n const addConditionsRuleTag = (ruleTag) => {\n let cRuleTag = ruleTag;\n if (defaultTag) {\n ruleTags.delete(defaultTag);\n if (ruleTag) {\n cRuleTag = ruleTag.startsWith(`${defaultTag}-`) ? ruleTag : `${defaultTag}-${ruleTag}`;\n }\n }\n ruleTags.add(cRuleTag);\n };\n if (conditions && conditions.single) {\n const validCondition = conditions.single.find((c) => new RuleEngine_1.RuleEngine({ name, conditions: c }).run(facts));\n if (validCondition) {\n ruleConfig = validCondition.config;\n addConditionsRuleTag(validCondition.tag);\n }\n }\n else if (conditions && conditions.multi) {\n conditions.multi\n .filter((c) => new RuleEngine_1.RuleEngine({ name, conditions: c }).run(facts))\n .forEach((c) => {\n ruleConfig = { ...ruleConfig, ...c.config };\n addConditionsRuleTag(c.tag);\n });\n }\n else if (conditions) {\n if (new RuleEngine_1.RuleEngine({ name, conditions: conditions }).run(facts)) {\n const c = conditions;\n ruleConfig = c.config;\n addConditionsRuleTag(c.tag);\n }\n }\n acc.config = { ...acc.config, ...defaultConfig, ...ruleConfig };\n acc.tags = [...acc.tags, ...Array.from(ruleTags)].filter(Boolean).sort();\n return acc;\n }, { config: {}, tags: [] });\n }\n}\nexports.ConfigRuleEngine = ConfigRuleEngine;\n//# sourceMappingURL=ConfigRuleEngine.js.map","\"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.RuleEngine = void 0;\nconst distance_1 = __importDefault(require(\"@turf/distance\"));\nconst helpers_1 = require(\"@turf/helpers\");\nconst boolean_point_in_polygon_1 = __importDefault(require(\"@turf/boolean-point-in-polygon\"));\nconst compareAsc_1 = __importDefault(require(\"date-fns/compareAsc\"));\nconst isDate_1 = __importDefault(require(\"date-fns/isDate\"));\nconst isValid_1 = __importDefault(require(\"date-fns/isValid\"));\nconst parse_1 = __importDefault(require(\"date-fns/parse\"));\nconst set_1 = __importDefault(require(\"date-fns/set\"));\nconst utcToZonedTime_1 = __importDefault(require(\"date-fns-tz/utcToZonedTime\"));\nconst matcher_1 = __importDefault(require(\"matcher\"));\nconst types_1 = require(\"./types\");\nconst DATE_PATTERN_CONFIGS = Object.freeze([\n { pattern: 'MM-dd', default: { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 } },\n { pattern: 'yyyy-MM', default: { date: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 } },\n { pattern: 'yyyy-MM-dd', default: { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 } },\n { pattern: 'yyyy-MM-dd HH:mm', default: { seconds: 0, milliseconds: 0 } },\n]);\nconst TIMEZONE_UTC = 'UTC';\nconst DISTANCE_FROM_REGEX = new RegExp('^([\\\\d\\\\.]+)[ ]*(kilometers|km|miles|mi)[ ]+from[ ]+([-\\\\d\\\\.]+)[ ]*,[ ]*([-\\\\d\\\\.]+)$');\nconst COORDINATE_POINT_REGEX = new RegExp('^([-\\\\d\\\\.]+)[ ]*,[ ]*([-\\\\d\\\\.]+)$');\nconst DISTANCE_UNIT_MAPPING = Object.freeze({\n km: 'kilometers',\n mi: 'miles',\n});\nfunction isNil(val) {\n return val === undefined || val === null;\n}\nfunction compare(factValue, operatorValue) {\n if (!isNil(factValue) && !isNil(operatorValue)) {\n if (isDate_1.default(factValue) && typeof operatorValue === 'string') {\n return compareDate(factValue, operatorValue);\n }\n if (factValue < operatorValue) {\n return -1;\n }\n if (factValue > operatorValue) {\n return 1;\n }\n }\n if (factValue === operatorValue) {\n return 0;\n }\n return undefined;\n}\nfunction compareDate(factDate, operatorDateStr) {\n if (isValid_1.default(factDate)) {\n let trunFactDate;\n let utcOperatorDate;\n for (let index = 0; index < DATE_PATTERN_CONFIGS.length; index += 1) {\n const datePatternConfig = DATE_PATTERN_CONFIGS[index];\n const parsedDate = parse_1.default(operatorDateStr, datePatternConfig.pattern, new Date());\n if (isValid_1.default(parsedDate)) {\n trunFactDate = set_1.default(factDate, datePatternConfig.default);\n utcOperatorDate = set_1.default(utcToZonedTime_1.default(parsedDate, TIMEZONE_UTC), datePatternConfig.default);\n break;\n }\n }\n if (trunFactDate && utcOperatorDate) {\n return compareAsc_1.default(trunFactDate, utcOperatorDate);\n }\n }\n return undefined;\n}\nfunction evalBounds(factValue, operatorValue) {\n const coordinatePointExec = COORDINATE_POINT_REGEX.exec(factValue);\n if (coordinatePointExec && (operatorValue === null || operatorValue === void 0 ? void 0 : operatorValue.length)) {\n const point = helpers_1.point([parseFloat(coordinatePointExec[2]), parseFloat(coordinatePointExec[1])]);\n const polygonCoordinates = operatorValue.reduce((acc, polygonCoordinate) => {\n const polygonCoordinateExec = COORDINATE_POINT_REGEX.exec(polygonCoordinate);\n if (polygonCoordinateExec) {\n acc.push([parseFloat(polygonCoordinateExec[2]), parseFloat(polygonCoordinateExec[1])]);\n }\n return acc;\n }, []);\n const polygon = helpers_1.polygon([polygonCoordinates]);\n return boolean_point_in_polygon_1.default(point, polygon);\n }\n return false;\n}\nfunction evalDistance(factValue, operatorValue) {\n const distanceFromExec = DISTANCE_FROM_REGEX.exec(operatorValue);\n const coordinatePointExec = COORDINATE_POINT_REGEX.exec(factValue);\n if (coordinatePointExec && distanceFromExec) {\n const point = helpers_1.point([parseFloat(coordinatePointExec[2]), parseFloat(coordinatePointExec[1])]);\n const fromPoint = helpers_1.point([parseFloat(distanceFromExec[4]), parseFloat(distanceFromExec[3])]);\n const units = distanceFromExec[2];\n const options = { units: DISTANCE_UNIT_MAPPING[units] || units };\n const distance = distance_1.default(fromPoint, point, options);\n return distance <= parseFloat(distanceFromExec[1]);\n }\n return false;\n}\nfunction evalContains(values, value) {\n if (Array.isArray(values) && (values === null || values === void 0 ? void 0 : values.length) && !isNil(value) && !Array.isArray(value)) {\n if (typeof value === 'string') {\n return values.some((pattern) => matcher_1.default.isMatch(value, String(pattern)));\n }\n return values.includes(value);\n }\n return false;\n}\nfunction evalOperation(operator, factValue, operatorValue) {\n switch (operator) {\n case types_1.Operator.bounds:\n return Array.isArray(operatorValue) && evalBounds(String(factValue), operatorValue);\n case types_1.Operator.contains:\n return evalContains(factValue, operatorValue);\n case types_1.Operator.distance:\n return evalDistance(String(factValue), String(operatorValue));\n case types_1.Operator.equal:\n return compare(factValue, operatorValue) === 0;\n case types_1.Operator.greaterThan:\n return compare(factValue, operatorValue) === 1;\n case types_1.Operator.greaterThanInclusive:\n return compare(factValue, operatorValue) >= 0;\n case types_1.Operator.in:\n return evalContains(operatorValue, factValue);\n case types_1.Operator.lessThan:\n return compare(factValue, operatorValue) === -1;\n case types_1.Operator.lessThanInclusive:\n return compare(factValue, operatorValue) <= 0;\n case types_1.Operator.nil:\n return isNil(factValue);\n case types_1.Operator.percentage:\n return !!(operatorValue && operatorValue <= Math.round(Math.random() * (100 - 1) + 1));\n case types_1.Operator.regex:\n return new RegExp(String(operatorValue)).test(String(factValue));\n case types_1.Operator.truthy:\n return !!factValue;\n case types_1.Operator.wildcard:\n return matcher_1.default.isMatch(String(factValue), String(operatorValue));\n default:\n return false;\n }\n}\nfunction evalConditions(condition, facts) {\n var _a;\n if (condition.not) {\n return !evalConditions(condition.not, facts);\n }\n if (condition.all) {\n return condition.all.every((c) => evalConditions(c, facts));\n }\n if (condition.any) {\n return condition.any.some((c) => evalConditions(c, facts));\n }\n const { fact, operator, value } = condition;\n const factValue = facts[fact];\n const operatorValue = ((_a = value) === null || _a === void 0 ? void 0 : _a.fact) ? facts[value.fact]\n : value;\n return evalOperation(operator, factValue, operatorValue);\n}\nclass RuleEngine {\n constructor(rule) {\n this.rule = rule;\n return this;\n }\n run(facts) {\n return evalConditions(this.rule.conditions, facts);\n }\n}\nexports.RuleEngine = RuleEngine;\n//# sourceMappingURL=RuleEngine.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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(require(\"./ConfigRuleEngine\"), exports);\n__exportStar(require(\"./RuleEngine\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Operator = void 0;\nvar Operator;\n(function (Operator) {\n Operator[\"bounds\"] = \"bounds\";\n Operator[\"contains\"] = \"contains\";\n Operator[\"distance\"] = \"distance\";\n Operator[\"equal\"] = \"equal\";\n Operator[\"greaterThan\"] = \"greaterThan\";\n Operator[\"greaterThanInclusive\"] = \"greaterThanInclusive\";\n Operator[\"in\"] = \"in\";\n Operator[\"lessThan\"] = \"lessThan\";\n Operator[\"lessThanInclusive\"] = \"lessThanInclusive\";\n Operator[\"nil\"] = \"nil\";\n Operator[\"percentage\"] = \"percentage\";\n Operator[\"regex\"] = \"regex\";\n Operator[\"truthy\"] = \"truthy\";\n Operator[\"wildcard\"] = \"wildcard\";\n})(Operator = exports.Operator || (exports.Operator = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant_1 = require(\"@turf/invariant\");\n// http://en.wikipedia.org/wiki/Even%E2%80%93odd_rule\n// modified from: https://github.com/substack/point-in-polygon/blob/master/index.js\n// which was modified from http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html\n/**\n * Takes a {@link Point} and a {@link Polygon} or {@link MultiPolygon} and determines if the point\n * resides inside the polygon. The polygon can be convex or concave. The function accounts for holes.\n *\n * @name booleanPointInPolygon\n * @param {Coord} point input point\n * @param {Feature<Polygon|MultiPolygon>} polygon input polygon or multipolygon\n * @param {Object} [options={}] Optional parameters\n * @param {boolean} [options.ignoreBoundary=false] True if polygon boundary should be ignored when determining if\n * the point is inside the polygon otherwise false.\n * @returns {boolean} `true` if the Point is inside the Polygon; `false` if the Point is not inside the Polygon\n * @example\n * var pt = turf.point([-77, 44]);\n * var poly = turf.polygon([[\n * [-81, 41],\n * [-81, 47],\n * [-72, 47],\n * [-72, 41],\n * [-81, 41]\n * ]]);\n *\n * turf.booleanPointInPolygon(pt, poly);\n * //= true\n */\nfunction booleanPointInPolygon(point, polygon, options) {\n if (options === void 0) { options = {}; }\n // validation\n if (!point) {\n throw new Error(\"point is required\");\n }\n if (!polygon) {\n throw new Error(\"polygon is required\");\n }\n var pt = invariant_1.getCoord(point);\n var geom = invariant_1.getGeom(polygon);\n var type = geom.type;\n var bbox = polygon.bbox;\n var polys = geom.coordinates;\n // Quick elimination if point is not inside bbox\n if (bbox && inBBox(pt, bbox) === false) {\n return false;\n }\n // normalize to multipolygon\n if (type === \"Polygon\") {\n polys = [polys];\n }\n var insidePoly = false;\n for (var i = 0; i < polys.length && !insidePoly; i++) {\n // check if it is in the outer ring first\n if (inRing(pt, polys[i][0], options.ignoreBoundary)) {\n var inHole = false;\n var k = 1;\n // check for the point in any of the holes\n while (k < polys[i].length && !inHole) {\n if (inRing(pt, polys[i][k], !options.ignoreBoundary)) {\n inHole = true;\n }\n k++;\n }\n if (!inHole) {\n insidePoly = true;\n }\n }\n }\n return insidePoly;\n}\nexports.default = booleanPointInPolygon;\n/**\n * inRing\n *\n * @private\n * @param {Array<number>} pt [x,y]\n * @param {Array<Array<number>>} ring [[x,y], [x,y],..]\n * @param {boolean} ignoreBoundary ignoreBoundary\n * @returns {boolean} inRing\n */\nfunction inRing(pt, ring, ignoreBoundary) {\n var isInside = false;\n if (ring[0][0] === ring[ring.length - 1][0] && ring[0][1] === ring[ring.length - 1][1]) {\n ring = ring.slice(0, ring.length - 1);\n }\n for (var i = 0, j = ring.length - 1; i < ring.length; j = i++) {\n var xi = ring[i][0];\n var yi = ring[i][1];\n var xj = ring[j][0];\n var yj = ring[j][1];\n var onBoundary = (pt[1] * (xi - xj) + yi * (xj - pt[0]) + yj * (pt[0] - xi) === 0) &&\n ((xi - pt[0]) * (xj - pt[0]) <= 0) && ((yi - pt[1]) * (yj - pt[1]) <= 0);\n if (onBoundary) {\n return !ignoreBoundary;\n }\n var intersect = ((yi > pt[1]) !== (yj > pt[1])) &&\n (pt[0] < (xj - xi) * (pt[1] - yi) / (yj - yi) + xi);\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\n/**\n * inBBox\n *\n * @private\n * @param {Position} pt point [x,y]\n * @param {BBox} bbox BBox [west, south, east, north]\n * @returns {boolean} true/false if point is inside BBox\n */\nfunction inBBox(pt, bbox) {\n return bbox[0] <= pt[0] &&\n bbox[1] <= pt[1] &&\n bbox[2] >= pt[0] &&\n bbox[3] >= pt[1];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant_1 = require(\"@turf/invariant\");\nvar helpers_1 = require(\"@turf/helpers\");\n//http://en.wikipedia.org/wiki/Haversine_formula\n//http://www.movable-type.co.uk/scripts/latlong.html\n/**\n * Calculates the distance between two {@link Point|points} in degrees, radians, miles, or kilometers.\n * This uses the [Haversine formula](http://en.wikipedia.org/wiki/Haversine_formula) to account for global curvature.\n *\n * @name distance\n * @param {Coord} from origin point\n * @param {Coord} to destination point\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.distance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction distance(from, to, options) {\n if (options === void 0) { options = {}; }\n var coordinates1 = invariant_1.getCoord(from);\n var coordinates2 = invariant_1.getCoord(to);\n var dLat = helpers_1.degreesToRadians((coordinates2[1] - coordinates1[1]));\n var dLon = helpers_1.degreesToRadians((coordinates2[0] - coordinates1[0]));\n var lat1 = helpers_1.degreesToRadians(coordinates1[1]);\n var lat2 = helpers_1.degreesToRadians(coordinates2[1]);\n var a = Math.pow(Math.sin(dLat / 2), 2) +\n Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);\n return helpers_1.radiansToLength(2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)), options.units);\n}\nexports.default = distance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexports.earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.factors = {\n centimeters: exports.earthRadius * 100,\n centimetres: exports.earthRadius * 100,\n degrees: exports.earthRadius / 111325,\n feet: exports.earthRadius * 3.28084,\n inches: exports.earthRadius * 39.37,\n kilometers: exports.earthRadius / 1000,\n kilometres: exports.earthRadius / 1000,\n meters: exports.earthRadius,\n metres: exports.earthRadius,\n miles: exports.earthRadius / 1609.344,\n millimeters: exports.earthRadius * 1000,\n millimetres: exports.earthRadius * 1000,\n nauticalmiles: exports.earthRadius / 1852,\n radians: 1,\n yards: exports.earthRadius * 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / exports.earthRadius,\n yards: 1.0936133,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nfunction feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\nexports.feature = feature;\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<any>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nfunction geometry(type, coordinates, _options) {\n if (_options === void 0) { _options = {}; }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\nexports.geometry = geometry;\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nfunction point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.point = point;\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nfunction points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\nexports.points = points;\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nfunction polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.polygon = polygon;\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nfunction polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\nexports.polygons = polygons;\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nfunction lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.lineString = lineString;\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nfunction lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\nexports.lineStrings = lineStrings;\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nfunction featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\nexports.featureCollection = featureCollection;\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nfunction multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiLineString = multiLineString;\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nfunction multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiPoint = multiPoint;\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nfunction multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiPolygon = multiPolygon;\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nfunction geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\nexports.geometryCollection = geometryCollection;\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nfunction round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\nexports.round = round;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nfunction radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = exports.factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\nexports.radiansToLength = radiansToLength;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nfunction lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = exports.factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\nexports.lengthToRadians = lengthToRadians;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nfunction lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\nexports.lengthToDegrees = lengthToDegrees;\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nfunction bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\nexports.bearingToAzimuth = bearingToAzimuth;\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nfunction radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n}\nexports.radiansToDegrees = radiansToDegrees;\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nfunction degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n}\nexports.degreesToRadians = degreesToRadians;\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nfunction convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\nexports.convertLength = convertLength;\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nfunction convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = exports.areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = exports.areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\nexports.convertArea = convertArea;\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nfunction isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\nexports.isNumber = isNumber;\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nfunction isObject(input) {\n return !!input && input.constructor === Object;\n}\nexports.isObject = isObject;\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nfunction validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\nexports.validateBBox = validateBBox;\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nfunction validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\nexports.validateId = validateId;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar helpers_1 = require(\"@turf/helpers\");\n/**\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\n *\n * @name getCoord\n * @param {Array<number>|Geometry<Point>|Feature<Point>} coord GeoJSON Point or an Array of numbers\n * @returns {Array<number>} coordinates\n * @example\n * var pt = turf.point([10, 10]);\n *\n * var coord = turf.getCoord(pt);\n * //= [10, 10]\n */\nfunction getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" &&\n coord.geometry !== null &&\n coord.geometry.type === \"Point\") {\n return coord.geometry.coordinates;\n }\n if (coord.type === \"Point\") {\n return coord.coordinates;\n }\n }\n if (Array.isArray(coord) &&\n coord.length >= 2 &&\n !Array.isArray(coord[0]) &&\n !Array.isArray(coord[1])) {\n return coord;\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\nexports.getCoord = getCoord;\n/**\n * Unwrap coordinates from a Feature, Geometry Object or an Array\n *\n * @name getCoords\n * @param {Array<any>|Geometry|Feature} coords Feature, Geometry Object or an Array\n * @returns {Array<any>} coordinates\n * @example\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\n *\n * var coords = turf.getCoords(poly);\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\n */\nfunction getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n // Feature\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n }\n else {\n // Geometry\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\n}\nexports.getCoords = getCoords;\n/**\n * Checks if coordinates contains a number\n *\n * @name containsNumber\n * @param {Array<any>} coordinates GeoJSON Coordinates\n * @returns {boolean} true if Array contains a number\n */\nfunction containsNumber(coordinates) {\n if (coordinates.length > 1 &&\n helpers_1.isNumber(coordinates[0]) &&\n helpers_1.isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\nexports.containsNumber = containsNumber;\n/**\n * Enforce expectations about types of GeoJSON objects for Turf.\n *\n * @name geojsonType\n * @param {GeoJSON} value any GeoJSON object\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nfunction geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n value.type);\n }\n}\nexports.geojsonType = geojsonType;\n/**\n * Enforce expectations about types of {@link Feature} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name featureOf\n * @param {Feature} feature a feature with an expected geometry type\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} error if value is not the expected type.\n */\nfunction featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n}\nexports.featureOf = featureOf;\n/**\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name collectionOf\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nfunction collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\n }\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\n var feature = _a[_i];\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n }\n}\nexports.collectionOf = collectionOf;\n/**\n * Get Geometry from Feature or Geometry Object\n *\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\n * @returns {Geometry|null} GeoJSON Geometry Object\n * @throws {Error} if geojson is not a Feature or Geometry Object\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getGeom(point)\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\n */\nfunction getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\nexports.getGeom = getGeom;\n/**\n * Get GeoJSON object's type, Geometry type is prioritize.\n *\n * @param {GeoJSON} geojson GeoJSON object\n * @param {string} [name=\"geojson\"] name of the variable to display in error message (unused)\n * @returns {string} GeoJSON type\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getType(point)\n * //=\"Point\"\n */\nfunction getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\nexports.getType = getType;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cardNumber = void 0;\nvar luhn10 = require(\"./luhn-10\");\nvar getCardTypes = require(\"credit-card-type\");\nfunction verification(card, isPotentiallyValid, isValid) {\n return {\n card: card,\n isPotentiallyValid: isPotentiallyValid,\n isValid: isValid,\n };\n}\nfunction cardNumber(value, options) {\n if (options === void 0) { options = {}; }\n var isPotentiallyValid, isValid, maxLength;\n if (typeof value !== \"string\" && typeof value !== \"number\") {\n return verification(null, false, false);\n }\n var testCardValue = String(value).replace(/-|\\s/g, \"\");\n if (!/^\\d*$/.test(testCardValue)) {\n return verification(null, false, false);\n }\n var potentialTypes = getCardTypes(testCardValue);\n if (potentialTypes.length === 0) {\n return verification(null, false, false);\n }\n else if (potentialTypes.length !== 1) {\n return verification(null, true, false);\n }\n var cardType = potentialTypes[0];\n if (options.maxLength && testCardValue.length > options.maxLength) {\n return verification(cardType, false, false);\n }\n if (cardType.type === getCardTypes.types.UNIONPAY &&\n options.luhnValidateUnionPay !== true) {\n isValid = true;\n }\n else {\n isValid = luhn10(testCardValue);\n }\n maxLength = Math.max.apply(null, cardType.lengths);\n if (options.maxLength) {\n maxLength = Math.min(options.maxLength, maxLength);\n }\n for (var i = 0; i < cardType.lengths.length; i++) {\n if (cardType.lengths[i] === testCardValue.length) {\n isPotentiallyValid = testCardValue.length < maxLength || isValid;\n return verification(cardType, isPotentiallyValid, isValid);\n }\n }\n return verification(cardType, testCardValue.length < maxLength, false);\n}\nexports.cardNumber = cardNumber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cardholderName = void 0;\nvar CARD_NUMBER_REGEX = /^[\\d\\s-]*$/;\nvar MAX_LENGTH = 255;\nfunction verification(isValid, isPotentiallyValid) {\n return { isValid: isValid, isPotentiallyValid: isPotentiallyValid };\n}\nfunction cardholderName(value) {\n if (typeof value !== \"string\") {\n return verification(false, false);\n }\n if (value.length === 0) {\n return verification(false, true);\n }\n if (value.length > MAX_LENGTH) {\n return verification(false, false);\n }\n if (CARD_NUMBER_REGEX.test(value)) {\n return verification(false, true);\n }\n return verification(true, true);\n}\nexports.cardholderName = cardholderName;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cvv = void 0;\nvar DEFAULT_LENGTH = 3;\nfunction includes(array, thing) {\n for (var i = 0; i < array.length; i++) {\n if (thing === array[i]) {\n return true;\n }\n }\n return false;\n}\nfunction max(array) {\n var maximum = DEFAULT_LENGTH;\n var i = 0;\n for (; i < array.length; i++) {\n maximum = array[i] > maximum ? array[i] : maximum;\n }\n return maximum;\n}\nfunction verification(isValid, isPotentiallyValid) {\n return { isValid: isValid, isPotentiallyValid: isPotentiallyValid };\n}\nfunction cvv(value, maxLength) {\n if (maxLength === void 0) { maxLength = DEFAULT_LENGTH; }\n maxLength = maxLength instanceof Array ? maxLength : [maxLength];\n if (typeof value !== \"string\") {\n return verification(false, false);\n }\n if (!/^\\d*$/.test(value)) {\n return verification(false, false);\n }\n if (includes(maxLength, value.length)) {\n return verification(true, true);\n }\n if (value.length < Math.min.apply(null, maxLength)) {\n return verification(false, true);\n }\n if (value.length > max(maxLength)) {\n return verification(false, false);\n }\n return verification(true, true);\n}\nexports.cvv = cvv;\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expirationDate = void 0;\nvar parse_date_1 = require(\"./lib/parse-date\");\nvar expiration_month_1 = require(\"./expiration-month\");\nvar expiration_year_1 = require(\"./expiration-year\");\nfunction verification(isValid, isPotentiallyValid, month, year) {\n return {\n isValid: isValid,\n isPotentiallyValid: isPotentiallyValid,\n month: month,\n year: year,\n };\n}\nfunction expirationDate(value, maxElapsedYear) {\n var date;\n if (typeof value === \"string\") {\n value = value.replace(/^(\\d\\d) (\\d\\d(\\d\\d)?)$/, \"$1/$2\");\n date = parse_date_1.parseDate(String(value));\n }\n else if (value !== null && typeof value === \"object\") {\n var fullDate = __assign({}, value);\n date = {\n month: String(fullDate.month),\n year: String(fullDate.year),\n };\n }\n else {\n return verification(false, false, null, null);\n }\n var monthValid = expiration_month_1.expirationMonth(date.month);\n var yearValid = expiration_year_1.expirationYear(date.year, maxElapsedYear);\n if (monthValid.isValid) {\n if (yearValid.isCurrentYear) {\n var isValidForThisYear = monthValid.isValidForThisYear;\n return verification(isValidForThisYear, isValidForThisYear, date.month, date.year);\n }\n if (yearValid.isValid) {\n return verification(true, true, date.month, date.year);\n }\n }\n if (monthValid.isPotentiallyValid && yearValid.isPotentiallyValid) {\n return verification(false, true, null, null);\n }\n return verification(false, false, null, null);\n}\nexports.expirationDate = expirationDate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expirationMonth = void 0;\nfunction verification(isValid, isPotentiallyValid, isValidForThisYear) {\n return {\n isValid: isValid,\n isPotentiallyValid: isPotentiallyValid,\n isValidForThisYear: isValidForThisYear || false,\n };\n}\nfunction expirationMonth(value) {\n var currentMonth = new Date().getMonth() + 1;\n if (typeof value !== \"string\") {\n return verification(false, false);\n }\n if (value.replace(/\\s/g, \"\") === \"\" || value === \"0\") {\n return verification(false, true);\n }\n if (!/^\\d*$/.test(value)) {\n return verification(false, false);\n }\n var month = parseInt(value, 10);\n if (isNaN(Number(value))) {\n return verification(false, false);\n }\n var result = month > 0 && month < 13;\n return verification(result, result, result && month >= currentMonth);\n}\nexports.expirationMonth = expirationMonth;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expirationYear = void 0;\nvar DEFAULT_VALID_NUMBER_OF_YEARS_IN_THE_FUTURE = 19;\nfunction verification(isValid, isPotentiallyValid, isCurrentYear) {\n return {\n isValid: isValid,\n isPotentiallyValid: isPotentiallyValid,\n isCurrentYear: isCurrentYear || false,\n };\n}\nfunction expirationYear(value, maxElapsedYear) {\n if (maxElapsedYear === void 0) { maxElapsedYear = DEFAULT_VALID_NUMBER_OF_YEARS_IN_THE_FUTURE; }\n var isCurrentYear;\n if (typeof value !== \"string\") {\n return verification(false, false);\n }\n if (value.replace(/\\s/g, \"\") === \"\") {\n return verification(false, true);\n }\n if (!/^\\d*$/.test(value)) {\n return verification(false, false);\n }\n var len = value.length;\n if (len < 2) {\n return verification(false, true);\n }\n var currentYear = new Date().getFullYear();\n if (len === 3) {\n // 20x === 20x\n var firstTwo = value.slice(0, 2);\n var currentFirstTwo = String(currentYear).slice(0, 2);\n return verification(false, firstTwo === currentFirstTwo);\n }\n if (len > 4) {\n return verification(false, false);\n }\n var numericValue = parseInt(value, 10);\n var twoDigitYear = Number(String(currentYear).substr(2, 2));\n var valid = false;\n if (len === 2) {\n if (String(currentYear).substr(0, 2) === value) {\n return verification(false, true);\n }\n isCurrentYear = twoDigitYear === numericValue;\n valid =\n numericValue >= twoDigitYear &&\n numericValue <= twoDigitYear + maxElapsedYear;\n }\n else if (len === 4) {\n isCurrentYear = currentYear === numericValue;\n valid =\n numericValue >= currentYear &&\n numericValue <= currentYear + maxElapsedYear;\n }\n return verification(valid, valid, isCurrentYear);\n}\nexports.expirationYear = expirationYear;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\nvar creditCardType = __importStar(require(\"credit-card-type\"));\nvar cardholder_name_1 = require(\"./cardholder-name\");\nvar card_number_1 = require(\"./card-number\");\nvar expiration_date_1 = require(\"./expiration-date\");\nvar expiration_month_1 = require(\"./expiration-month\");\nvar expiration_year_1 = require(\"./expiration-year\");\nvar cvv_1 = require(\"./cvv\");\nvar postal_code_1 = require(\"./postal-code\");\nvar cardValidator = {\n creditCardType: creditCardType,\n cardholderName: cardholder_name_1.cardholderName,\n number: card_number_1.cardNumber,\n expirationDate: expiration_date_1.expirationDate,\n expirationMonth: expiration_month_1.expirationMonth,\n expirationYear: expiration_year_1.expirationYear,\n cvv: cvv_1.cvv,\n postalCode: postal_code_1.postalCode,\n};\nmodule.exports = cardValidator;\n","\"use strict\";\n// Polyfill taken from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray#Polyfill>.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArray = void 0;\nexports.isArray = Array.isArray ||\n function (arg) {\n return Object.prototype.toString.call(arg) === \"[object Array]\";\n };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseDate = void 0;\nvar expiration_year_1 = require(\"../expiration-year\");\nvar is_array_1 = require(\"./is-array\");\nfunction getNumberOfMonthDigitsInDateString(dateString) {\n var firstCharacter = Number(dateString[0]);\n var assumedYear;\n /*\n if the first character in the string starts with `0`,\n we know that the month will be 2 digits.\n \n '0122' => {month: '01', year: '22'}\n */\n if (firstCharacter === 0) {\n return 2;\n }\n /*\n if the first character in the string starts with\n number greater than 1, it must be a 1 digit month\n \n '322' => {month: '3', year: '22'}\n */\n if (firstCharacter > 1) {\n return 1;\n }\n /*\n if the first 2 characters make up a number between\n 13-19, we know that the month portion must be 1\n \n '139' => {month: '1', year: '39'}\n */\n if (firstCharacter === 1 && Number(dateString[1]) > 2) {\n return 1;\n }\n /*\n if the first 2 characters make up a number between\n 10-12, we check if the year portion would be considered\n valid if we assumed that the month was 1. If it is\n not potentially valid, we assume the month must have\n 2 digits.\n \n '109' => {month: '10', year: '9'}\n '120' => {month: '1', year: '20'} // when checked in the year 2019\n '120' => {month: '12', year: '0'} // when checked in the year 2021\n */\n if (firstCharacter === 1) {\n assumedYear = dateString.substr(1);\n return expiration_year_1.expirationYear(assumedYear).isPotentiallyValid ? 1 : 2;\n }\n /*\n If the length of the value is exactly 5 characters,\n we assume a full year was passed in, meaning the remaining\n single leading digit must be the month value.\n \n '12202' => {month: '1', year: '2202'}\n */\n if (dateString.length === 5) {\n return 1;\n }\n /*\n If the length of the value is more than five characters,\n we assume a full year was passed in addition to the month\n and therefore the month portion must be 2 digits.\n \n '112020' => {month: '11', year: '2020'}\n */\n if (dateString.length > 5) {\n return 2;\n }\n /*\n By default, the month value is the first value\n */\n return 1;\n}\nfunction parseDate(datestring) {\n var date;\n if (/^\\d{4}-\\d{1,2}$/.test(datestring)) {\n date = datestring.split(\"-\").reverse();\n }\n else if (/\\//.test(datestring)) {\n date = datestring.split(/\\s*\\/\\s*/g);\n }\n else if (/\\s/.test(datestring)) {\n date = datestring.split(/ +/g);\n }\n if (is_array_1.isArray(date)) {\n return {\n month: date[0] || \"\",\n year: date.slice(1).join(),\n };\n }\n var numberOfDigitsInMonth = getNumberOfMonthDigitsInDateString(datestring);\n var month = datestring.substr(0, numberOfDigitsInMonth);\n return {\n month: month,\n year: datestring.substr(month.length),\n };\n}\nexports.parseDate = parseDate;\n","/* eslint-disable */\n/*\n * Luhn algorithm implementation in JavaScript\n * Copyright (c) 2009 Nicholas C. Zakas\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\"use strict\";\nfunction luhn10(identifier) {\n var sum = 0;\n var alt = false;\n var i = identifier.length - 1;\n var num;\n while (i >= 0) {\n num = parseInt(identifier.charAt(i), 10);\n if (alt) {\n num *= 2;\n if (num > 9) {\n num = (num % 10) + 1; // eslint-disable-line no-extra-parens\n }\n }\n alt = !alt;\n sum += num;\n i--;\n }\n return sum % 10 === 0;\n}\nmodule.exports = luhn10;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.postalCode = void 0;\nvar DEFAULT_MIN_POSTAL_CODE_LENGTH = 3;\nfunction verification(isValid, isPotentiallyValid) {\n return { isValid: isValid, isPotentiallyValid: isPotentiallyValid };\n}\nfunction postalCode(value, options) {\n if (options === void 0) { options = {}; }\n var minLength = options.minLength || DEFAULT_MIN_POSTAL_CODE_LENGTH;\n if (typeof value !== \"string\") {\n return verification(false, false);\n }\n else if (value.length < minLength) {\n return verification(false, true);\n }\n return verification(true, true);\n}\nexports.postalCode = postalCode;\n","/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\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\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\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 = require(\"./lib/card-types\");\nvar add_matching_cards_to_results_1 = require(\"./lib/add-matching-cards-to-results\");\nvar is_valid_input_type_1 = require(\"./lib/is-valid-input-type\");\nvar find_best_match_1 = require(\"./lib/find-best-match\");\nvar clone_1 = require(\"./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 = 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 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 (!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 add_matching_cards_to_results_1.addMatchingCardsToResults(cardNumber, cardConfiguration, results);\n });\n var bestMatch = find_best_match_1.findBestMatch(results);\n if (bestMatch) {\n return [bestMatch];\n }\n return results;\n}\ncreditCardType.getTypeInfo = function (cardType) {\n return 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(\"\\\"\" + 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 = 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 = clone_1.clone(ORIGINAL_TEST_ORDER);\n customCards = {};\n};\ncreditCardType.types = cardNames;\nmodule.exports = creditCardType;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.addMatchingCardsToResults = void 0;\nvar clone_1 = require(\"./clone\");\nvar matches_1 = require(\"./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 (!matches_1.matches(cardNumber, pattern)) {\n continue;\n }\n var clonedCardConfiguration = 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","\"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 [624, 626],\n [62100, 62182],\n [62184, 62187],\n [62185, 62197],\n [62200, 62205],\n [622010, 622999],\n 622018,\n [622019, 622999],\n [62207, 62209],\n [622126, 622925],\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","\"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","\"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","\"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","\"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","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","/**\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\n * `date` as it will be rendered in the `timeZone`.\n */\nexport default function tzTokenizeDate(date, timeZone) {\n var dtf = getDateTimeFormat(timeZone)\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date)\n}\n\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n}\n\nfunction partsOffset(dtf, date) {\n var formatted = dtf.formatToParts(date)\n var filled = []\n for (var i = 0; i < formatted.length; i++) {\n var pos = typeToPos[formatted[i].type]\n\n if (pos >= 0) {\n filled[pos] = parseInt(formatted[i].value, 10)\n }\n }\n return filled\n}\n\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, '')\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted)\n // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]]\n}\n\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\n// to get deterministic local date/time output according to the `en-US` locale which\n// can be used to extract local time parts as necessary.\nvar dtfCache = {}\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\n var testDateFormatted = new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: 'America/New_York',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n }).format(new Date('2014-06-25T04:00:00.123Z'))\n var hourCycleSupported =\n testDateFormatted === '06/25/2014, 00:00:00' ||\n testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00'\n\n dtfCache[timeZone] = hourCycleSupported\n ? new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: timeZone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n })\n : new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: timeZone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n })\n }\n return dtfCache[timeZone]\n}\n","import tzTokenizeDate from '../tzTokenizeDate/index.js'\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\n\nvar patterns = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-])(\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/,\n timezoneIANA: /(UTC|(?:[a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?))$/\n}\n\n// Parse various time zone offset formats to an offset in milliseconds\nexport default function tzParseTimezone(timezoneString, date) {\n var token\n var absoluteOffset\n\n // Z\n token = patterns.timezoneZ.exec(timezoneString)\n if (token) {\n return 0\n }\n\n var hours\n\n // ±hh\n token = patterns.timezoneHH.exec(timezoneString)\n if (token) {\n hours = parseInt(token[2], 10)\n\n if (!validateTimezone(hours)) {\n return NaN\n }\n\n absoluteOffset = hours * MILLISECONDS_IN_HOUR\n return token[1] === '+' ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = patterns.timezoneHHMM.exec(timezoneString)\n if (token) {\n hours = parseInt(token[2], 10)\n var minutes = parseInt(token[3], 10)\n\n if (!validateTimezone(hours, minutes)) {\n return NaN\n }\n\n absoluteOffset =\n hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\n return token[1] === '+' ? -absoluteOffset : absoluteOffset\n }\n\n // IANA time zone\n token = patterns.timezoneIANA.exec(timezoneString)\n if (token) {\n // var [fYear, fMonth, fDay, fHour, fMinute, fSecond] = tzTokenizeDate(date, timezoneString)\n var tokens = tzTokenizeDate(date, timezoneString)\n var asUTC = Date.UTC(\n tokens[0],\n tokens[1] - 1,\n tokens[2],\n tokens[3],\n tokens[4],\n tokens[5]\n )\n var timestampWithMsZeroed = date.getTime() - (date.getTime() % 1000)\n return -(asUTC - timestampWithMsZeroed)\n }\n\n return 0\n}\n\nfunction validateTimezone(hours, minutes) {\n if (minutes != null && (minutes < 0 || minutes > 59)) {\n return false\n }\n\n return true\n}\n","import toInteger from 'date-fns/esm/_lib/toInteger/index.js'\nimport getTimezoneOffsetInMilliseconds from 'date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js'\nimport tzParseTimezone from '../_lib/tzParseTimezone'\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar patterns = {\n dateTimeDelimeter: /[T ]/,\n plainTime: /:/,\n timeZoneDelimeter: /[Z ]/i,\n\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n ],\n\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n\n // timezone tokens (to identify the presence of a tz)\n timezone: /([Z+-].*| UTC|(?:[a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?))$/\n}\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function toDate(argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\n '1 argument required, but only ' + arguments.length + ' present'\n )\n }\n\n if (argument === null) {\n return new Date(NaN)\n }\n\n var options = dirtyOptions || {}\n\n var additionalDigits =\n options.additionalDigits == null\n ? DEFAULT_ADDITIONAL_DIGITS\n : toInteger(options.additionalDigits)\n if (\n additionalDigits !== 2 &&\n additionalDigits !== 1 &&\n additionalDigits !== 0\n ) {\n throw new RangeError('additionalDigits must be 0, 1 or 2')\n }\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === 'object' &&\n Object.prototype.toString.call(argument) === '[object Date]')\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (\n typeof argument === 'number' ||\n Object.prototype.toString.call(argument) === '[object Number]'\n ) {\n return new Date(argument)\n } else if (\n !(\n typeof argument === 'string' ||\n Object.prototype.toString.call(argument) === '[object String]'\n )\n ) {\n return new Date(NaN)\n }\n\n var dateStrings = splitDateString(argument)\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n var year = parseYearResult.year\n var restDateString = parseYearResult.restDateString\n\n var date = parseDate(restDateString, year)\n\n if (isNaN(date)) {\n return new Date(NaN)\n }\n\n if (date) {\n var timestamp = date.getTime()\n var time = 0\n var offset\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time)\n\n if (isNaN(time)) {\n return new Date(NaN)\n }\n }\n\n if (dateStrings.timezone || options.timeZone) {\n offset = tzParseTimezone(\n dateStrings.timezone || options.timeZone,\n new Date(timestamp + time)\n )\n if (isNaN(offset)) {\n return new Date(NaN)\n }\n } else {\n // get offset accurate to hour in timezones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time))\n offset = getTimezoneOffsetInMilliseconds(\n new Date(timestamp + time + offset)\n )\n }\n\n return new Date(timestamp + time + offset)\n } else {\n return new Date(NaN)\n }\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {}\n var array = dateString.split(patterns.dateTimeDelimeter)\n var timeString\n\n if (patterns.plainTime.test(array[0])) {\n dateStrings.date = null\n timeString = array[0]\n } else {\n dateStrings.date = array[0]\n timeString = array[1]\n dateStrings.timezone = array[2]\n if (patterns.timeZoneDelimeter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimeter)[0]\n timeString = dateString.substr(dateStrings.date.length, dateString.length)\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString)\n if (token) {\n dateStrings.time = timeString.replace(token[1], '')\n dateStrings.timezone = token[1]\n } else {\n dateStrings.time = timeString\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits]\n var patternYYYYY = patterns.YYYYY[additionalDigits]\n\n var token\n\n // YYYY or ±YYYYY\n token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString)\n if (token) {\n var yearString = token[1]\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString)\n if (token) {\n var centuryString = token[1]\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token\n var date\n var month\n var week\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0)\n date.setUTCFullYear(year)\n return date\n }\n\n // YYYY-MM\n token = patterns.MM.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n\n if (!validateDate(year, month)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month)\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString)\n if (token) {\n date = new Date(0)\n var dayOfYear = parseInt(token[1], 10)\n\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, 0, dayOfYear)\n return date\n }\n\n // yyyy-MM-dd or YYYYMMDD\n token = patterns.MMDD.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n var day = parseInt(token[2], 10)\n\n if (!validateDate(year, month, day)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month, day)\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n\n if (!validateWeekDate(year, week)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n var dayOfWeek = parseInt(token[2], 10) - 1\n\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime(timeString) {\n var token\n var hours\n var minutes\n\n // hh\n token = patterns.HH.exec(timeString)\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'))\n\n if (!validateTime(hours)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseFloat(token[2].replace(',', '.'))\n\n if (!validateTime(hours, minutes)) {\n return NaN\n }\n\n return (\n (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\n )\n }\n\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseInt(token[2], 10)\n var seconds = parseFloat(token[3].replace(',', '.'))\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN\n }\n\n return (\n (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE +\n seconds * 1000\n )\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0\n day = day || 0\n var date = new Date(0)\n date.setUTCFullYear(isoWeekYear, 0, 4)\n var fourthOfJanuaryDay = date.getUTCDay() || 7\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n date.setUTCDate(date.getUTCDate() + diff)\n return date\n}\n\n// Validation functions\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)\n}\n\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false\n }\n\n if (date != null) {\n if (date < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year)\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false\n }\n }\n\n return true\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year)\n if (isLeapYear && dayOfYear > 366) {\n return false\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false\n }\n\n return true\n}\n\nfunction validateWeekDate(year, week, day) {\n if (week < 0 || week > 52) {\n return false\n }\n\n if (day != null && (day < 0 || day > 6)) {\n return false\n }\n\n return true\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours != null && (hours < 0 || hours >= 25)) {\n return false\n }\n\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false\n }\n\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false\n }\n\n return true\n}\n","import tzParseTimezone from '../_lib/tzParseTimezone'\nimport subMilliseconds from 'date-fns/esm/subMilliseconds'\nimport toDate from '../toDate'\n\n/**\n * @name utcToZonedTime\n * @category Time Zone Helpers\n * @summary Get a date/time representing local time in a given time zone from the UTC date\n *\n * @description\n * Returns a date instance with values representing the local time in the time zone\n * specified of the UTC time from the date provided. In other words, when the new date\n * is formatted it will show the equivalent hours in the target time zone regardless\n * of the current system time zone.\n *\n * @param {Date|String|Number} date - the date with the relevant UTC time\n * @param {String} timeZone - the time zone to get local time for, can be an offset or IANA time zone\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the new date with the equivalent time in the time zone\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // In June 10am UTC is 6am in New York (-04:00)\n * const result = utcToZonedTime('2014-06-25T10:00:00.000Z', 'America/New_York')\n * //=> Jun 25 2014 06:00:00\n */\nexport default function utcToZonedTime(dirtyDate, timeZone, options) {\n var date = toDate(dirtyDate, options)\n\n // This date has the UTC time values of the input date at the system time zone\n var utcDate = new Date(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n )\n // We just need to apply the offset indicated by the time zone to this localized date\n var offsetMilliseconds = tzParseTimezone(timeZone, date)\n\n return offsetMilliseconds\n ? subMilliseconds(utcDate, offsetMilliseconds)\n : utcDate\n}\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\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 * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;","/**\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'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;","\"use strict\";\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\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\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'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-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'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","export var focusOn = function (target, focusOptions) {\n if (!target) {\n // not clear how, but is possible https://github.com/theKashey/focus-lock/issues/53\n return;\n }\n if ('focus' in target) {\n target.focus(focusOptions);\n }\n if ('contentWindow' in target && target.contentWindow) {\n target.contentWindow.focus();\n }\n};\n","/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';\n","import { contains } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getFirst, toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\nvar focusInFrame = function (frame, activeElement) { return frame === activeElement; };\nvar focusInsideIframe = function (topNode, activeElement) {\n return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) { return focusInFrame(node, activeElement); }));\n};\n/**\n * @returns {Boolean} true, if the current focus is inside given node or nodes.\n * Supports nodes hidden inside shadowDom\n */\nexport var focusInside = function (topNode, activeElement) {\n // const activeElement = document && getActiveElement();\n if (activeElement === void 0) { activeElement = getActiveElement(getFirst(topNode).ownerDocument); }\n if (!activeElement || (activeElement.dataset && activeElement.dataset.focusGuard)) {\n return false;\n }\n return getAllAffectedNodes(topNode).some(function (node) {\n return contains(node, activeElement) || focusInsideIframe(node, activeElement);\n });\n};\n","import { FOCUS_ALLOW } from './constants';\nimport { contains } from './utils/DOMutils';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\n/**\n * checks if focus is hidden FROM the focus-lock\n * ie contained inside a node focus-lock shall ignore\n *\n * This is a utility function coupled with {@link FOCUS_ALLOW} constant\n *\n * @returns {boolean} focus is currently is in \"allow\" area\n */\nexport var focusIsHidden = function (inDocument) {\n if (inDocument === void 0) { inDocument = document; }\n var activeElement = getActiveElement(inDocument);\n if (!activeElement) {\n return false;\n }\n // this does not support setting FOCUS_ALLOW within shadow dom\n return toArray(inDocument.querySelectorAll(\"[\".concat(FOCUS_ALLOW, \"]\"))).some(function (node) { return contains(node, activeElement); });\n};\n","import { getAllAffectedNodes } from './utils/all-affected';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\nimport { orderByTabIndex } from './utils/tabOrder';\nimport { getFocusables } from './utils/tabUtils';\n/**\n * traverses all related nodes (including groups) returning a list of all nodes(outer and internal) with meta information\n * This is low-level API!\n * @returns list of focusable elements inside a given top(!) node.\n * @see {@link getFocusableNodes} providing a simpler API\n */\nexport var expandFocusableNodes = function (topNode) {\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var outerNodes = orderByTabIndex(getFocusables([commonParent], true), true, true);\n var innerElements = getFocusables(entries, false);\n return outerNodes.map(function (_a) {\n var node = _a.node, index = _a.index;\n return ({\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node),\n });\n });\n};\n","import { isRadioElement } from './is';\nvar findSelectedRadio = function (node, nodes) {\n return nodes\n .filter(isRadioElement)\n .filter(function (el) { return el.name === node.name; })\n .filter(function (el) { return el.checked; })[0] || node;\n};\nexport var correctNode = function (node, nodes) {\n if (isRadioElement(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n return node;\n};\n/**\n * giving a set of radio inputs keeps only selected (tabbable) ones\n * @param nodes\n */\nexport var correctNodes = function (nodes) {\n // IE11 has no Set(array) constructor\n var resultSet = new Set();\n nodes.forEach(function (node) { return resultSet.add(correctNode(node, nodes)); });\n // using filter to support IE11\n return nodes.filter(function (node) { return resultSet.has(node); });\n};\n","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function (nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n return nodes[0];\n};\nexport var pickFocusable = function (nodes, node) {\n return nodes.indexOf(correctNode(node, nodes));\n};\n","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\n/**\n * Main solver for the \"find next focus\" question\n * @param innerNodes - used to control \"return focus\"\n * @param innerTabbables - used to control \"autofocus\"\n * @param outerNodes\n * @param activeElement\n * @param lastNode\n * @returns {number|string|undefined|*}\n */\nexport var newFocus = function (innerNodes, innerTabbables, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n // focus is inside\n if (activeElement && innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n var activeIndex = activeElement !== undefined ? outerNodes.indexOf(activeElement) : -1;\n var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n // no active focus (or focus is on the body)\n if (activeIndex === -1) {\n // known fallback\n if (lastNodeInside !== -1) {\n return lastNodeInside;\n }\n return NEW_FOCUS;\n }\n // new focus, nothing to calculate\n if (lastNodeInside === -1) {\n return NEW_FOCUS;\n }\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var currentFocusableIndex = activeElement !== undefined ? correctedNodes.indexOf(activeElement) : -1;\n var previousFocusableIndex = lastNode ? correctedNodes.indexOf(lastNode) : currentFocusableIndex;\n var tabbableNodes = correctedNodes.filter(function (node) { return node.tabIndex >= 0; });\n var currentTabbableIndex = activeElement !== undefined ? tabbableNodes.indexOf(activeElement) : -1;\n var previousTabbableIndex = lastNode ? tabbableNodes.indexOf(lastNode) : currentTabbableIndex;\n var focusIndexDiff = currentTabbableIndex >= 0 && previousTabbableIndex >= 0\n ? // old/new are tabbables, measure distance in tabbable space\n previousTabbableIndex - currentTabbableIndex\n : // or else measure in focusable space\n previousFocusableIndex - currentFocusableIndex;\n // old focus\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n // no tabbable elements, autofocus is not possible\n if (innerTabbables.length === 0) {\n // an edge case with no tabbable elements\n // return the last focusable one\n // with some probability this will prevent focus from cycling across the lock, but there is no tabbale elements to cycle to\n return lastNodeInside;\n }\n var returnFirstNode = pickFocusable(innerNodes, innerTabbables[0]);\n var returnLastNode = pickFocusable(innerNodes, innerTabbables[innerTabbables.length - 1]);\n // first element\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n // last element\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n // jump out, but not on the guard\n if (indexDiff && Math.abs(focusIndexDiff) > 1) {\n return lastNodeInside;\n }\n // focus above lock\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n // focus below lock\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n // index is inside tab order, but outside Lock\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n // do nothing\n return undefined;\n};\n","import { filterAutoFocusable } from './DOMutils';\nimport { pickFirstFocus } from './firstFocus';\nimport { getDataset } from './is';\nvar findAutoFocused = function (autoFocusables) {\n return function (node) {\n var _a;\n var autofocus = (_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.autofocus;\n return (\n // @ts-expect-error\n node.autofocus ||\n //\n (autofocus !== undefined && autofocus !== 'false') ||\n //\n autoFocusables.indexOf(node) >= 0);\n };\n};\nexport var pickAutofocus = function (nodesIndexes, orderedNodes, groups) {\n var nodes = nodesIndexes.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var autoFocusable = filterAutoFocusable(nodes.filter(findAutoFocused(groups)));\n if (autoFocusable && autoFocusable.length) {\n return pickFirstFocus(autoFocusable);\n }\n return pickFirstFocus(filterAutoFocusable(orderedNodes));\n};\n","import { NEW_FOCUS, newFocus } from './solver';\nimport { getFocusableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { asArray, getFirst } from './utils/array';\nimport { pickAutofocus } from './utils/auto-focus';\nimport { getActiveElement } from './utils/getActiveElement';\nimport { isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\nvar reorderNodes = function (srcNodes, dstNodes) {\n var remap = new Map();\n // no Set(dstNodes) for IE11 :(\n dstNodes.forEach(function (entity) { return remap.set(entity.node, entity); });\n // remap to dstNodes\n return srcNodes.map(function (node) { return remap.get(node); }).filter(isDefined);\n};\n/**\n * contains the main logic of the `focus-lock` package.\n *\n * ! you probably dont need this function !\n *\n * given top node(s) and the last active element returns the element to be focused next\n * @returns element which should be focused to move focus inside\n * @param topNode\n * @param lastNode\n */\nexport var focusSolver = function (topNode, lastNode) {\n var activeElement = getActiveElement(asArray(topNode).length > 0 ? document : getFirst(topNode).ownerDocument);\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var visibilityCache = new Map();\n var anyFocusable = getFocusableNodes(entries, visibilityCache);\n var innerElements = anyFocusable.filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n });\n if (!innerElements[0]) {\n return undefined;\n }\n var outerNodes = getFocusableNodes([commonParent], visibilityCache).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n // collect inner focusable and separately tabbables\n var innerFocusables = orderedInnerElements.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var innerTabbable = orderedInnerElements.filter(function (_a) {\n var tabIndex = _a.tabIndex;\n return tabIndex >= 0;\n }).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var newId = newFocus(innerFocusables, innerTabbable, outerNodes, activeElement, lastNode);\n if (newId === NEW_FOCUS) {\n var focusNode = \n // first try only tabbable, and the fallback to all focusable, as long as at least one element should be picked for focus\n pickAutofocus(anyFocusable, innerTabbable, allParentAutofocusables(entries, visibilityCache)) ||\n pickAutofocus(anyFocusable, innerFocusables, allParentAutofocusables(entries, visibilityCache));\n if (focusNode) {\n return { node: focusNode };\n }\n else {\n console.warn('focus-lock: cannot find any node to move focus into');\n return undefined;\n }\n }\n if (newId === undefined) {\n return newId;\n }\n return orderedInnerElements[newId];\n};\n","import { focusOn } from './commands';\nimport { focusSolver } from './focusSolver';\nvar guardCount = 0;\nvar lockDisabled = false;\n/**\n * The main functionality of the focus-lock package\n *\n * Contains focus at a given node.\n * The last focused element will help to determine which element(first or last) should be focused.\n * The found element will be focused.\n *\n * This is one time action (move), not a persistent focus-lock\n *\n * HTML markers (see {@link import('./constants').FOCUS_AUTO} constants) can control autofocus\n * @see {@link focusSolver} for the same functionality without autofocus\n */\nexport var moveFocusInside = function (topNode, lastNode, options) {\n if (options === void 0) { options = {}; }\n var focusable = focusSolver(topNode, lastNode);\n // global local side effect to countain recursive lock activation and resolve focus-fighting\n if (lockDisabled) {\n return;\n }\n if (focusable) {\n /** +FOCUS-FIGHTING prevention **/\n if (guardCount > 2) {\n // we have recursive entered back the lock activation\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' +\n 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n guardCount++;\n focusOn(focusable.node, options.focusOptions);\n guardCount--;\n }\n};\n","import { getTabbableNodes } from './utils/DOMutils';\nfunction weakRef(value) {\n if (!value)\n return null;\n // #68 Safari 14.1 dont have it yet\n // FIXME: remove in 2025\n if (typeof WeakRef === 'undefined') {\n return function () { return value || null; };\n }\n var w = value ? new WeakRef(value) : null;\n return function () { return (w === null || w === void 0 ? void 0 : w.deref()) || null; };\n}\nexport var recordElementLocation = function (element) {\n if (!element) {\n return null;\n }\n var stack = [];\n var currentElement = element;\n while (currentElement && currentElement !== document.body) {\n stack.push({\n current: weakRef(currentElement),\n parent: weakRef(currentElement.parentElement),\n left: weakRef(currentElement.previousElementSibling),\n right: weakRef(currentElement.nextElementSibling),\n });\n currentElement = currentElement.parentElement;\n }\n return {\n element: weakRef(element),\n stack: stack,\n ownerDocument: element.ownerDocument,\n };\n};\nvar restoreFocusTo = function (location) {\n var _a, _b, _c, _d, _e;\n if (!location) {\n return undefined;\n }\n var stack = location.stack, ownerDocument = location.ownerDocument;\n var visibilityCache = new Map();\n for (var _i = 0, stack_1 = stack; _i < stack_1.length; _i++) {\n var line = stack_1[_i];\n var parent_1 = (_a = line.parent) === null || _a === void 0 ? void 0 : _a.call(line);\n // is it still here?\n if (parent_1 && ownerDocument.contains(parent_1)) {\n var left = (_b = line.left) === null || _b === void 0 ? void 0 : _b.call(line);\n var savedCurrent = line.current();\n var current = parent_1.contains(savedCurrent) ? savedCurrent : undefined;\n var right = (_c = line.right) === null || _c === void 0 ? void 0 : _c.call(line);\n var focusables = getTabbableNodes([parent_1], visibilityCache);\n var aim = \n // that is element itself\n (_e = (_d = current !== null && current !== void 0 ? current : \n // or something in it's place\n left === null || left === void 0 ? void 0 : left.nextElementSibling) !== null && _d !== void 0 ? _d : \n // or somebody to the right, still close enough\n right) !== null && _e !== void 0 ? _e : \n // or somebody to the left, something?\n left;\n while (aim) {\n for (var _f = 0, focusables_1 = focusables; _f < focusables_1.length; _f++) {\n var focusable = focusables_1[_f];\n if (aim === null || aim === void 0 ? void 0 : aim.contains(focusable.node)) {\n return focusable.node;\n }\n }\n aim = aim.nextElementSibling;\n }\n if (focusables.length) {\n // if parent contains a focusable - move there\n return focusables[0].node;\n }\n }\n }\n // nothing matched\n return undefined;\n};\n/**\n * Captures the current focused element to restore focus as close as possible in the future\n * Handles situations where the focused element is removed from the DOM or no longer focusable\n * moving focus to the closest focusable element\n * @param targetElement - element where focus should be restored\n * @returns a function returning a new element to focus\n */\nexport var captureFocusRestore = function (targetElement) {\n var location = recordElementLocation(targetElement);\n return function () {\n return restoreFocusTo(location);\n };\n};\n","import { focusOn } from './commands';\nimport { getTabbableNodes, contains, getFocusableNodes } from './utils/DOMutils';\nimport { asArray } from './utils/array';\n/**\n * for a given `element` in a given `scope` returns focusable siblings\n * @param element - base element\n * @param scope - common parent. Can be document, but better to narrow it down for performance reasons\n * @returns {prev,next} - references to a focusable element before and after\n * @returns undefined - if operation is not applicable\n */\nexport var getRelativeFocusable = function (element, scope, useTabbables) {\n if (!element || !scope) {\n console.error('no element or scope given');\n return {};\n }\n var shards = asArray(scope);\n if (shards.every(function (shard) { return !contains(shard, element); })) {\n console.error('Active element is not contained in the scope');\n return {};\n }\n var focusables = useTabbables\n ? getTabbableNodes(shards, new Map())\n : getFocusableNodes(shards, new Map());\n var current = focusables.findIndex(function (_a) {\n var node = _a.node;\n return node === element;\n });\n if (current === -1) {\n // an edge case, when anchor element is not found\n return undefined;\n }\n return {\n prev: focusables[current - 1],\n next: focusables[current + 1],\n first: focusables[0],\n last: focusables[focusables.length - 1],\n };\n};\nvar getBoundary = function (shards, useTabbables) {\n var set = useTabbables\n ? getTabbableNodes(asArray(shards), new Map())\n : getFocusableNodes(asArray(shards), new Map());\n return {\n first: set[0],\n last: set[set.length - 1],\n };\n};\nvar defaultOptions = function (options) {\n return Object.assign({\n scope: document.body,\n cycle: true,\n onlyTabbable: true,\n }, options);\n};\nvar moveFocus = function (fromElement, options, cb) {\n if (options === void 0) { options = {}; }\n var newOptions = defaultOptions(options);\n var solution = getRelativeFocusable(fromElement, newOptions.scope, newOptions.onlyTabbable);\n if (!solution) {\n return;\n }\n var target = cb(solution, newOptions.cycle);\n if (target) {\n focusOn(target.node, newOptions.focusOptions);\n }\n};\n/**\n * focuses next element in the tab-order\n * @param fromElement - common parent to scope active element search or tab cycle order\n * @param {FocusNextOptions} [options] - focus options\n */\nexport var focusNextElement = function (fromElement, options) {\n if (options === void 0) { options = {}; }\n moveFocus(fromElement, options, function (_a, cycle) {\n var next = _a.next, first = _a.first;\n return next || (cycle && first);\n });\n};\n/**\n * focuses prev element in the tab order\n * @param fromElement - common parent to scope active element search or tab cycle order\n * @param {FocusNextOptions} [options] - focus options\n */\nexport var focusPrevElement = function (fromElement, options) {\n if (options === void 0) { options = {}; }\n moveFocus(fromElement, options, function (_a, cycle) {\n var prev = _a.prev, last = _a.last;\n return prev || (cycle && last);\n });\n};\nvar pickBoundary = function (scope, options, what) {\n var _a;\n var boundary = getBoundary(scope, (_a = options.onlyTabbable) !== null && _a !== void 0 ? _a : true);\n var node = boundary[what];\n if (node) {\n focusOn(node.node, options.focusOptions);\n }\n};\n/**\n * focuses first element in the tab-order\n * @param {FocusNextOptions} options - focus options\n */\nexport var focusFirstElement = function (scope, options) {\n if (options === void 0) { options = {}; }\n pickBoundary(scope, options, 'first');\n};\n/**\n * focuses last element in the tab order\n * @param {FocusNextOptions} options - focus options\n */\nexport var focusLastElement = function (scope, options) {\n if (options === void 0) { options = {}; }\n pickBoundary(scope, options, 'last');\n};\n","import { toArray } from './array';\nimport { isAutoFocusAllowedCached, isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\n/**\n * given list of focusable elements keeps the ones user can interact with\n * @param nodes\n * @param visibilityCache\n */\nexport var filterFocusable = function (nodes, visibilityCache) {\n return toArray(nodes)\n .filter(function (node) { return isVisibleCached(visibilityCache, node); })\n .filter(function (node) { return notHiddenInput(node); });\n};\nexport var filterAutoFocusable = function (nodes, cache) {\n if (cache === void 0) { cache = new Map(); }\n return toArray(nodes).filter(function (node) { return isAutoFocusAllowedCached(cache, node); });\n};\n/**\n * !__WARNING__! Low level API.\n * @returns all tabbable nodes\n *\n * @see {@link getFocusableNodes} to get any focusable element\n *\n * @param topNodes - array of top level HTMLElements to search inside\n * @param visibilityCache - an cache to store intermediate measurements. Expected to be a fresh `new Map` on every call\n */\nexport var getTabbableNodes = function (topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\n/**\n * !__WARNING__! Low level API.\n *\n * @returns anything \"focusable\", not only tabbable. The difference is in `tabIndex=-1`\n * (without guards, as long as they are not expected to be ever focused)\n *\n * @see {@link getTabbableNodes} to get only tabble nodes element\n *\n * @param topNodes - array of top level HTMLElements to search inside\n * @param visibilityCache - an cache to store intermediate measurements. Expected to be a fresh `new Map` on every call\n */\nexport var getFocusableNodes = function (topNodes, visibilityCache) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\n/**\n * return list of nodes which are expected to be auto-focused\n * @param topNode\n * @param visibilityCache\n */\nexport var parentAutofocusables = function (topNode, visibilityCache) {\n return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};\n/*\n * Determines if element is contained in scope, including nested shadow DOMs\n */\nexport var contains = function (scope, element) {\n if (scope.shadowRoot) {\n return contains(scope.shadowRoot, element);\n }\n else {\n if (Object.getPrototypeOf(scope).contains !== undefined &&\n Object.getPrototypeOf(scope).contains.call(scope, element)) {\n return true;\n }\n return toArray(scope.children).some(function (child) {\n var _a;\n if (child instanceof HTMLIFrameElement) {\n var iframeBody = (_a = child.contentDocument) === null || _a === void 0 ? void 0 : _a.body;\n if (iframeBody) {\n return contains(iframeBody, element);\n }\n return false;\n }\n return contains(child, element);\n });\n }\n};\n","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n/**\n * in case of multiple nodes nested inside each other\n * keeps only top ones\n * this is O(nlogn)\n * @param nodes\n * @returns {*}\n */\nvar filterNested = function (nodes) {\n var contained = new Set();\n var l = nodes.length;\n for (var i = 0; i < l; i += 1) {\n for (var j = i + 1; j < l; j += 1) {\n var position = nodes[i].compareDocumentPosition(nodes[j]);\n /* eslint-disable no-bitwise */\n if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n contained.add(j);\n }\n if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n contained.add(i);\n }\n /* eslint-enable */\n }\n }\n return nodes.filter(function (_, index) { return !contained.has(index); });\n};\n/**\n * finds top most parent for a node\n * @param node\n * @returns {*}\n */\nvar getTopParent = function (node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n/**\n * returns all \"focus containers\" inside a given node\n * @param node - node or nodes to look inside\n * @returns Element[]\n */\nexport var getAllAffectedNodes = function (node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, (group\n ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\".concat(FOCUS_GROUP, \"=\\\"\").concat(group, \"\\\"]:not([\").concat(FOCUS_DISABLED, \"=\\\"disabled\\\"])\"))))\n : [currentNode]));\n return acc;\n }, []);\n};\n","/*\nIE11 support\n */\nexport var toArray = function (a) {\n var ret = Array(a.length);\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n return ret;\n};\nexport var asArray = function (a) { return (Array.isArray(a) ? a : [a]); };\nexport var getFirst = function (a) { return (Array.isArray(a) ? a[0] : a); };\n","export var safeProbe = function (cb) {\n try {\n return cb();\n }\n catch (e) {\n return undefined;\n }\n};\n","/**\n * returns active element from document or from nested shadowdoms\n */\nimport { safeProbe } from './safe';\n/**\n * returns current active element. If the active element is a \"container\" itself(shadowRoot or iframe) returns active element inside it\n * @param [inDocument]\n */\nexport var getActiveElement = function (inDocument) {\n if (inDocument === void 0) { inDocument = document; }\n if (!inDocument || !inDocument.activeElement) {\n return undefined;\n }\n var activeElement = inDocument.activeElement;\n return (activeElement.shadowRoot\n ? getActiveElement(activeElement.shadowRoot)\n : activeElement instanceof HTMLIFrameElement && safeProbe(function () { return activeElement.contentWindow.document; })\n ? getActiveElement(activeElement.contentWindow.document)\n : activeElement);\n};\n","import { FOCUS_NO_AUTOFOCUS } from '../constants';\nvar isElementHidden = function (node) {\n // we can measure only \"elements\"\n // consider others as \"visible\"\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n var computedStyle = window.getComputedStyle(node, null);\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n return (computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden');\n};\nvar getParentNode = function (node) {\n // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node\n return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node.parentNode.host\n : node.parentNode;\n};\nvar isTopNode = function (node) {\n // @ts-ignore\n return node === document || (node && node.nodeType === Node.DOCUMENT_NODE);\n};\nvar isInert = function (node) { return node.hasAttribute('inert'); };\n/**\n * @see https://github.com/testing-library/jest-dom/blob/main/src/to-be-visible.js\n */\nvar isVisibleUncached = function (node, checkParent) {\n return !node || isTopNode(node) || (!isElementHidden(node) && !isInert(node) && checkParent(getParentNode(node)));\n};\nexport var isVisibleCached = function (visibilityCache, node) {\n var cached = visibilityCache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nvar isAutoFocusAllowedUncached = function (node, checkParent) {\n return node && !isTopNode(node) ? (isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false) : true;\n};\nexport var isAutoFocusAllowedCached = function (cache, node) {\n var cached = cache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache));\n cache.set(node, result);\n return result;\n};\nexport var getDataset = function (node) {\n // @ts-ignore\n return node.dataset;\n};\nexport var isHTMLButtonElement = function (node) { return node.tagName === 'BUTTON'; };\nexport var isHTMLInputElement = function (node) { return node.tagName === 'INPUT'; };\nexport var isRadioElement = function (node) {\n return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function (node) {\n return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled));\n};\nexport var isAutoFocusAllowed = function (node) {\n var attribute = node.getAttribute(FOCUS_NO_AUTOFOCUS);\n return ![true, 'true', ''].includes(attribute);\n};\nexport var isGuard = function (node) { var _a; return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard)); };\nexport var isNotAGuard = function (node) { return !isGuard(node); };\nexport var isDefined = function (x) { return Boolean(x); };\n","import { parentAutofocusables } from './DOMutils';\nimport { contains } from './DOMutils';\nimport { asArray } from './array';\nvar getParents = function (node, parents) {\n if (parents === void 0) { parents = []; }\n parents.push(node);\n if (node.parentNode) {\n getParents(node.parentNode.host || node.parentNode, parents);\n }\n return parents;\n};\n/**\n * finds a parent for both nodeA and nodeB\n * @param nodeA\n * @param nodeB\n * @returns {boolean|*}\n */\nexport var getCommonParent = function (nodeA, nodeB) {\n var parentsA = getParents(nodeA);\n var parentsB = getParents(nodeB);\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n return false;\n};\nexport var getTopCommonParent = function (baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = false;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n if (common) {\n if (!topCommon || contains(common, topCommon)) {\n topCommon = common;\n }\n else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n // TODO: add assert here?\n return topCommon;\n};\n/**\n * return list of nodes which are expected to be autofocused inside a given top nodes\n * @param entries\n * @param visibilityCache\n */\nexport var allParentAutofocusables = function (entries, visibilityCache) {\n return entries.reduce(function (acc, node) { return acc.concat(parentAutofocusables(node, visibilityCache)); }, []);\n};\n","import { toArray } from './array';\nexport var tabSort = function (a, b) {\n var aTab = Math.max(0, a.tabIndex);\n var bTab = Math.max(0, b.tabIndex);\n var tabDiff = aTab - bTab;\n var indexDiff = a.index - b.index;\n if (tabDiff) {\n if (!aTab) {\n return 1;\n }\n if (!bTab) {\n return -1;\n }\n }\n return tabDiff || indexDiff;\n};\nvar getTabIndex = function (node) {\n if (node.tabIndex < 0) {\n // all \"focusable\" elements are already preselected\n // but some might have implicit negative tabIndex\n // return 0 for <audio without tabIndex attribute - it is \"tabbable\"\n if (!node.hasAttribute('tabindex')) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nexport var orderByTabIndex = function (nodes, filterNegative, keepGuards) {\n return toArray(nodes)\n .map(function (node, index) {\n var tabIndex = getTabIndex(node);\n return {\n node: node,\n index: index,\n tabIndex: keepGuards && tabIndex === -1 ? ((node.dataset || {}).focusGuard ? 0 : -1) : tabIndex,\n };\n })\n .filter(function (data) { return !filterNegative || data.tabIndex >= 0; })\n .sort(tabSort);\n};\n","/**\n * list of the object to be considered as focusable\n */\nexport var tabbables = [\n 'button:enabled',\n 'select:enabled',\n 'textarea:enabled',\n 'input:enabled',\n // elements with explicit roles will also use explicit tabindex\n // '[role=\"button\"]',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[tabindex]',\n '[contenteditable]',\n '[autofocus]',\n];\n","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = \"\".concat(queryTabbables, \", [data-focus-guard]\");\nvar getFocusablesWithShadowDom = function (parent, withGuards) {\n return toArray((parent.shadowRoot || parent).children).reduce(function (acc, child) {\n return acc.concat(child.matches(withGuards ? queryGuardTabbables : queryTabbables) ? [child] : [], getFocusablesWithShadowDom(child));\n }, []);\n};\nvar getFocusablesWithIFrame = function (parent, withGuards) {\n var _a;\n // contentDocument of iframe will be null if current origin cannot access it\n if (parent instanceof HTMLIFrameElement && ((_a = parent.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n return getFocusables([parent.contentDocument.body], withGuards);\n }\n return [parent];\n};\nexport var getFocusables = function (parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n var _a;\n var focusableWithShadowDom = getFocusablesWithShadowDom(parent, withGuards);\n var focusableWithIframes = (_a = []).concat.apply(_a, focusableWithShadowDom.map(function (node) { return getFocusablesWithIFrame(node, withGuards); }));\n return acc.concat(\n // add all tabbables inside and within shadow DOMs in DOM order\n focusableWithIframes, \n // add if node is tabbable itself\n parent.parentNode\n ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) { return node === parent; })\n : []);\n }, []);\n};\n/**\n * return a list of focusable nodes within an area marked as \"auto-focusable\"\n * @param parent\n */\nexport var getParentAutofocusables = function (parent) {\n var parentFocus = parent.querySelectorAll(\"[\".concat(FOCUS_AUTO, \"]\"));\n return toArray(parentFocus)\n .map(function (node) { return getFocusables([node]); })\n .reduce(function (acc, nodes) { return acc.concat(nodes); }, []);\n};\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nmodule.exports = instance;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseUnset = require('./_baseUnset');\n\n/**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\nfunction unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n}\n\nmodule.exports = unset;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","import t from\"react\";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}var n=/[\\'\\\"]/;const r=[\"children\",\"options\"],o={accesskey:\"accessKey\",allowfullscreen:\"allowFullScreen\",allowtransparency:\"allowTransparency\",autocomplete:\"autoComplete\",autofocus:\"autoFocus\",autoplay:\"autoPlay\",cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",charset:\"charSet\",class:\"className\",classid:\"classId\",colspan:\"colSpan\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",crossorigin:\"crossOrigin\",enctype:\"encType\",for:\"htmlFor\",formaction:\"formAction\",formenctype:\"formEncType\",formmethod:\"formMethod\",formnovalidate:\"formNoValidate\",formtarget:\"formTarget\",frameborder:\"frameBorder\",hreflang:\"hrefLang\",inputmode:\"inputMode\",keyparams:\"keyParams\",keytype:\"keyType\",marginheight:\"marginHeight\",marginwidth:\"marginWidth\",maxlength:\"maxLength\",mediagroup:\"mediaGroup\",minlength:\"minLength\",novalidate:\"noValidate\",radiogroup:\"radioGroup\",readonly:\"readOnly\",rowspan:\"rowSpan\",spellcheck:\"spellCheck\",srcdoc:\"srcDoc\",srclang:\"srcLang\",srcset:\"srcSet\",tabindex:\"tabIndex\",usemap:\"useMap\"},a={amp:\"&\",apos:\"'\",gt:\">\",lt:\"<\",nbsp:\" \",quot:\"“\"},c=[\"style\",\"script\"],s=/([-A-Z0-9_:]+)(?:\\s*=\\s*(?:(?:\"((?:\\\\.|[^\"])*)\")|(?:'((?:\\\\.|[^'])*)')|(?:\\{((?:\\\\.|{[^}]*?}|[^}])*)\\})))?/gi,i=/mailto:/i,l=/\\n{2,}$/,u=/^( *>[^\\n]+(\\n[^\\n]+)*\\n*)+\\n{2,}/,_=/^ *> ?/gm,f=/^ {2,}\\n/,d=/^(?:( *[-*_]) *){3,}(?:\\n *)+\\n/,p=/^\\s*(`{3,}|~{3,}) *(\\S+)? *\\n([\\s\\S]+?)\\s*\\1 *(?:\\n *)+\\n?/,m=/^(?: {4}[^\\n]+\\n*)+(?:\\n *)+\\n?/,g=/^(`+)\\s*([\\s\\S]*?[^`])\\s*\\1(?!`)/,y=/^(?:\\n *)*\\n/,h=/\\r\\n?/g,k=/^\\[\\^([^\\]]+)](:.*)\\n/,x=/^\\[\\^([^\\]]+)]/,b=/\\f/g,v=/^\\s*?\\[(x|\\s)\\]/,$=/^ *(#{1,6}) *([^\\n]+?)(?: +#*)?(?:\\n *)*(?:\\n|$)/,S=/^([^\\n]+)\\n *(=|-){3,} *(?:\\n *)+\\n/,w=/^ *(?!<[a-z][^ >/]* ?\\/>)<([a-z][^ >/]*) ?([^>]*)\\/{0}>\\n?(\\s*(?:<\\1[^>]*?>[\\s\\S]*?<\\/\\1>|(?!<\\1)[\\s\\S])*?)<\\/\\1>\\n*/i,z=/&([a-z]+);/g,E=/^<!--[\\s\\S]*?(?:-->)/,A=/^(data|aria|x)-[a-z_][a-z\\d_.-]*$/,R=/^ *<([a-z][a-z0-9:]*)(?:\\s+((?:<.*?>|[^>])*))?\\/?>(?!<\\/\\1>)(\\s*\\n)?/i,I=/^\\{.*\\}$/,M=/^(https?:\\/\\/[^\\s<]+[^<.,:;\"')\\]\\s])/,O=/^<([^ >]+@[^ >]+)>/,B=/^<([^ >]+:\\/[^ >]+)>/,L=/ *\\n+$/,T=/(?:^|\\n)( *)$/,j=/-([a-z])?/gi,C=/^(.*\\|?.*)\\n *(\\|? *[-:]+ *\\|[-| :]*)\\n((?:.*\\|.*\\n)*)\\n?/,D=/^((?:[^\\n]|\\n(?! *\\n))+)(?:\\n *)+\\n/,N=/^\\[([^\\]]*)\\]:\\s*(\\S+)\\s*(\"([^\"]*)\")?/,Z=/^!\\[([^\\]]*)\\] ?\\[([^\\]]*)\\]/,F=/^\\[([^\\]]*)\\] ?\\[([^\\]]*)\\]/,P=/(\\[|\\])/g,G=/(\\n|^[-*]\\s|^#|^ {2,}|^-{2,}|^>\\s)/,H=/\\t/g,q=/^ *\\| */,U=/(^ *\\||\\| *$)/g,V=/ *$/,W=/^ *:-+: *$/,K=/^ *:-+ *$/,Q=/^ *-+: *$/,X=/^([*_])\\1((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\\1\\1(?!\\1)/,J=/^([*_])((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\\1(?!\\1|\\w)/,Y=/^~~((?:\\[.*?\\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)~~/,tt=/^\\\\([^0-9A-Za-z\\s])/,et=/^[\\s\\S]+?(?=[^0-9A-Z\\s\\u00c0-\\uffff&;.()'\"]|\\d+\\.|\\n\\n| {2,}\\n|\\w+:\\S|$)/i,nt=/(^\\n+|\\n+$|\\s+$)/g,rt=/^([ \\t]*)/,ot=/\\\\([^0-9A-Z\\s])/gi,at=new RegExp(\"^( *)((?:[*+-]|\\\\d+\\\\.)) +\"),ct=new RegExp(\"( *)((?:[*+-]|\\\\d+\\\\.)) +[^\\\\n]*(?:\\\\n(?!\\\\1(?:[*+-]|\\\\d+\\\\.) )[^\\\\n]*)*(\\\\n|$)\",\"gm\"),st=new RegExp(\"^( *)((?:[*+-]|\\\\d+\\\\.)) [\\\\s\\\\S]+?(?:\\\\n{2,}(?! )(?!\\\\1(?:[*+-]|\\\\d+\\\\.) (?!(?:[*+-]|\\\\d+\\\\.) ))\\\\n*|\\\\s*\\\\n*$)\"),it=\"(?:\\\\[[^\\\\]]*\\\\]|[^\\\\[\\\\]]|\\\\](?=[^\\\\[]*\\\\]))*\",lt=new RegExp(\"^\\\\[(\"+it+\")\\\\]\\\\(\\\\s*<?((?:[^\\\\s\\\\\\\\]|\\\\\\\\.)*?)>?(?:\\\\s+['\\\"]([\\\\s\\\\S]*?)['\\\"])?\\\\s*\\\\)\"),ut=new RegExp(\"^!\\\\[(\"+it+\")\\\\]\\\\(\\\\s*<?((?:[^\\\\s\\\\\\\\]|\\\\\\\\.)*?)>?(?:\\\\s+['\\\"]([\\\\s\\\\S]*?)['\\\"])?\\\\s*\\\\)\"),_t=[u,m,p,$,S,w,E,R,ct,st,C,D];function ft(t){return t.replace(/[ÀÃÂÃÄÅà áâãäåæÆ]/g,\"a\").replace(/[çÇ]/g,\"c\").replace(/[ðÃ]/g,\"d\").replace(/[ÈÉÊËéèêë]/g,\"e\").replace(/[ÃïÎîÃÃÌì]/g,\"i\").replace(/[Ññ]/g,\"n\").replace(/[øØœŒÕõÔôÓóÒò]/g,\"o\").replace(/[ÜüÛûÚúÙù]/g,\"u\").replace(/[ŸÿÃý]/g,\"y\").replace(/[^a-z0-9- ]/gi,\"\").replace(/ /gi,\"-\").toLowerCase()}function dt(t){return Q.test(t)?\"right\":W.test(t)?\"center\":K.test(t)?\"left\":null}function pt(t,e,n){const r=n.t;n.t=!0;const o=e(t.trim(),n);n.t=r;let a=[[]];return o.forEach(function(t,e){\"tableSeparator\"===t.type?0!==e&&e!==o.length-1&&a.push([]):(\"text\"!==t.type||null!=o[e+1]&&\"tableSeparator\"!==o[e+1].type||(t.content=t.content.replace(V,\"\")),a[a.length-1].push(t))}),a}function mt(t,e,n){n.o=!0;const r=pt(t[1],e,n),o=t[2].replace(U,\"\").split(\"|\").map(dt),a=function(t,e,n){return t.trim().split(\"\\n\").map(function(t){return pt(t,e,n)})}(t[3],e,n);return n.o=!1,{align:o,cells:a,header:r,type:\"table\"}}function gt(t,e){return null==t.align[e]?{}:{textAlign:t.align[e]}}function yt(t){return function(e,n){return n.o?t.exec(e):null}}function ht(t){return function(e,n){return n.o||n.i?t.exec(e):null}}function kt(t){return function(e,n){return n.o||n.i?null:t.exec(e)}}function xt(t){return function(e){return t.exec(e)}}function bt(t){try{if(decodeURIComponent(t).replace(/[^A-Za-z0-9/:]/g,\"\").match(/^\\s*(javascript|vbscript|data):/i))return null}catch(t){return null}return t}function vt(t){return t.replace(ot,\"$1\")}function $t(t,e,n){const r=n.o||!1,o=n.i||!1;n.o=!0,n.i=!0;const a=t(e,n);return n.o=r,n.i=o,a}function St(t,e,n){const r=n.o||!1,o=n.i||!1;n.o=!1,n.i=!0;const a=t(e,n);return n.o=r,n.i=o,a}function wt(t,e,n){return n.o=!1,t(e+\"\\n\\n\",n)}const zt=(t,e,n)=>({content:$t(e,t[1],n)});function Et(){return{}}function At(){return null}function Rt(...t){return t.filter(Boolean).join(\" \")}function It(t,e,n){let r=t;const o=e.split(\".\");for(;o.length&&(r=r[o[0]],void 0!==r);)o.shift();return r||n}var Mt;function Ot(r,U={}){U.overrides=U.overrides||{},U.slugify=U.slugify||ft,U.namedCodesToUnicode=U.namedCodesToUnicode?e({},a,U.namedCodesToUnicode):a;const V=U.createElement||t.createElement;function W(t,n,...r){const o=It(U.overrides,`${t}.props`,{});return V(function(t,e){const n=It(e,t);return n?\"function\"==typeof n||\"object\"==typeof n&&\"render\"in n?n:It(e,`${t}.component`,t):t}(t,U.overrides),e({},n,o,{className:Rt(null==n?void 0:n.className,o.className)||void 0}),...r)}function K(e){let n=!1;U.forceInline?n=!0:U.forceBlock||(n=!1===G.test(e));const r=Ot(pt(n?e:`${e.replace(nt,\"\")}\\n\\n`,{o:n}));if(null===U.wrapper)return r;const o=U.wrapper||(n?\"span\":\"div\");let a;if(r.length>1||U.forceWrapper)a=r;else{if(1===r.length)return a=r[0],\"string\"==typeof a?W(\"span\",{key:\"outer\"},a):a;a=null}return t.createElement(o,{key:\"outer\"},a)}function Q(e){const r=e.match(s);return r?r.reduce(function(e,r,a){const c=r.indexOf(\"=\");if(-1!==c){const s=function(t){return-1!==t.indexOf(\"-\")&&null===t.match(A)&&(t=t.replace(j,function(t,e){return e.toUpperCase()})),t}(r.slice(0,c)).trim(),i=function(t){return t?(n.test(t.charAt(0))&&(t=t.substr(1)),n.test(t.charAt(t.length-1))&&(t=t.substr(0,t.length-1)),t):\"\"}(r.slice(c+1).trim()),l=o[s]||s,u=e[l]=function(t,e){return\"style\"===t?e.split(/;\\s?/).reduce(function(t,e){const n=e.slice(0,e.indexOf(\":\"));return t[n.replace(/(-[a-z])/g,t=>t[1].toUpperCase())]=e.slice(n.length+1).trim(),t},{}):\"href\"===t?bt(e):(e.match(I)&&(e=e.slice(1,e.length-1)),\"true\"===e||\"false\"!==e&&e)}(s,i);\"string\"==typeof u&&(w.test(u)||R.test(u))&&(e[l]=t.cloneElement(K(u.trim()),{key:a}))}else\"style\"!==r&&(e[o[r]||r]=!0);return e},{}):void 0}const ot=[],it={},dt={blockQuote:{l:kt(u),u:Mt.HIGH,_:(t,e,n)=>({content:e(t[0].replace(_,\"\"),n)}),p:(t,e,n)=>W(\"blockquote\",{key:n.m},e(t.content,n))},breakLine:{l:xt(f),u:Mt.HIGH,_:Et,p:(t,e,n)=>W(\"br\",{key:n.m})},breakThematic:{l:kt(d),u:Mt.HIGH,_:Et,p:(t,e,n)=>W(\"hr\",{key:n.m})},codeBlock:{l:kt(m),u:Mt.MAX,_:t=>({content:t[0].replace(/^ {4}/gm,\"\").replace(/\\n+$/,\"\"),lang:void 0}),p:(t,e,n)=>W(\"pre\",{key:n.m},W(\"code\",{className:t.lang?`lang-${t.lang}`:\"\"},t.content))},codeFenced:{l:kt(p),u:Mt.MAX,_:t=>({content:t[3],lang:t[2]||void 0,type:\"codeBlock\"})},codeInline:{l:ht(g),u:Mt.LOW,_:t=>({content:t[2]}),p:(t,e,n)=>W(\"code\",{key:n.m},t.content)},footnote:{l:kt(k),u:Mt.MAX,_:t=>(ot.push({footnote:t[2],identifier:t[1]}),{}),p:At},footnoteReference:{l:yt(x),u:Mt.HIGH,_:t=>({content:t[1],target:`#${U.slugify(t[1])}`}),p:(t,e,n)=>W(\"a\",{key:n.m,href:bt(t.target)},W(\"sup\",{key:n.m},t.content))},gfmTask:{l:yt(v),u:Mt.HIGH,_:t=>({completed:\"x\"===t[1].toLowerCase()}),p:(t,e,n)=>W(\"input\",{checked:t.completed,key:n.m,readOnly:!0,type:\"checkbox\"})},heading:{l:kt($),u:Mt.HIGH,_:(t,e,n)=>({content:$t(e,t[2],n),id:U.slugify(t[2]),level:t[1].length}),p:(t,e,n)=>(t.tag=`h${t.level}`,W(t.tag,{id:t.id,key:n.m},e(t.content,n)))},headingSetext:{l:kt(S),u:Mt.MAX,_:(t,e,n)=>({content:$t(e,t[1],n),level:\"=\"===t[2]?1:2,type:\"heading\"})},htmlComment:{l:xt(E),u:Mt.HIGH,_:()=>({}),p:At},image:{l:ht(ut),u:Mt.HIGH,_:t=>({alt:t[1],target:vt(t[2]),title:t[3]}),p:(t,e,n)=>W(\"img\",{key:n.m,alt:t.alt||void 0,title:t.title||void 0,src:bt(t.target)})},link:{l:yt(lt),u:Mt.LOW,_:(t,e,n)=>({content:St(e,t[1],n),target:vt(t[2]),title:t[3]}),p:(t,e,n)=>W(\"a\",{key:n.m,href:bt(t.target),title:t.title},e(t.content,n))},linkAngleBraceStyleDetector:{l:yt(B),u:Mt.MAX,_:t=>({content:[{content:t[1],type:\"text\"}],target:t[1],type:\"link\"})},linkBareUrlDetector:{l:(t,e)=>e.g?null:yt(M)(t,e),u:Mt.MAX,_:t=>({content:[{content:t[1],type:\"text\"}],target:t[1],title:void 0,type:\"link\"})},linkMailtoDetector:{l:yt(O),u:Mt.MAX,_(t){let e=t[1],n=t[1];return i.test(n)||(n=\"mailto:\"+n),{content:[{content:e.replace(\"mailto:\",\"\"),type:\"text\"}],target:n,type:\"link\"}}},list:{l(t,e,n){const r=T.exec(n);return!r||!e.h&&e.o?null:st.exec(t=r[1]+t)},u:Mt.HIGH,_(t,e,n){const r=t[2],o=r.length>1,a=o?+r:void 0,c=t[0].replace(l,\"\\n\").match(ct);let s=!1;return{items:c.map(function(t,r){const o=at.exec(t)[0].length,a=new RegExp(\"^ {1,\"+o+\"}\",\"gm\"),i=t.replace(a,\"\").replace(at,\"\"),l=r===c.length-1,u=-1!==i.indexOf(\"\\n\\n\")||l&&s;s=u;const _=n.o,f=n.h;let d;n.h=!0,u?(n.o=!1,d=i.replace(L,\"\\n\\n\")):(n.o=!0,d=i.replace(L,\"\"));const p=e(d,n);return n.o=_,n.h=f,p}),ordered:o,start:a}},p:(t,e,n)=>W(t.ordered?\"ol\":\"ul\",{key:n.m,start:t.start},t.items.map(function(t,r){return W(\"li\",{key:r},e(t,n))}))},newlineCoalescer:{l:kt(y),u:Mt.LOW,_:Et,p:()=>\"\\n\"},paragraph:{l:kt(D),u:Mt.LOW,_:zt,p:(t,e,n)=>W(\"p\",{key:n.m},e(t.content,n))},ref:{l:yt(N),u:Mt.MAX,_:t=>(it[t[1]]={target:t[2],title:t[4]},{}),p:At},refImage:{l:ht(Z),u:Mt.MAX,_:t=>({alt:t[1]||void 0,ref:t[2]}),p:(t,e,n)=>W(\"img\",{key:n.m,alt:t.alt,src:bt(it[t.ref].target),title:it[t.ref].title})},refLink:{l:yt(F),u:Mt.MAX,_:(t,e,n)=>({content:e(t[1],n),fallbackContent:e(t[0].replace(P,\"\\\\$1\"),n),ref:t[2]}),p:(t,e,n)=>it[t.ref]?W(\"a\",{key:n.m,href:bt(it[t.ref].target),title:it[t.ref].title},e(t.content,n)):W(\"span\",{key:n.m},e(t.fallbackContent,n))},table:{l:kt(C),u:Mt.HIGH,_:mt,p:(t,e,n)=>W(\"table\",{key:n.m},W(\"thead\",null,W(\"tr\",null,t.header.map(function(r,o){return W(\"th\",{key:o,style:gt(t,o)},e(r,n))}))),W(\"tbody\",null,t.cells.map(function(r,o){return W(\"tr\",{key:o},r.map(function(r,o){return W(\"td\",{key:o,style:gt(t,o)},e(r,n))}))})))},tableSeparator:{l:function(t,e){return e.t?q.exec(t):null},u:Mt.HIGH,_:function(){return{type:\"tableSeparator\"}},p:()=>\" | \"},text:{l:xt(et),u:Mt.MIN,_:t=>({content:t[0].replace(z,(t,e)=>U.namedCodesToUnicode[e]?U.namedCodesToUnicode[e]:t)}),p:t=>t.content},textBolded:{l:ht(X),u:Mt.MED,_:(t,e,n)=>({content:e(t[2],n)}),p:(t,e,n)=>W(\"strong\",{key:n.m},e(t.content,n))},textEmphasized:{l:ht(J),u:Mt.LOW,_:(t,e,n)=>({content:e(t[2],n)}),p:(t,e,n)=>W(\"em\",{key:n.m},e(t.content,n))},textEscaped:{l:ht(tt),u:Mt.HIGH,_:t=>({content:t[1],type:\"text\"})},textStrikethroughed:{l:ht(Y),u:Mt.LOW,_:zt,p:(t,e,n)=>W(\"del\",{key:n.m},e(t.content,n))}};!0!==U.disableParsingRawHTML&&(dt.htmlBlock={l:xt(w),u:Mt.HIGH,_(t,e,n){const[,r]=t[3].match(rt),o=new RegExp(`^${r}`,\"gm\"),a=t[3].replace(o,\"\"),s=(i=a,_t.some(t=>t.test(i))?wt:$t);var i;const l=t[1].toLowerCase(),u=-1!==c.indexOf(l);n.g=n.g||\"a\"===l;const _=u?t[3]:s(e,a,n);return n.g=!1,{attrs:Q(t[2]),content:_,noInnerParse:u,tag:u?l:t[1]}},p:(t,n,r)=>W(t.tag,e({key:r.m},t.attrs),t.noInnerParse?t.content:n(t.content,r))},dt.htmlSelfClosing={l:xt(R),u:Mt.HIGH,_:t=>({attrs:Q(t[2]||\"\"),tag:t[1]}),p:(t,n,r)=>W(t.tag,e({},t.attrs,{key:r.m}))});const pt=function(t){let e=Object.keys(t);function n(r,o){let a=[],c=\"\";for(;r;){let s=0;for(;s<e.length;){const i=e[s],l=t[i],u=l.l(r,o,c);if(u){const t=u[0];r=r.substring(t.length);const e=l._(u,n,o);null==e.type&&(e.type=i),a.push(e),c=t;break}s++}}return a}return e.sort(function(e,n){let r=t[e].u,o=t[n].u;return r!==o?r-o:e<n?-1:1}),function(t,e){return n(function(t){return t.replace(h,\"\\n\").replace(b,\"\").replace(H,\" \")}(t),e)}}(dt),Ot=(Bt=function(t){return function(e,n,r){return t[e.type].p(e,n,r)}}(dt),function t(e,n={}){if(Array.isArray(e)){const r=n.m,o=[];let a=!1;for(let r=0;r<e.length;r++){n.m=r;const c=t(e[r],n),s=\"string\"==typeof c;s&&a?o[o.length-1]+=c:o.push(c),a=s}return n.m=r,o}return Bt(e,t,n)});var Bt;const Lt=K(r);return ot.length&&Lt.props.children.push(W(\"footer\",{key:\"footer\"},ot.map(function(t){return W(\"div\",{id:U.slugify(t.identifier),key:t.identifier},t.identifier,Ot(pt(t.footnote,{o:!0})))}))),Lt}!function(t){t[t.MAX=0]=\"MAX\",t[t.HIGH=1]=\"HIGH\",t[t.MED=2]=\"MED\",t[t.LOW=3]=\"LOW\",t[t.MIN=4]=\"MIN\"}(Mt||(Mt={}));export default e=>{let{children:n,options:o}=e,a=function(t,e){if(null==t)return{};var n,r,o={},a=Object.keys(t);for(r=0;r<a.length;r++)e.indexOf(n=a[r])>=0||(o[n]=t[n]);return o}(e,r);return t.cloneElement(Ot(n,o),a)};export{Ot as compiler};\n//# sourceMappingURL=index.modern.js.map\n","'use strict';\nconst escapeStringRegexp = require('escape-string-regexp');\n\nconst regexpCache = new Map();\n\nfunction sanitizeArray(input, inputName) {\n\tif (!Array.isArray(input)) {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\t\tinput = [input];\n\t\t\t\tbreak;\n\t\t\tcase 'undefined':\n\t\t\t\tinput = [];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`Expected '${inputName}' to be a string or an array, but got a type of '${typeof input}'`);\n\t\t}\n\t}\n\n\treturn input.filter(string => {\n\t\tif (typeof string !== 'string') {\n\t\t\tif (typeof string === 'undefined') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthrow new TypeError(`Expected '${inputName}' to be an array of strings, but found a type of '${typeof string}' in the array`);\n\t\t}\n\n\t\treturn true;\n\t});\n}\n\nfunction makeRegexp(pattern, options) {\n\toptions = {\n\t\tcaseSensitive: false,\n\t\t...options\n\t};\n\n\tconst cacheKey = pattern + JSON.stringify(options);\n\n\tif (regexpCache.has(cacheKey)) {\n\t\treturn regexpCache.get(cacheKey);\n\t}\n\n\tconst negated = pattern[0] === '!';\n\n\tif (negated) {\n\t\tpattern = pattern.slice(1);\n\t}\n\n\tpattern = escapeStringRegexp(pattern).replace(/\\\\\\*/g, '[\\\\s\\\\S]*');\n\n\tconst regexp = new RegExp(`^${pattern}$`, options.caseSensitive ? '' : 'i');\n\tregexp.negated = negated;\n\tregexpCache.set(cacheKey, regexp);\n\n\treturn regexp;\n}\n\nmodule.exports = (inputs, patterns, options) => {\n\tinputs = sanitizeArray(inputs, 'inputs');\n\tpatterns = sanitizeArray(patterns, 'patterns');\n\n\tif (patterns.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst isFirstPatternNegated = patterns[0][0] === '!';\n\n\tpatterns = patterns.map(pattern => makeRegexp(pattern, options));\n\n\tconst result = [];\n\n\tfor (const input of inputs) {\n\t\t// If first pattern is negated we include everything to match user expectation.\n\t\tlet matches = isFirstPatternNegated;\n\n\t\tfor (const pattern of patterns) {\n\t\t\tif (pattern.test(input)) {\n\t\t\t\tmatches = !pattern.negated;\n\t\t\t}\n\t\t}\n\n\t\tif (matches) {\n\t\t\tresult.push(input);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nmodule.exports.isMatch = (inputs, patterns, options) => {\n\tinputs = sanitizeArray(inputs, 'inputs');\n\tpatterns = sanitizeArray(patterns, 'patterns');\n\n\tif (patterns.length === 0) {\n\t\treturn false;\n\t}\n\n\treturn inputs.some(input => {\n\t\treturn patterns.every(pattern => {\n\t\t\tconst regexp = makeRegexp(pattern, options);\n\t\t\tconst matches = regexp.test(input);\n\t\t\treturn regexp.negated ? !matches : matches;\n\t\t});\n\t});\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol.js\");\nrequire(\"core-js/modules/es.array.filter.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.object.get-own-property-descriptor.js\");\nrequire(\"core-js/modules/es.array.for-each.js\");\nrequire(\"core-js/modules/web.dom-collections.for-each.js\");\nrequire(\"core-js/modules/es.object.get-own-property-descriptors.js\");\nrequire(\"core-js/modules/es.object.define-properties.js\");\nrequire(\"core-js/modules/es.object.define-property.js\");\nrequire(\"core-js/modules/es.array.iterator.js\");\nrequire(\"core-js/modules/es.string.iterator.js\");\nrequire(\"core-js/modules/es.weak-map.js\");\nrequire(\"core-js/modules/web.dom-collections.iterator.js\");\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Trans\", {\n enumerable: true,\n get: function get() {\n return _reactI18next.Trans;\n }\n});\nexports.globalI18n = exports.appWithTranslation = void 0;\nObject.defineProperty(exports, \"useTranslation\", {\n enumerable: true,\n get: function get() {\n return _reactI18next.useTranslation;\n }\n});\nObject.defineProperty(exports, \"withTranslation\", {\n enumerable: true,\n get: function get() {\n return _reactI18next.withTranslation;\n }\n});\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nrequire(\"core-js/modules/es.object.keys.js\");\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\nvar _reactI18next = require(\"react-i18next\");\nvar _createConfig = require(\"./config/createConfig\");\nvar _createClient = _interopRequireDefault(require(\"./createClient\"));\nvar _utils = require(\"./utils\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nvar __jsx = _react[\"default\"].createElement;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2[\"default\"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar globalI18n = exports.globalI18n = null;\nvar addResourcesToI18next = function addResourcesToI18next(instance, resources) {\n if (resources && instance.isInitialized) {\n for (var _i = 0, _Object$keys = Object.keys(resources); _i < _Object$keys.length; _i++) {\n var locale = _Object$keys[_i];\n for (var _i2 = 0, _Object$keys2 = Object.keys(resources[locale]); _i2 < _Object$keys2.length; _i2++) {\n var _instance$store;\n var ns = _Object$keys2[_i2];\n if (!(instance !== null && instance !== void 0 && (_instance$store = instance.store) !== null && _instance$store !== void 0 && _instance$store.data) || !instance.store.data[locale] || !instance.store.data[locale][ns]) {\n instance.addResourceBundle(locale, ns, resources[locale][ns], true, true);\n }\n }\n }\n }\n};\nvar appWithTranslation = exports.appWithTranslation = function appWithTranslation(WrappedComponent) {\n var configOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var AppWithTranslation = function AppWithTranslation(props) {\n var _nextI18Next$initialL, _props$router;\n var _ref = props.pageProps || {},\n _nextI18Next = _ref._nextI18Next; // pageProps may be undefined on strange setups, i.e. https://github.com/i18next/next-i18next/issues/2109\n var locale = (_nextI18Next$initialL = _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.initialLocale) !== null && _nextI18Next$initialL !== void 0 ? _nextI18Next$initialL : props === null || props === void 0 || (_props$router = props.router) === null || _props$router === void 0 ? void 0 : _props$router.locale;\n var ns = _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.ns;\n var instanceRef = (0, _react.useRef)(null);\n\n /**\n * Memoize i18n instance and reuse it rather than creating new instance.\n * When the locale or resources are changed after instance was created,\n * we will update the instance by calling addResourceBundle method on it.\n */\n var i18n = (0, _react.useMemo)(function () {\n var _userConfig$i18n;\n if (!_nextI18Next && !configOverride) return null;\n var userConfig = configOverride !== null && configOverride !== void 0 ? configOverride : _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.userConfig;\n if (!userConfig) {\n throw new Error('appWithTranslation was called without a next-i18next config');\n }\n if (!(userConfig !== null && userConfig !== void 0 && userConfig.i18n)) {\n throw new Error('appWithTranslation was called without config.i18n');\n }\n if (!(userConfig !== null && userConfig !== void 0 && (_userConfig$i18n = userConfig.i18n) !== null && _userConfig$i18n !== void 0 && _userConfig$i18n.defaultLocale)) {\n throw new Error('config.i18n does not include a defaultLocale property');\n }\n var _ref2 = _nextI18Next || {},\n initialI18nStore = _ref2.initialI18nStore;\n var resources = configOverride !== null && configOverride !== void 0 && configOverride.resources ? configOverride.resources : initialI18nStore;\n if (!locale) locale = userConfig.i18n.defaultLocale;\n var instance = instanceRef.current;\n if (instance) {\n addResourcesToI18next(instance, resources);\n } else {\n instance = (0, _createClient[\"default\"])(_objectSpread(_objectSpread({}, (0, _createConfig.createConfig)(_objectSpread(_objectSpread({}, userConfig), {}, {\n lng: locale\n }))), {}, {\n lng: locale,\n ns: ns,\n resources: resources\n })).i18n;\n addResourcesToI18next(instance, resources);\n exports.globalI18n = globalI18n = instance;\n instanceRef.current = instance;\n }\n return instance;\n }, [_nextI18Next, locale, ns]);\n\n /**\n * Since calling changeLanguage method on existing i18n instance cause state update in react,\n * we need to call the method in `useLayoutEffect` to prevent state update in render phase.\n */\n (0, _utils.useIsomorphicLayoutEffect)(function () {\n if (!i18n || !locale) return;\n i18n.changeLanguage(locale);\n }, [i18n, locale]);\n return i18n !== null ? __jsx(_reactI18next.I18nextProvider, {\n i18n: i18n\n }, __jsx(WrappedComponent, props)) : __jsx(WrappedComponent, (0, _extends2[\"default\"])({\n key: locale\n }, props));\n };\n return (0, _hoistNonReactStatics[\"default\"])(AppWithTranslation, WrappedComponent);\n};","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol.js\");\nrequire(\"core-js/modules/es.object.get-own-property-descriptor.js\");\nrequire(\"core-js/modules/web.dom-collections.for-each.js\");\nrequire(\"core-js/modules/es.object.get-own-property-descriptors.js\");\nrequire(\"core-js/modules/es.object.define-properties.js\");\nrequire(\"core-js/modules/es.object.define-property.js\");\nrequire(\"core-js/modules/es.array.slice.js\");\nrequire(\"core-js/modules/es.date.to-string.js\");\nrequire(\"core-js/modules/es.regexp.to-string.js\");\nrequire(\"core-js/modules/es.function.name.js\");\nrequire(\"core-js/modules/es.array.from.js\");\nrequire(\"core-js/modules/es.string.iterator.js\");\nrequire(\"core-js/modules/es.symbol.description.js\");\nrequire(\"core-js/modules/es.symbol.iterator.js\");\nrequire(\"core-js/modules/es.array.iterator.js\");\nrequire(\"core-js/modules/web.dom-collections.iterator.js\");\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createConfig = void 0;\nrequire(\"core-js/modules/es.array.filter.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.array.concat.js\");\nrequire(\"core-js/modules/es.array.reduce.js\");\nrequire(\"core-js/modules/es.array.includes.js\");\nrequire(\"core-js/modules/es.string.includes.js\");\nrequire(\"core-js/modules/es.array.is-array.js\");\nrequire(\"core-js/modules/es.object.entries.js\");\nrequire(\"core-js/modules/es.array.some.js\");\nrequire(\"core-js/modules/es.regexp.exec.js\");\nrequire(\"core-js/modules/es.string.replace.js\");\nrequire(\"core-js/modules/es.array.join.js\");\nrequire(\"core-js/modules/es.array.map.js\");\nrequire(\"core-js/modules/es.object.keys.js\");\nrequire(\"core-js/modules/es.array.index-of.js\");\nrequire(\"core-js/modules/es.array.for-each.js\");\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\nvar _defaultConfig = require(\"./defaultConfig\");\nvar _utils = require(\"../utils\");\nvar _excluded = [\"i18n\"],\n _excluded2 = [\"i18n\"];\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2[\"default\"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar deepMergeObjects = ['backend', 'detection'];\nvar createConfig = exports.createConfig = function createConfig(userConfig) {\n var _userConfig$interpola, _userConfig$interpola2, _userConfig$use;\n if (typeof (userConfig === null || userConfig === void 0 ? void 0 : userConfig.lng) !== 'string') {\n throw new Error('config.lng was not passed into createConfig');\n }\n\n //\n // Initial merge of default and user-provided config\n //\n var userI18n = userConfig.i18n,\n userConfigStripped = (0, _objectWithoutProperties2[\"default\"])(userConfig, _excluded);\n var defaultI18n = _defaultConfig.defaultConfig.i18n,\n defaultConfigStripped = (0, _objectWithoutProperties2[\"default\"])(_defaultConfig.defaultConfig, _excluded2);\n var combinedConfig = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultConfigStripped), userConfigStripped), defaultI18n), userI18n);\n var defaultNS = combinedConfig.defaultNS,\n lng = combinedConfig.lng,\n localeExtension = combinedConfig.localeExtension,\n localePath = combinedConfig.localePath,\n nonExplicitSupportedLngs = combinedConfig.nonExplicitSupportedLngs;\n var locales = combinedConfig.locales.filter(function (l) {\n return l !== 'default';\n });\n\n /**\n * Skips translation file resolution while in cimode\n * https://github.com/i18next/next-i18next/pull/851#discussion_r503113620\n */\n if (lng === 'cimode') {\n return combinedConfig;\n }\n if (typeof combinedConfig.fallbackLng === 'undefined') {\n combinedConfig.fallbackLng = combinedConfig.defaultLocale;\n if (combinedConfig.fallbackLng === 'default') {\n var _locales = (0, _slicedToArray2[\"default\"])(locales, 1);\n combinedConfig.fallbackLng = _locales[0];\n }\n }\n var userPrefix = userConfig === null || userConfig === void 0 || (_userConfig$interpola = userConfig.interpolation) === null || _userConfig$interpola === void 0 ? void 0 : _userConfig$interpola.prefix;\n var userSuffix = userConfig === null || userConfig === void 0 || (_userConfig$interpola2 = userConfig.interpolation) === null || _userConfig$interpola2 === void 0 ? void 0 : _userConfig$interpola2.suffix;\n var prefix = userPrefix !== null && userPrefix !== void 0 ? userPrefix : '{{';\n var suffix = userSuffix !== null && userSuffix !== void 0 ? userSuffix : '}}';\n if (typeof (userConfig === null || userConfig === void 0 ? void 0 : userConfig.localeStructure) !== 'string' && (userPrefix || userSuffix)) {\n combinedConfig.localeStructure = \"\".concat(prefix, \"lng\").concat(suffix, \"/\").concat(prefix, \"ns\").concat(suffix);\n }\n var fallbackLng = combinedConfig.fallbackLng,\n localeStructure = combinedConfig.localeStructure;\n if (nonExplicitSupportedLngs) {\n var createFallbackObject = function createFallbackObject(acc, l) {\n var _l$split = l.split('-'),\n _l$split2 = (0, _slicedToArray2[\"default\"])(_l$split, 1),\n locale = _l$split2[0];\n acc[l] = [locale];\n return acc;\n };\n if (typeof fallbackLng === 'string') {\n combinedConfig.fallbackLng = combinedConfig.locales.filter(function (l) {\n return l.includes('-');\n }).reduce(createFallbackObject, {\n \"default\": [fallbackLng]\n });\n } else if (Array.isArray(fallbackLng)) {\n combinedConfig.fallbackLng = combinedConfig.locales.filter(function (l) {\n return l.includes('-');\n }).reduce(createFallbackObject, {\n \"default\": fallbackLng\n });\n } else if ((0, _typeof2[\"default\"])(fallbackLng) === 'object') {\n combinedConfig.fallbackLng = Object.entries(combinedConfig.fallbackLng).reduce(function (acc, _ref) {\n var _ref2 = (0, _slicedToArray2[\"default\"])(_ref, 2),\n l = _ref2[0],\n f = _ref2[1];\n acc[l] = l.includes('-') ? (0, _utils.unique)([l.split('-')[0]].concat((0, _toConsumableArray2[\"default\"])(f))) : f;\n return acc;\n }, fallbackLng);\n } else if (typeof fallbackLng === 'function') {\n throw new Error('If nonExplicitSupportedLngs is true, no functions are allowed for fallbackLng');\n }\n }\n var hasCustomBackend = userConfig === null || userConfig === void 0 || (_userConfig$use = userConfig.use) === null || _userConfig$use === void 0 ? void 0 : _userConfig$use.some(function (b) {\n return b.type === 'backend';\n });\n if (!process.browser && typeof window === 'undefined') {\n combinedConfig.preload = locales;\n if (!hasCustomBackend) {\n var fs = require('fs');\n var path = require('path');\n\n //\n // Validate defaultNS\n // https://github.com/i18next/next-i18next/issues/358\n //\n if (typeof defaultNS === 'string' && typeof lng !== 'undefined') {\n if (typeof localePath === 'string') {\n var defaultLocaleStructure = localeStructure.replace(\"\".concat(prefix, \"lng\").concat(suffix), lng).replace(\"\".concat(prefix, \"ns\").concat(suffix), defaultNS);\n var defaultFile = \"/\".concat(defaultLocaleStructure, \".\").concat(localeExtension);\n var defaultNSPath = path.join(localePath, defaultFile);\n var defaultNSExists = fs.existsSync(defaultNSPath);\n var fallback = (0, _utils.getFallbackForLng)(lng, combinedConfig.fallbackLng);\n var defaultFallbackNSExists = fallback.some(function (f) {\n var fallbackFile = defaultFile.replace(lng, f);\n var defaultNSPath = path.join(localePath, fallbackFile);\n return fs.existsSync(defaultNSPath);\n });\n if (!defaultNSExists && !defaultFallbackNSExists && process.env.NODE_ENV !== 'production') {\n throw new Error(\"Default namespace not found at \".concat(defaultNSPath));\n }\n } else if (typeof localePath === 'function') {\n var _defaultNSPath = localePath(lng, defaultNS, false);\n var _defaultNSExists = fs.existsSync(_defaultNSPath);\n var _fallback = (0, _utils.getFallbackForLng)(lng, combinedConfig.fallbackLng);\n var _defaultFallbackNSExists = _fallback.some(function (f) {\n var defaultNSPath = localePath(f, defaultNS, false);\n return fs.existsSync(defaultNSPath);\n });\n if (!_defaultNSExists && !_defaultFallbackNSExists && process.env.NODE_ENV !== 'production') {\n throw new Error(\"Default namespace not found at \".concat(_defaultNSPath));\n }\n }\n }\n\n //\n // Set server side backend\n //\n if (typeof localePath === 'string') {\n combinedConfig.backend = {\n addPath: path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(localeStructure, \".missing.\").concat(localeExtension)),\n loadPath: path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(localeStructure, \".\").concat(localeExtension))\n };\n } else if (typeof localePath === 'function') {\n combinedConfig.backend = {\n addPath: function addPath(locale, namespace) {\n return localePath(locale, namespace, true);\n },\n loadPath: function loadPath(locale, namespace) {\n return localePath(locale, namespace, false);\n }\n };\n } else if (localePath) {\n throw new Error(\"Unsupported localePath type: \".concat((0, _typeof2[\"default\"])(localePath)));\n }\n\n //\n // Set server side preload (namespaces)\n //\n if (!combinedConfig.ns && typeof lng !== 'undefined') {\n if (typeof localePath === 'function') {\n throw new Error('Must provide all namespaces in ns option if using a function as localePath');\n }\n var getNamespaces = function getNamespaces(locales) {\n var getLocaleNamespaces = function getLocaleNamespaces(p) {\n var ret = [];\n if (!fs.existsSync(p)) return ret;\n fs.readdirSync(p).map(function (file) {\n var joinedP = path.join(p, file);\n if (fs.statSync(joinedP).isDirectory()) {\n var subRet = getLocaleNamespaces(joinedP).map(function (n) {\n return \"\".concat(file, \"/\").concat(n);\n });\n ret = ret.concat(subRet);\n return;\n }\n ret.push(file.replace(\".\".concat(localeExtension), ''));\n });\n return ret;\n };\n var namespacesByLocale;\n var r = combinedConfig.resources;\n if (!localePath && r) {\n namespacesByLocale = locales.map(function (locale) {\n return Object.keys(r[locale]);\n });\n } else {\n namespacesByLocale = locales.map(function (locale) {\n return getLocaleNamespaces(path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(locale)));\n });\n }\n var allNamespaces = [];\n var _iterator = _createForOfIteratorHelper(namespacesByLocale),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var localNamespaces = _step.value;\n allNamespaces.push.apply(allNamespaces, (0, _toConsumableArray2[\"default\"])(localNamespaces));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return (0, _utils.unique)(allNamespaces);\n };\n if (localeStructure.indexOf(\"\".concat(prefix, \"lng\").concat(suffix)) > localeStructure.indexOf(\"\".concat(prefix, \"ns\").concat(suffix))) {\n throw new Error('Must provide all namespaces in ns option if using a localeStructure that is not namespace-listable like lng/ns');\n }\n combinedConfig.ns = getNamespaces((0, _utils.unique)([lng].concat((0, _toConsumableArray2[\"default\"])((0, _utils.getFallbackForLng)(lng, combinedConfig.fallbackLng)))));\n }\n }\n } else {\n //\n // Set client side backend, if there is no custom backend\n //\n if (!hasCustomBackend) {\n if (typeof localePath === 'string') {\n combinedConfig.backend = {\n addPath: \"\".concat(localePath, \"/\").concat(localeStructure, \".missing.\").concat(localeExtension),\n loadPath: \"\".concat(localePath, \"/\").concat(localeStructure, \".\").concat(localeExtension)\n };\n } else if (typeof localePath === 'function') {\n combinedConfig.backend = {\n addPath: function addPath(locale, namespace) {\n return localePath(locale, namespace, true);\n },\n loadPath: function loadPath(locale, namespace) {\n return localePath(locale, namespace, false);\n }\n };\n }\n }\n if (typeof combinedConfig.ns !== 'string' && !Array.isArray(combinedConfig.ns)) {\n combinedConfig.ns = [defaultNS];\n }\n }\n\n //\n // Deep merge with overwrite - goes last\n //\n deepMergeObjects.forEach(function (obj) {\n if (userConfig[obj]) {\n combinedConfig[obj] = _objectSpread(_objectSpread({}, combinedConfig[obj]), userConfig[obj]);\n }\n });\n return combinedConfig;\n};","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultConfig = void 0;\nvar DEFAULT_LOCALE = 'en';\nvar LOCALES = ['en'];\nvar DEFAULT_NAMESPACE = 'common';\nvar LOCALE_PATH = './public/locales';\nvar LOCALE_STRUCTURE = '{{lng}}/{{ns}}';\nvar LOCALE_EXTENSION = 'json';\nvar defaultConfig = exports.defaultConfig = {\n defaultNS: DEFAULT_NAMESPACE,\n errorStackTraceLimit: 0,\n i18n: {\n defaultLocale: DEFAULT_LOCALE,\n locales: LOCALES\n },\n get initImmediate() {\n return process.browser && typeof window !== 'undefined';\n },\n interpolation: {\n escapeValue: false\n },\n load: 'currentOnly',\n localeExtension: LOCALE_EXTENSION,\n localePath: LOCALE_PATH,\n localeStructure: LOCALE_STRUCTURE,\n react: {\n useSuspense: false\n },\n reloadOnPrerender: false,\n serializeConfig: true,\n use: []\n};","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nrequire(\"core-js/modules/es.array.for-each.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/web.dom-collections.for-each.js\");\nrequire(\"core-js/modules/es.promise.js\");\nvar _i18next = _interopRequireDefault(require(\"i18next\"));\nvar _default = exports[\"default\"] = function _default(config) {\n if (config.ns === undefined) config.ns = [];\n var instance = _i18next[\"default\"].createInstance(config);\n var initPromise;\n if (!instance.isInitialized) {\n var _config$use;\n config === null || config === void 0 || (_config$use = config.use) === null || _config$use === void 0 || _config$use.forEach(function (x) {\n return instance.use(x);\n });\n if (typeof config.onPreInitI18next === 'function') {\n config.onPreInitI18next(instance);\n }\n initPromise = instance.init(config);\n } else {\n initPromise = Promise.resolve(_i18next[\"default\"].t);\n }\n return {\n i18n: instance,\n initPromise: initPromise\n };\n};\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nrequire(\"core-js/modules/es.object.keys.js\");\nrequire(\"core-js/modules/es.symbol.js\");\nrequire(\"core-js/modules/es.array.filter.js\");\nrequire(\"core-js/modules/es.object.get-own-property-descriptor.js\");\nrequire(\"core-js/modules/es.object.get-own-property-descriptors.js\");\nrequire(\"core-js/modules/es.object.define-properties.js\");\nrequire(\"core-js/modules/es.object.define-property.js\");\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nrequire(\"core-js/modules/es.array.some.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.array.for-each.js\");\nrequire(\"core-js/modules/web.dom-collections.for-each.js\");\nrequire(\"core-js/modules/es.promise.js\");\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _i18next = _interopRequireDefault(require(\"i18next\"));\nvar _i18nextFsBackend = _interopRequireDefault(require(\"i18next-fs-backend\"));\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2[\"default\"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar globalInstance;\nvar _default = exports[\"default\"] = function _default(config) {\n if (config.ns === undefined) config.ns = [];\n var instance;\n if (!globalInstance) {\n globalInstance = _i18next[\"default\"].createInstance(config);\n instance = globalInstance;\n } else {\n instance = globalInstance.cloneInstance(_objectSpread(_objectSpread({}, config), {}, {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n initImmediate: false\n }));\n }\n var initPromise;\n if (!instance.isInitialized) {\n var _config$use, _config$use2;\n var hasCustomBackend = config === null || config === void 0 || (_config$use = config.use) === null || _config$use === void 0 ? void 0 : _config$use.some(function (b) {\n return b.type === 'backend';\n });\n if (!hasCustomBackend) {\n instance.use(_i18nextFsBackend[\"default\"]);\n }\n config === null || config === void 0 || (_config$use2 = config.use) === null || _config$use2 === void 0 || _config$use2.forEach(function (x) {\n return instance.use(x);\n });\n if (typeof config.onPreInitI18next === 'function') {\n config.onPreInitI18next(instance);\n }\n initPromise = instance.init(config);\n } else {\n initPromise = Promise.resolve(_i18next[\"default\"].t);\n }\n return {\n i18n: instance,\n initPromise: initPromise\n };\n};\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nrequire(\"core-js/modules/es.array.iterator.js\");\nrequire(\"core-js/modules/es.string.iterator.js\");\nrequire(\"core-js/modules/es.weak-map.js\");\nrequire(\"core-js/modules/web.dom-collections.iterator.js\");\nrequire(\"core-js/modules/es.object.define-property.js\");\nrequire(\"core-js/modules/es.object.get-own-property-descriptor.js\");\nrequire(\"core-js/modules/es.symbol.js\");\nrequire(\"core-js/modules/es.array.filter.js\");\nrequire(\"core-js/modules/es.object.get-own-property-descriptors.js\");\nrequire(\"core-js/modules/es.object.define-properties.js\");\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.serverSideTranslations = void 0;\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.promise.js\");\nrequire(\"core-js/modules/es.array.some.js\");\nrequire(\"core-js/modules/es.array.is-array.js\");\nrequire(\"core-js/modules/es.array.for-each.js\");\nrequire(\"core-js/modules/web.dom-collections.for-each.js\");\nrequire(\"core-js/modules/es.array.concat.js\");\nrequire(\"core-js/modules/es.array.map.js\");\nrequire(\"core-js/modules/es.regexp.exec.js\");\nrequire(\"core-js/modules/es.string.replace.js\");\nrequire(\"core-js/modules/es.array.flat.js\");\nrequire(\"core-js/modules/es.array.unscopables.flat.js\");\nrequire(\"core-js/modules/es.object.keys.js\");\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\nvar _fs = _interopRequireDefault(require(\"fs\"));\nvar _path = _interopRequireDefault(require(\"path\"));\nvar _createConfig = require(\"./config/createConfig\");\nvar _node = _interopRequireDefault(require(\"./createClient/node\"));\nvar _appWithTranslation = require(\"./appWithTranslation\");\nvar _utils = require(\"./utils\");\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2[\"default\"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nvar DEFAULT_CONFIG_PATH = './next-i18next.config.js';\n\n/**\n * One line expression like `const { I18NEXT_DEFAULT_CONFIG_PATH: DEFAULT_CONFIG_PATH = './next-i18next.config.js' } = process.env;`\n * is breaking the build, so keep it like this.\n *\n * @see https://github.com/i18next/next-i18next/pull/2084#issuecomment-1420511358\n */\nif (process.env.I18NEXT_DEFAULT_CONFIG_PATH) {\n DEFAULT_CONFIG_PATH = process.env.I18NEXT_DEFAULT_CONFIG_PATH;\n}\nvar serverSideTranslations = exports.serverSideTranslations = /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(initialLocale) {\n var _userConfig;\n var namespacesRequired,\n configOverride,\n extraLocales,\n userConfig,\n configPath,\n config,\n localeExtension,\n localePath,\n fallbackLng,\n reloadOnPrerender,\n _createClient,\n i18n,\n initPromise,\n hasCustomBackend,\n initialI18nStore,\n getLocaleNamespaces,\n namespacesByLocale,\n _args = arguments;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n namespacesRequired = _args.length > 1 && _args[1] !== undefined ? _args[1] : undefined;\n configOverride = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;\n extraLocales = _args.length > 3 && _args[3] !== undefined ? _args[3] : false;\n if (!(typeof initialLocale !== 'string')) {\n _context.next = 5;\n break;\n }\n throw new Error('Initial locale argument was not passed into serverSideTranslations');\n case 5:\n userConfig = configOverride;\n configPath = _path[\"default\"].resolve(DEFAULT_CONFIG_PATH);\n if (!(!userConfig && _fs[\"default\"].existsSync(configPath))) {\n _context.next = 11;\n break;\n }\n _context.next = 10;\n return function (specifier) {\n return new Promise(function (r) {\n return r(\"\".concat(specifier));\n }).then(function (s) {\n return _interopRequireWildcard(require(s));\n });\n }(configPath);\n case 10:\n userConfig = _context.sent;\n case 11:\n if (!(userConfig === null)) {\n _context.next = 13;\n break;\n }\n throw new Error(\"next-i18next was unable to find a user config at \".concat(configPath));\n case 13:\n config = (0, _createConfig.createConfig)(_objectSpread(_objectSpread({}, userConfig), {}, {\n lng: initialLocale\n }));\n localeExtension = config.localeExtension, localePath = config.localePath, fallbackLng = config.fallbackLng, reloadOnPrerender = config.reloadOnPrerender;\n if (!reloadOnPrerender) {\n _context.next = 18;\n break;\n }\n _context.next = 18;\n return _appWithTranslation.globalI18n === null || _appWithTranslation.globalI18n === void 0 ? void 0 : _appWithTranslation.globalI18n.reloadResources();\n case 18:\n _createClient = (0, _node[\"default\"])(_objectSpread(_objectSpread({}, config), {}, {\n lng: initialLocale\n })), i18n = _createClient.i18n, initPromise = _createClient.initPromise;\n _context.next = 21;\n return initPromise;\n case 21:\n hasCustomBackend = (_userConfig = userConfig) === null || _userConfig === void 0 || (_userConfig = _userConfig.use) === null || _userConfig === void 0 ? void 0 : _userConfig.some(function (b) {\n return b.type === 'backend';\n });\n if (!(hasCustomBackend && namespacesRequired)) {\n _context.next = 25;\n break;\n }\n _context.next = 25;\n return i18n.loadNamespaces(Array.isArray(namespacesRequired) ? namespacesRequired : namespacesRequired);\n case 25:\n initialI18nStore = (0, _defineProperty2[\"default\"])({}, initialLocale, {});\n (0, _utils.getFallbackForLng)(initialLocale, fallbackLng !== null && fallbackLng !== void 0 ? fallbackLng : false).concat(extraLocales || []).forEach(function (lng) {\n initialI18nStore[lng] = {};\n });\n if (Array.isArray(namespacesRequired)) {\n _context.next = 33;\n break;\n }\n if (!(typeof localePath === 'function')) {\n _context.next = 30;\n break;\n }\n throw new Error('Must provide namespacesRequired to serverSideTranslations when using a function as localePath');\n case 30:\n getLocaleNamespaces = function getLocaleNamespaces(path) {\n return _fs[\"default\"].existsSync(path) ? _fs[\"default\"].readdirSync(path).map(function (file) {\n return file.replace(\".\".concat(localeExtension), '');\n }) : [];\n };\n namespacesByLocale = Object.keys(initialI18nStore).map(function (locale) {\n return getLocaleNamespaces(_path[\"default\"].resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(locale)));\n }).flat();\n namespacesRequired = (0, _utils.unique)(namespacesByLocale);\n case 33:\n namespacesRequired.forEach(function (ns) {\n for (var locale in initialI18nStore) {\n initialI18nStore[locale][ns] = (i18n.services.resourceStore.data[locale] || {})[ns] || {};\n }\n });\n return _context.abrupt(\"return\", {\n _nextI18Next: {\n initialI18nStore: initialI18nStore,\n initialLocale: initialLocale,\n ns: namespacesRequired,\n userConfig: config.serializeConfig ? userConfig : null\n }\n });\n case 35:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function serverSideTranslations(_x) {\n return _ref.apply(this, arguments);\n };\n}();","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useIsomorphicLayoutEffect = exports.unique = exports.getFallbackForLng = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nrequire(\"core-js/modules/es.array.is-array.js\");\nrequire(\"core-js/modules/es.array.concat.js\");\nrequire(\"core-js/modules/es.array.from.js\");\nrequire(\"core-js/modules/es.string.iterator.js\");\nrequire(\"core-js/modules/es.array.iterator.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.set.js\");\nrequire(\"core-js/modules/web.dom-collections.iterator.js\");\nvar _react = require(\"react\");\nvar getFallbackForLng = exports.getFallbackForLng = function getFallbackForLng(lng, fallbackLng) {\n if (typeof fallbackLng === 'string') {\n return [fallbackLng];\n }\n if (Array.isArray(fallbackLng)) {\n return fallbackLng;\n }\n if ((0, _typeof2[\"default\"])(fallbackLng) === 'object') {\n var fallbackList = fallbackLng[lng];\n var fallbackDefault = fallbackLng[\"default\"];\n return [].concat((0, _toConsumableArray2[\"default\"])(fallbackList !== null && fallbackList !== void 0 ? fallbackList : []), (0, _toConsumableArray2[\"default\"])(fallbackDefault !== null && fallbackDefault !== void 0 ? fallbackDefault : []));\n }\n if (typeof fallbackLng === 'function') {\n return getFallbackForLng(lng, fallbackLng(lng));\n }\n return [];\n};\nvar unique = exports.unique = function unique(list) {\n return Array.from(new Set(list));\n};\n\n/**\n * This hook behaves like `useLayoutEffect` on the client,\n * and `useEffect` on the server(no effect).\n *\n * Since using `useLayoutEffect` on the server cause warning messages in nextjs,\n * this hook is workaround for that.\n */\nvar useIsomorphicLayoutEffect = exports.useIsomorphicLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = () => ([]);\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 94610;\nmodule.exports = webpackEmptyContext;","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","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}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","var DEFAULT_LOCALE = 'en';\nvar LOCALES = ['en'];\nvar DEFAULT_NAMESPACE = 'common';\nvar LOCALE_PATH = './public/locales';\nvar LOCALE_STRUCTURE = '{{lng}}/{{ns}}';\nvar LOCALE_EXTENSION = 'json';\nexport var defaultConfig = {\n defaultNS: DEFAULT_NAMESPACE,\n errorStackTraceLimit: 0,\n i18n: {\n defaultLocale: DEFAULT_LOCALE,\n locales: LOCALES\n },\n get initImmediate() {\n return process.browser && typeof window !== 'undefined';\n },\n interpolation: {\n escapeValue: false\n },\n load: 'currentOnly',\n localeExtension: LOCALE_EXTENSION,\n localePath: LOCALE_PATH,\n localeStructure: LOCALE_STRUCTURE,\n react: {\n useSuspense: false\n },\n reloadOnPrerender: false,\n serializeConfig: true,\n use: []\n};","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport { useLayoutEffect, useEffect } from 'react';\nexport var getFallbackForLng = function getFallbackForLng(lng, fallbackLng) {\n if (typeof fallbackLng === 'string') {\n return [fallbackLng];\n }\n if (Array.isArray(fallbackLng)) {\n return fallbackLng;\n }\n if (_typeof(fallbackLng) === 'object') {\n var fallbackList = fallbackLng[lng];\n var fallbackDefault = fallbackLng[\"default\"];\n return [].concat(_toConsumableArray(fallbackList !== null && fallbackList !== void 0 ? fallbackList : []), _toConsumableArray(fallbackDefault !== null && fallbackDefault !== void 0 ? fallbackDefault : []));\n }\n if (typeof fallbackLng === 'function') {\n return getFallbackForLng(lng, fallbackLng(lng));\n }\n return [];\n};\nexport var unique = function unique(list) {\n return Array.from(new Set(list));\n};\n\n/**\n * This hook behaves like `useLayoutEffect` on the client,\n * and `useEffect` on the server(no effect).\n *\n * Since using `useLayoutEffect` on the server cause warning messages in nextjs,\n * this hook is workaround for that.\n */\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"i18n\"],\n _excluded2 = [\"i18n\"];\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { defaultConfig } from './defaultConfig';\nimport { getFallbackForLng, unique } from '../utils';\nvar deepMergeObjects = ['backend', 'detection'];\nexport var createConfig = function createConfig(userConfig) {\n var _userConfig$interpola, _userConfig$interpola2, _userConfig$use;\n if (typeof (userConfig === null || userConfig === void 0 ? void 0 : userConfig.lng) !== 'string') {\n throw new Error('config.lng was not passed into createConfig');\n }\n\n //\n // Initial merge of default and user-provided config\n //\n var userI18n = userConfig.i18n,\n userConfigStripped = _objectWithoutProperties(userConfig, _excluded);\n var defaultI18n = defaultConfig.i18n,\n defaultConfigStripped = _objectWithoutProperties(defaultConfig, _excluded2);\n var combinedConfig = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultConfigStripped), userConfigStripped), defaultI18n), userI18n);\n var defaultNS = combinedConfig.defaultNS,\n lng = combinedConfig.lng,\n localeExtension = combinedConfig.localeExtension,\n localePath = combinedConfig.localePath,\n nonExplicitSupportedLngs = combinedConfig.nonExplicitSupportedLngs;\n var locales = combinedConfig.locales.filter(function (l) {\n return l !== 'default';\n });\n\n /**\n * Skips translation file resolution while in cimode\n * https://github.com/i18next/next-i18next/pull/851#discussion_r503113620\n */\n if (lng === 'cimode') {\n return combinedConfig;\n }\n if (typeof combinedConfig.fallbackLng === 'undefined') {\n combinedConfig.fallbackLng = combinedConfig.defaultLocale;\n if (combinedConfig.fallbackLng === 'default') {\n var _locales = _slicedToArray(locales, 1);\n combinedConfig.fallbackLng = _locales[0];\n }\n }\n var userPrefix = userConfig === null || userConfig === void 0 || (_userConfig$interpola = userConfig.interpolation) === null || _userConfig$interpola === void 0 ? void 0 : _userConfig$interpola.prefix;\n var userSuffix = userConfig === null || userConfig === void 0 || (_userConfig$interpola2 = userConfig.interpolation) === null || _userConfig$interpola2 === void 0 ? void 0 : _userConfig$interpola2.suffix;\n var prefix = userPrefix !== null && userPrefix !== void 0 ? userPrefix : '{{';\n var suffix = userSuffix !== null && userSuffix !== void 0 ? userSuffix : '}}';\n if (typeof (userConfig === null || userConfig === void 0 ? void 0 : userConfig.localeStructure) !== 'string' && (userPrefix || userSuffix)) {\n combinedConfig.localeStructure = \"\".concat(prefix, \"lng\").concat(suffix, \"/\").concat(prefix, \"ns\").concat(suffix);\n }\n var fallbackLng = combinedConfig.fallbackLng,\n localeStructure = combinedConfig.localeStructure;\n if (nonExplicitSupportedLngs) {\n var createFallbackObject = function createFallbackObject(acc, l) {\n var _l$split = l.split('-'),\n _l$split2 = _slicedToArray(_l$split, 1),\n locale = _l$split2[0];\n acc[l] = [locale];\n return acc;\n };\n if (typeof fallbackLng === 'string') {\n combinedConfig.fallbackLng = combinedConfig.locales.filter(function (l) {\n return l.includes('-');\n }).reduce(createFallbackObject, {\n \"default\": [fallbackLng]\n });\n } else if (Array.isArray(fallbackLng)) {\n combinedConfig.fallbackLng = combinedConfig.locales.filter(function (l) {\n return l.includes('-');\n }).reduce(createFallbackObject, {\n \"default\": fallbackLng\n });\n } else if (_typeof(fallbackLng) === 'object') {\n combinedConfig.fallbackLng = Object.entries(combinedConfig.fallbackLng).reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n l = _ref2[0],\n f = _ref2[1];\n acc[l] = l.includes('-') ? unique([l.split('-')[0]].concat(_toConsumableArray(f))) : f;\n return acc;\n }, fallbackLng);\n } else if (typeof fallbackLng === 'function') {\n throw new Error('If nonExplicitSupportedLngs is true, no functions are allowed for fallbackLng');\n }\n }\n var hasCustomBackend = userConfig === null || userConfig === void 0 || (_userConfig$use = userConfig.use) === null || _userConfig$use === void 0 ? void 0 : _userConfig$use.some(function (b) {\n return b.type === 'backend';\n });\n if (!process.browser && typeof window === 'undefined') {\n combinedConfig.preload = locales;\n if (!hasCustomBackend) {\n var fs = require('fs');\n var path = require('path');\n\n //\n // Validate defaultNS\n // https://github.com/i18next/next-i18next/issues/358\n //\n if (typeof defaultNS === 'string' && typeof lng !== 'undefined') {\n if (typeof localePath === 'string') {\n var defaultLocaleStructure = localeStructure.replace(\"\".concat(prefix, \"lng\").concat(suffix), lng).replace(\"\".concat(prefix, \"ns\").concat(suffix), defaultNS);\n var defaultFile = \"/\".concat(defaultLocaleStructure, \".\").concat(localeExtension);\n var defaultNSPath = path.join(localePath, defaultFile);\n var defaultNSExists = fs.existsSync(defaultNSPath);\n var fallback = getFallbackForLng(lng, combinedConfig.fallbackLng);\n var defaultFallbackNSExists = fallback.some(function (f) {\n var fallbackFile = defaultFile.replace(lng, f);\n var defaultNSPath = path.join(localePath, fallbackFile);\n return fs.existsSync(defaultNSPath);\n });\n if (!defaultNSExists && !defaultFallbackNSExists && process.env.NODE_ENV !== 'production') {\n throw new Error(\"Default namespace not found at \".concat(defaultNSPath));\n }\n } else if (typeof localePath === 'function') {\n var _defaultNSPath = localePath(lng, defaultNS, false);\n var _defaultNSExists = fs.existsSync(_defaultNSPath);\n var _fallback = getFallbackForLng(lng, combinedConfig.fallbackLng);\n var _defaultFallbackNSExists = _fallback.some(function (f) {\n var defaultNSPath = localePath(f, defaultNS, false);\n return fs.existsSync(defaultNSPath);\n });\n if (!_defaultNSExists && !_defaultFallbackNSExists && process.env.NODE_ENV !== 'production') {\n throw new Error(\"Default namespace not found at \".concat(_defaultNSPath));\n }\n }\n }\n\n //\n // Set server side backend\n //\n if (typeof localePath === 'string') {\n combinedConfig.backend = {\n addPath: path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(localeStructure, \".missing.\").concat(localeExtension)),\n loadPath: path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(localeStructure, \".\").concat(localeExtension))\n };\n } else if (typeof localePath === 'function') {\n combinedConfig.backend = {\n addPath: function addPath(locale, namespace) {\n return localePath(locale, namespace, true);\n },\n loadPath: function loadPath(locale, namespace) {\n return localePath(locale, namespace, false);\n }\n };\n } else if (localePath) {\n throw new Error(\"Unsupported localePath type: \".concat(_typeof(localePath)));\n }\n\n //\n // Set server side preload (namespaces)\n //\n if (!combinedConfig.ns && typeof lng !== 'undefined') {\n if (typeof localePath === 'function') {\n throw new Error('Must provide all namespaces in ns option if using a function as localePath');\n }\n var getNamespaces = function getNamespaces(locales) {\n var getLocaleNamespaces = function getLocaleNamespaces(p) {\n var ret = [];\n if (!fs.existsSync(p)) return ret;\n fs.readdirSync(p).map(function (file) {\n var joinedP = path.join(p, file);\n if (fs.statSync(joinedP).isDirectory()) {\n var subRet = getLocaleNamespaces(joinedP).map(function (n) {\n return \"\".concat(file, \"/\").concat(n);\n });\n ret = ret.concat(subRet);\n return;\n }\n ret.push(file.replace(\".\".concat(localeExtension), ''));\n });\n return ret;\n };\n var namespacesByLocale;\n var r = combinedConfig.resources;\n if (!localePath && r) {\n namespacesByLocale = locales.map(function (locale) {\n return Object.keys(r[locale]);\n });\n } else {\n namespacesByLocale = locales.map(function (locale) {\n return getLocaleNamespaces(path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(locale)));\n });\n }\n var allNamespaces = [];\n var _iterator = _createForOfIteratorHelper(namespacesByLocale),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var localNamespaces = _step.value;\n allNamespaces.push.apply(allNamespaces, _toConsumableArray(localNamespaces));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return unique(allNamespaces);\n };\n if (localeStructure.indexOf(\"\".concat(prefix, \"lng\").concat(suffix)) > localeStructure.indexOf(\"\".concat(prefix, \"ns\").concat(suffix))) {\n throw new Error('Must provide all namespaces in ns option if using a localeStructure that is not namespace-listable like lng/ns');\n }\n combinedConfig.ns = getNamespaces(unique([lng].concat(_toConsumableArray(getFallbackForLng(lng, combinedConfig.fallbackLng)))));\n }\n }\n } else {\n //\n // Set client side backend, if there is no custom backend\n //\n if (!hasCustomBackend) {\n if (typeof localePath === 'string') {\n combinedConfig.backend = {\n addPath: \"\".concat(localePath, \"/\").concat(localeStructure, \".missing.\").concat(localeExtension),\n loadPath: \"\".concat(localePath, \"/\").concat(localeStructure, \".\").concat(localeExtension)\n };\n } else if (typeof localePath === 'function') {\n combinedConfig.backend = {\n addPath: function addPath(locale, namespace) {\n return localePath(locale, namespace, true);\n },\n loadPath: function loadPath(locale, namespace) {\n return localePath(locale, namespace, false);\n }\n };\n }\n }\n if (typeof combinedConfig.ns !== 'string' && !Array.isArray(combinedConfig.ns)) {\n combinedConfig.ns = [defaultNS];\n }\n }\n\n //\n // Deep merge with overwrite - goes last\n //\n deepMergeObjects.forEach(function (obj) {\n if (userConfig[obj]) {\n combinedConfig[obj] = _objectSpread(_objectSpread({}, combinedConfig[obj]), userConfig[obj]);\n }\n });\n return combinedConfig;\n};","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import i18n from 'i18next';\nexport default (function (config) {\n if (config.ns === undefined) config.ns = [];\n var instance = i18n.createInstance(config);\n var initPromise;\n if (!instance.isInitialized) {\n var _config$use;\n config === null || config === void 0 || (_config$use = config.use) === null || _config$use === void 0 || _config$use.forEach(function (x) {\n return instance.use(x);\n });\n if (typeof config.onPreInitI18next === 'function') {\n config.onPreInitI18next(instance);\n }\n initPromise = instance.init(config);\n } else {\n initPromise = Promise.resolve(i18n.t);\n }\n return {\n i18n: instance,\n initPromise: initPromise\n };\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar __jsx = React.createElement;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport React, { useMemo, useRef } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { I18nextProvider } from 'react-i18next';\nimport { createConfig } from './config/createConfig';\nimport createClient from './createClient';\nimport { useIsomorphicLayoutEffect } from './utils';\nexport { Trans, useTranslation, withTranslation } from 'react-i18next';\nexport var globalI18n = null;\nvar addResourcesToI18next = function addResourcesToI18next(instance, resources) {\n if (resources && instance.isInitialized) {\n for (var _i = 0, _Object$keys = Object.keys(resources); _i < _Object$keys.length; _i++) {\n var locale = _Object$keys[_i];\n for (var _i2 = 0, _Object$keys2 = Object.keys(resources[locale]); _i2 < _Object$keys2.length; _i2++) {\n var _instance$store;\n var ns = _Object$keys2[_i2];\n if (!(instance !== null && instance !== void 0 && (_instance$store = instance.store) !== null && _instance$store !== void 0 && _instance$store.data) || !instance.store.data[locale] || !instance.store.data[locale][ns]) {\n instance.addResourceBundle(locale, ns, resources[locale][ns], true, true);\n }\n }\n }\n }\n};\nexport var appWithTranslation = function appWithTranslation(WrappedComponent) {\n var configOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var AppWithTranslation = function AppWithTranslation(props) {\n var _nextI18Next$initialL, _props$router;\n var _ref = props.pageProps || {},\n _nextI18Next = _ref._nextI18Next; // pageProps may be undefined on strange setups, i.e. https://github.com/i18next/next-i18next/issues/2109\n var locale = (_nextI18Next$initialL = _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.initialLocale) !== null && _nextI18Next$initialL !== void 0 ? _nextI18Next$initialL : props === null || props === void 0 || (_props$router = props.router) === null || _props$router === void 0 ? void 0 : _props$router.locale;\n var ns = _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.ns;\n var instanceRef = useRef(null);\n\n /**\n * Memoize i18n instance and reuse it rather than creating new instance.\n * When the locale or resources are changed after instance was created,\n * we will update the instance by calling addResourceBundle method on it.\n */\n var i18n = useMemo(function () {\n var _userConfig$i18n;\n if (!_nextI18Next && !configOverride) return null;\n var userConfig = configOverride !== null && configOverride !== void 0 ? configOverride : _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.userConfig;\n if (!userConfig) {\n throw new Error('appWithTranslation was called without a next-i18next config');\n }\n if (!(userConfig !== null && userConfig !== void 0 && userConfig.i18n)) {\n throw new Error('appWithTranslation was called without config.i18n');\n }\n if (!(userConfig !== null && userConfig !== void 0 && (_userConfig$i18n = userConfig.i18n) !== null && _userConfig$i18n !== void 0 && _userConfig$i18n.defaultLocale)) {\n throw new Error('config.i18n does not include a defaultLocale property');\n }\n var _ref2 = _nextI18Next || {},\n initialI18nStore = _ref2.initialI18nStore;\n var resources = configOverride !== null && configOverride !== void 0 && configOverride.resources ? configOverride.resources : initialI18nStore;\n if (!locale) locale = userConfig.i18n.defaultLocale;\n var instance = instanceRef.current;\n if (instance) {\n addResourcesToI18next(instance, resources);\n } else {\n instance = createClient(_objectSpread(_objectSpread({}, createConfig(_objectSpread(_objectSpread({}, userConfig), {}, {\n lng: locale\n }))), {}, {\n lng: locale,\n ns: ns,\n resources: resources\n })).i18n;\n addResourcesToI18next(instance, resources);\n globalI18n = instance;\n instanceRef.current = instance;\n }\n return instance;\n }, [_nextI18Next, locale, ns]);\n\n /**\n * Since calling changeLanguage method on existing i18n instance cause state update in react,\n * we need to call the method in `useLayoutEffect` to prevent state update in render phase.\n */\n useIsomorphicLayoutEffect(function () {\n if (!i18n || !locale) return;\n i18n.changeLanguage(locale);\n }, [i18n, locale]);\n return i18n !== null ? __jsx(I18nextProvider, {\n i18n: i18n\n }, __jsx(WrappedComponent, props)) : __jsx(WrappedComponent, _extends({\n key: locale\n }, props));\n };\n return hoistNonReactStatics(AppWithTranslation, WrappedComponent);\n};","export { I18nContext, Trans, Translation, useTranslation, withTranslation } from 'react-i18next';\nexport { appWithTranslation, globalI18n as i18n } from './appWithTranslation';","module.exports = require('./dist/commonjs/serverSideTranslations')\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return require(\"private-next-pages/_app.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n ","import type { DigitalData } from '@dx-ui/config-metrics';\n\nexport const digitalData: DigitalData = {\n event: [],\n user: [\n {\n profile: [\n {\n profileInfo: {\n profileID: '',\n pointsBalance: '',\n rewardsTier: '',\n },\n attributes: {\n loginStatus: 'Logged-out',\n goUserType: '',\n },\n },\n ],\n },\n ],\n page: {\n attributes: {\n siteExperience: 'R',\n },\n category: {\n siteType: 'B',\n },\n pageInfo: {},\n },\n global: {\n page: {},\n user: {\n profileID: '',\n rewardsTier: '',\n userType: '',\n },\n },\n};\n\nexport const defaultPageData = {\n brandCode: 'HH',\n brandName: 'Hilton Honors',\n exp: 'Browser',\n expType: 'New Hilton',\n pageName: 'Home',\n primaryCategory: 'honors',\n siteType: 'B',\n subSection: null,\n subSubSection: null,\n isCmsPage: false,\n};\n","import { AdobeTagManager } from '@dx-ui/config-metrics';\n\nimport {\n capitalize,\n formatLabel,\n getAppVersion,\n getPageName,\n getCmsPageName,\n} from '../../utils/helpers/metrics';\n\nimport { defaultPageData } from './digitalData';\n\ntype EventAction = {\n eventAction: string;\n eventIdx?: number;\n};\n\ntype PageDataProps = {\n brandCode?: string;\n brandName?: string;\n language?: string;\n primaryCategory?: string;\n pageName?: string;\n pageType?: string;\n pageDetail?: string[];\n subSection?: string | null;\n subSubSection?: string | null;\n siteType?: string;\n expType?: string;\n exp?: string;\n isCmsPage?: boolean;\n loginStatus?: string;\n};\n\nexport class ExtendedAdobeTagManager extends AdobeTagManager {\n public setDefaultPageData(props: PageDataProps[]) {\n const mergedProps: PageDataProps = {\n ...defaultPageData,\n ...props,\n };\n const {\n language,\n brandName,\n brandCode,\n expType,\n exp,\n primaryCategory,\n pageType,\n subSubSection,\n siteType,\n pageDetail,\n isCmsPage,\n loginStatus,\n } = mergedProps;\n let { subSection } = mergedProps;\n\n // Update 'guest' to 'account' to match GW\n if (subSection === 'guest') {\n subSection = 'account';\n }\n\n this._set('page.pageInfo.language', language);\n this._set('page.category.brand', brandCode);\n this._set('page.category.exp', exp);\n this._set('page.category.siteName', brandName);\n this._set('page.attributes.expType', expType);\n this._set('page.pageInfo.pageTitle', document.title);\n this._set('page.attributes.version', getAppVersion());\n\n pageType && this._set('page.pageInfo.pageType', pageType);\n this._set('page.pageInfo.pageDetail1', (pageDetail && pageDetail[0]) || '');\n this._set('page.pageInfo.pageDetail2', (pageDetail && pageDetail[1]) || '');\n this._set('page.pageInfo.pageDetail3', (pageDetail && pageDetail[2]) || '');\n this._set(\n 'page.pageInfo.destinationURL',\n `${document.location.origin}${document.location.pathname}`\n );\n this._set('page.category.primaryCategory', capitalize(primaryCategory || ''));\n this._set('page.category.siteType', siteType);\n subSection && this._set('page.category.subSection', subSection);\n subSubSection && this._set('page.category.subSubSection', `${subSection}:${subSubSection}`);\n this._set(\n 'page.pageInfo.pageName',\n isCmsPage ? getCmsPageName(mergedProps) : getPageName(mergedProps)\n );\n\n // New data layer\n this._set('global.page.languageCode', language);\n this._set('global.page.brandCode', brandCode);\n this._set('global.page.siteName', brandName);\n this._set('global.page.pageTitle', document.title);\n this._set('global.page.version', getAppVersion());\n\n pageType && this._set('global.page.pageType', pageType);\n this._set('global.page.pageDetail1', (pageDetail && pageDetail[0]) || '');\n this._set('global.page.pageDetail2', (pageDetail && pageDetail[1]) || '');\n this._set('global.page.pageDetail3', (pageDetail && pageDetail[2]) || '');\n this._set('global.page.primaryCategory', capitalize(primaryCategory || ''));\n this._set('global.page.siteType', siteType);\n this._set('global.page.loginStatus', loginStatus);\n }\n\n public setGuestPageData(\n props: {\n profileID?: string;\n pointsBalance?: string | number;\n rewardsTier?: string;\n attributes?: object;\n }[]\n ) {\n const { profileID, pointsBalance, rewardsTier, attributes } = props as unknown as Record<\n string,\n string\n >;\n\n this._set('user[0].profile[0].profileInfo.profileID', profileID);\n this._set('user[0].profile[0].profileInfo.pointsBalance', pointsBalance);\n this._set('user[0].profile[0].profileInfo.rewardsTier', rewardsTier);\n this._set('user[0].profile[0].attributes', attributes || {});\n\n // New data layer\n this._set('global.user.profileID', profileID);\n this._set('global.user.rewardsTier', rewardsTier);\n this._set('global.user.userType', attributes?.['goUserType'] || '');\n }\n\n public setPageInfo(key: string, value: string[] | string) {\n this._set(`page.pageInfo.${key}`, Array.isArray(value) ? value.join(',') : value);\n this._set(`global.page.${key}`, Array.isArray(value) ? value.join(',') : value);\n }\n\n public setPageName(\n props: {\n language?: string;\n brandName?: string;\n pageCategory?: string;\n primaryCategory?: string;\n pageName?: string;\n subSection?: string;\n }[]\n ) {\n this._set('page.pageInfo.pageName', getPageName(props as unknown as Record<string, string>));\n }\n\n setProperty(key: string, value: string) {\n this._set(key, Array.isArray(value) ? value.join(',') : value);\n }\n\n setPageDetails(details: { pageDetail: string; detailIdx?: number }[]) {\n const { pageDetail, detailIdx = 1 } = details as unknown as Record<string, number>;\n this._set(`page.pageInfo.pageDetail${detailIdx}`, pageDetail);\n }\n\n setEventAction(eventDetails: EventAction | EventAction[]) {\n const { eventAction, eventIdx = 0 } = eventDetails as unknown as Record<string, number>;\n this._set(`event[${eventIdx}].eventInfo.eventAction`, eventAction);\n }\n\n setFormErrors(formErrors: { errors: string[] | string; eventIdx?: number }[]) {\n const { errors, eventIdx = 0 } = formErrors as unknown as Record<string, number>;\n this.setEventAction({ eventAction: 'error', eventIdx });\n this._set('page.pageInfo.formError', Array.isArray(errors) ? errors.join(', ') : errors);\n }\n //used in personal-information page\n clearMetrics() {\n this._set('event', []);\n this._set('action', {});\n this.setPageInfo('pageDetail3', '');\n this.setPageInfo('formError', '');\n this.setProperty('page.attributes.alertTextMessage', '');\n this.setProperty('page.attributes.alertCode', '');\n }\n\n setFormErrorMessages(messages: string | string[]) {\n this._set(\n 'page.pageInfo.formErrorMessage',\n Array.isArray(messages) ? messages.join(',') : messages\n );\n }\n\n trackEvent(eventName: string, params: unknown = null, resetEvents = false) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this._track(eventName, params);\n if (resetEvents) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this._resetEvents();\n }\n }\n\n trackGridItemClick(\n event: { label: string; gridPosition?: string } | { label: string; gridPosition?: string }[]\n ) {\n const eventAction = `${formatLabel(!Array.isArray(event) ? event.label : '')}initiated`;\n this.setEventAction([{ eventAction }]);\n this.trackPageDetails();\n this.trackEvent(eventAction);\n }\n\n public trackLoginError({ type, source }: { type: string; source: string }) {\n switch (type) {\n case 'account_locked':\n this._set(\n 'page.attributes.alertTextMessage',\n 'Your login failed too many times. Your account is locked, but it’s simple to get back in.'\n );\n this._set('page.attributes.alertCode', 'account_locked');\n break;\n case 'invalid_grant':\n this._set(\n 'page.attributes.alertTextMessage',\n 'Your login didn’t match our records. Please try again. Be careful: too many attempts will lock your account.'\n );\n this._set('page.attributes.alertCode', 'invalid_grant');\n break;\n case 'invalid_entry':\n this._set(\n 'page.attributes.alertTextMessage',\n 'Forgetting something? We need your username and password to login.'\n );\n this._set('page.attributes.alertCode', 'invalid_entry');\n break;\n case 'invalid_recaptcha':\n this._set(\n 'page.attributes.alertTextMessage',\n \"Please confirm you're not a robot to continue.\"\n );\n this._set('page.attributes.alertCode', 'invalid_recaptcha');\n break;\n }\n void this.track(source, null, true);\n }\n\n trackPageView(eventName?: string) {\n void this.track(eventName || 'myAccountPageView', null);\n }\n\n trackPageDetails() {\n this.trackEvent('pageDetail', null, false);\n }\n\n trackFormErrors() {\n this.trackEvent('formErrorEvent', null, false);\n }\n\n setErrorPageData(\n props: { errorCode: number | null; errorName: string | null; errorMessage: string | null }[]\n ) {\n const mergedProps = { ...defaultPageData, ...props };\n const { brandCode } = mergedProps;\n const { errorCode, errorMessage, errorName = '' } = props as unknown as Record<string, string>;\n\n this._set('event.eventInfo.eventAction', 'error');\n this._set('page.category.primaryCategory', 'error');\n this._set('page.category.subSection', `error:${errorName}`);\n this._set('page.pageInfo.error', errorCode);\n this._set('page.pageInfo.pageName', `${brandCode}:error:${errorName}`);\n this._set('page.pageInfo.pageDetail1', errorCode);\n this._set('page.category.primaryCategory', 'Error');\n errorMessage && this._set('page.category.subSubSection', `error:${errorName}:${errorMessage}`);\n errorMessage && this._set('page.pageInfo.pageType', errorMessage);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this._track('errorPageView', null);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this._track('errorEvent', null);\n }\n\n unsetProperty(path: string) {\n this._unset(path);\n }\n\n reset() {\n this.setDefaultPageData([{}]);\n }\n}\n","import { createMetrics, metricsConfig } from '@dx-ui/config-metrics';\nimport { env } from '@dx-ui/framework-env';\n\nimport { digitalData } from '../../config/metrics/digitalData';\nimport { ExtendedAdobeTagManager } from './ExtendedAdobeTagManager';\n\nconst config: { api: ExtendedAdobeTagManager } = createMetrics(\n metricsConfig({\n digitalData,\n debug: Boolean(env('TRACKING_DEBUG') && /stg|test|local/.test(env('APP_ENV'))),\n Interface: ExtendedAdobeTagManager,\n seedFile: env('TRACKING_SEED_FILE'),\n server: typeof window === 'undefined',\n })\n);\n\nexport default config;\n","import { createContext, useEffect } from 'react';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport { useRouter } from 'next/router';\n\nimport { useLanguage } from '../../hooks/useLanguage';\nimport { getQueryParameters } from '../../utils/routeHelpers';\nimport { defaultPageData } from './digitalData';\nimport metrics from './metrics';\n\nimport type { GuestQuery } from '@dx-ui/framework-auth-provider';\nimport type { ExtendedAdobeTagManager } from './ExtendedAdobeTagManager';\n\ntype TrackingData = {\n trackingData: { pageData: typeof defaultPageData } & { pageView: string };\n};\n\nexport const MetricsContext = createContext<{ metrics: ExtendedAdobeTagManager }>({\n metrics: metrics.api,\n});\n\nconst goUserTypes = ['OAS', 'ODM', 'GHFT', 'GHFF', 'TMH', 'FF'];\n\nconst hgvUserTypes = ['HGD'];\n\nconst smbUserTypes = ['SMBO', 'SMBA', 'SMBC', 'SMBE', 'SMBP'];\n\nconst getGuestUserType = (guestInfo: GuestQuery['guest'], userTypeArray: string[]) => {\n return guestInfo?.hhonors?.packages?.find((pack) => userTypeArray.includes(pack.packageName));\n};\n\nconst getSMBGuestUserType = (guestInfo: GuestQuery['guest'], userTypeArray: string[]) => {\n return guestInfo?.hhonors?.packages?.filter((pack) => userTypeArray.includes(pack.packageName));\n};\n\nexport const MetricsProvider = ({\n children,\n trackingData = { pageData: defaultPageData },\n}: {\n children?: React.ReactNode;\n trackingData: Partial<TrackingData['trackingData']>;\n}) => {\n const language = useLanguage();\n const router = useRouter();\n const { isAuthenticated, guestInfo, isLoading } = useAuth();\n\n useEffect(() => {\n if (!isLoading) {\n const goGuestType = getGuestUserType(guestInfo, goUserTypes);\n const hgvMaxGuestType = getGuestUserType(guestInfo, hgvUserTypes);\n const smbGuestType = getSMBGuestUserType(guestInfo, smbUserTypes);\n const userType: Record<string, string> = {};\n\n if (goGuestType) {\n userType['goUserType'] = goGuestType.packageName;\n }\n if (hgvMaxGuestType) {\n userType['goUserType'] = hgvMaxGuestType.packageName;\n }\n if (smbGuestType && smbGuestType?.length) {\n userType['goUserType'] = smbGuestType.map((packages) => packages?.packageName).join(',');\n }\n\n // Track session\n metrics.api.setGuestPageData([\n {\n profileID: guestInfo?.hhonors?.hhonorsNumber || '',\n pointsBalance: guestInfo?.hhonors?.summary?.totalPoints || '',\n rewardsTier: guestInfo?.hhonors?.summary?.tierName || '',\n attributes: {\n loginStatus: isAuthenticated ? 'Logged-in' : 'Logged-out',\n ...userType,\n },\n },\n ]);\n\n // Track page load\n metrics.api.setDefaultPageData([\n {\n ...defaultPageData,\n ...trackingData.pageData,\n loginStatus: isAuthenticated ? 'Logged-in' : 'Logged-out',\n language,\n },\n ]);\n }\n }, [trackingData, isAuthenticated, guestInfo, language, isLoading]);\n\n useEffect(() => {\n if (!isLoading) {\n metrics.api.trackPageView(trackingData.pageView);\n }\n }, [trackingData, isLoading]);\n\n useEffect(() => {\n const handleTrackedRouteChange = (url: string) => {\n const { eventAction, pageDetail } = getQueryParameters(url);\n if (eventAction || pageDetail) {\n if (eventAction) {\n metrics.api.setEventAction([{ eventAction }]);\n metrics.api.trackEvent(eventAction);\n }\n if (pageDetail) {\n metrics.api.setPageDetails([{ pageDetail }]);\n metrics.api.trackPageDetails();\n }\n }\n };\n\n router.events.on('routeChangeStart', handleTrackedRouteChange);\n\n return () => {\n router.events.off('routeChangeStart', handleTrackedRouteChange);\n };\n }, [router]);\n\n return (\n <MetricsContext.Provider value={{ metrics: metrics.api }}>{children}</MetricsContext.Provider>\n );\n};\n","import type { ExtendedAdobeTagManager } from './ExtendedAdobeTagManager';\n\nexport * from './MetricsContext';\nexport type Metrics = ExtendedAdobeTagManager;\n","import { env } from '@dx-ui/framework-env';\n\nexport const REACT_QUERY_CONFIG = Object.freeze({\n appId: env('DX_AUTH_API_CUSTOMER_APP_ID'),\n appName: env('APP_NAME'),\n gqlEndpoints: {\n browser: env('DX_GRAPHQL_CLIENT_URI'),\n server: process.env.DX_GRAPHQL_SERVER_URI as string,\n },\n authEndpoints: {\n browser: env('DX_AUTH_API_CLIENT_URI'),\n server: process.env.DX_AUTH_API_SERVER_URI as string,\n },\n});\n","import { useMemo } from 'react';\nimport Cookies from 'universal-cookie';\n\nimport { SEGMENTATION_COOKIE_NAME, SEGMENTATION_COOKIE_NAME_DEV } from '../utils/constants/rules';\nimport { env } from '@dx-ui/framework-env';\nimport { useIsClient } from 'usehooks-ts';\n\nconst cookies = new Cookies();\n\n// for lower environments check if we have a dev cookie & use if it exists\nconst getSegmentCookie = (cookies: Cookies) => {\n let cookie = '';\n\n if (env('APP_ENV') !== 'prd') {\n cookie = cookies?.get(SEGMENTATION_COOKIE_NAME_DEV);\n }\n if (!cookie) {\n cookie = cookies?.get(SEGMENTATION_COOKIE_NAME);\n cookies.set(SEGMENTATION_COOKIE_NAME, cookie, {\n domain: '.hilton.com',\n path: '/',\n sameSite: 'lax',\n secure: true,\n encode: (value) => value,\n });\n }\n return cookie || '';\n};\n\nexport const useSegments = () => {\n const isClient = useIsClient();\n return useMemo(() => {\n const tms: string = isClient ? getSegmentCookie(cookies) : '';\n const segments = tms\n ?.split(',')\n .filter((entry) => (entry.toLowerCase() || '').startsWith('web'))\n .map((entry) => entry.split('=')[1] || '');\n return segments;\n }, [isClient]);\n};\n","import { useState } from 'react';\nimport { useIsomorphicLayoutEffect } from 'usehooks-ts';\n\nexport type UseScrolledOptions = {\n preventListeners?: boolean;\n attachToWindow?: boolean;\n};\n\ntype ScrolledState = {\n scrollTop: number;\n scrollLeft: number;\n};\n\nconst defaultOptions = {\n preventListeners: false,\n attachToWindow: false,\n};\n\nconst mergeOptions = (options?: UseScrolledOptions) => ({\n ...defaultOptions,\n ...(options || {}),\n});\n\nexport const useScrolled = (\n ref: React.RefObject<HTMLElement> | null,\n options?: UseScrolledOptions\n): ScrolledState => {\n const { preventListeners, attachToWindow } = mergeOptions(options);\n const [{ scrollTop, scrollLeft }, setScrolled] = useState<ScrolledState>({\n scrollTop: 0,\n scrollLeft: 0,\n });\n\n const handleScroll = () => {\n let scrollTopVal = 0;\n let scrollLeftVal = 0;\n if (attachToWindow) {\n scrollTopVal = window.pageYOffset;\n scrollLeftVal = window.pageXOffset;\n }\n const element = ref && ref.current;\n if (!attachToWindow && element) {\n scrollTopVal = element.scrollTop;\n scrollLeftVal = element.scrollLeft;\n }\n setScrolled({ scrollTop: scrollTopVal, scrollLeft: scrollLeftVal });\n };\n\n useIsomorphicLayoutEffect(() => {\n const element = attachToWindow ? window : ref && ref.current;\n element && element.addEventListener('scroll', handleScroll);\n if (preventListeners) {\n element && element.removeEventListener('scroll', handleScroll);\n }\n return () => {\n element && element.removeEventListener('scroll', handleScroll);\n };\n }, [ref && ref.current && preventListeners && attachToWindow]);\n\n return {\n scrollLeft,\n scrollTop,\n };\n};\n","import { useQueryClient } from '@tanstack/react-query';\nimport { QUERY_LANGUAGE_KEY } from '../utils/helpers/serverSideProps';\nimport { useLanguage } from './useLanguage';\n\nexport const useQueryLanguage = () => {\n const client = useQueryClient();\n const language = useLanguage();\n return client.getQueryData<string>(QUERY_LANGUAGE_KEY) || language;\n};\n","import { env } from '@dx-ui/framework-env';\nimport { UriBuilder } from '@dx-ui/framework-uri-builder';\nimport { useLanguage } from '../hooks/useLanguage';\n\nexport function useStaticUrls() {\n const host = new URL(env('OHW_BASE_URL')).host;\n const language = useLanguage();\n const secure = true;\n const ohwPortfolioUrlBuilder = new UriBuilder({ host, language, secure });\n const ohwHonorsUrlBuilder = new UriBuilder({ host, language, brand: 'hilton-honors', secure });\n\n const attendeeWebsiteUrl = ohwHonorsUrlBuilder.build('/events/attendee-website/');\n const honorsForgotInfoUrl = ohwHonorsUrlBuilder.build('/login/forgot-information/');\n const personalDataRequestsUrl = ohwHonorsUrlBuilder.build('/personal-data-requests/');\n const privacyStatementUrl = ohwPortfolioUrlBuilder.build('/p/global-privacy-statement/');\n\n return {\n attendeeWebsiteUrl,\n honorsForgotInfoUrl,\n personalDataRequestsUrl,\n privacyStatementUrl,\n };\n}\n","import { useConductricsSelection } from '@dx-ui/framework-conductrics';\nimport { useConductrics } from './useConductrics';\n\nexport const useNaaActivityBanner = () => {\n useConductrics();\n const { isLoaded, selection } = useConductricsSelection('a-NIgyzvqk1ltk');\n return {\n NAA_ActivityOfferBanner: isLoaded && selection?.choice === 'B',\n };\n};\n","export { useLanguage } from './useLanguage';\nexport { useSegments } from './useSegments';\nexport { useMetrics } from './useMetrics';\nexport { useScrolled } from './useScrolled';\nexport { useTranslation } from 'next-i18next';\nexport { useQueryLanguage } from './useQueryLanguage';\nexport { useStaticUrls } from './useStaticUrls';\nexport { useNaaActivityBanner } from './useNaaActivityBanner';\n","import { env } from '@dx-ui/framework-env';\nimport { useState } from 'react';\nimport Cookies from 'universal-cookie';\n\nconst isBrowser: boolean = typeof window !== 'undefined';\n\nfunction getCookie(name: string, cookies?: string) {\n const cookie = new Cookies(cookies);\n return cookie.get(name) || '';\n}\n\n// cookie name for the real Adobe Audience Manager cookie\nexport const TMS_LIVE_COOKIE_NAME = 'TMS';\n// in lower environments a dev cookie can be used since Adobe launch script overwrites any changes on page load, which makes testing challenging\nexport const TMS_DEV_COOKIE_NAME = 'TMS_DEV';\n\nexport const hasDevSegmentCookie = (): boolean => !!getCookie(TMS_DEV_COOKIE_NAME);\n\n// for lower environments check if we have a dev cookie & use if it exists\nconst getSegmentCookie = () => {\n let cookie = '';\n if (isBrowser) {\n if (env('APP_ENV') !== 'prd') {\n cookie = getCookie(TMS_DEV_COOKIE_NAME);\n }\n if (!cookie) {\n cookie = getCookie(TMS_LIVE_COOKIE_NAME);\n }\n }\n return cookie;\n};\n\nexport const getUserSegmentsFromCookie = (cookie: string) =>\n cookie\n .split(',')\n .filter((entry) => (entry.toLowerCase() || '').startsWith('web'))\n .map((entry) => entry.split('=')[1] || '');\n\nexport const useUserSegments = () => {\n const [val] = useState(() => {\n const cookie = getSegmentCookie();\n return getUserSegmentsFromCookie(cookie);\n });\n return val;\n};\n","export * from './lib/framework-user-segments';\n","import { useEffect, useMemo, useRef } from 'react';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport { useInitConductrics } from '@dx-ui/framework-conductrics';\nimport { useUserSegments } from '@dx-ui/framework-user-segments';\nimport type { GuestQuery } from '@dx-ui/framework-auth-provider';\n\nconst getConductricsTraits = (\n isAuthenticated: boolean,\n knownGuest: boolean,\n guestInfo?: GuestQuery['guest'] | null\n) => {\n const { isTeamMember, isOwner, isOwnerHGV, isLongTenure10, isLongTenure20 } =\n guestInfo?.hhonors || {};\n const { tier } = guestInfo?.hhonors?.summary || {};\n const traits = [`login:${isAuthenticated ? 'yes' : 'no'}`];\n if (tier) {\n traits.push(`tier:${tier.toLowerCase()}`);\n }\n if (knownGuest) {\n traits.push('new-existing-members:existing-members');\n } else {\n traits.push('new-existing-members:new-members');\n }\n const teamMember = isTeamMember || isOwner || isOwnerHGV || isLongTenure10 || isLongTenure20;\n traits.push(`teamMember:${teamMember ? 'yes' : 'no'}`);\n return traits;\n};\n\nexport const useConductrics = (\n { visitorTraits }: { visitorTraits: string[] } = { visitorTraits: [] }\n) => {\n const initConductrics = useInitConductrics();\n const { isLoading, isAuthenticated, guestInfo } = useAuth();\n const loaded = useRef(false);\n const userSegments = useUserSegments();\n const knownGuest = useMemo(() => userSegments?.includes('15217574'), [userSegments]);\n\n useEffect(() => {\n if (!isLoading && !loaded.current) {\n const guestTraits = getConductricsTraits(isAuthenticated, knownGuest, guestInfo);\n loaded.current = true;\n initConductrics({ traits: [...guestTraits, ...visitorTraits] });\n }\n }, [isAuthenticated, guestInfo, initConductrics, isLoading, knownGuest, visitorTraits]);\n};\n","import type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport { useRouter } from 'next/router';\n\nexport const useLanguage = () => {\n const { locale = 'en' } = useRouter();\n return (locale || 'en') as SupportedLanguage;\n};\n","import { useContext } from 'react';\nimport { MetricsContext } from '../config/metrics';\n\nexport const useMetrics = () => {\n const { metrics } = useContext(MetricsContext);\n\n return { metrics };\n};\n","const publicLocales = './public/locales';\nconst appPublicLocales = './apps/dx-guests-ui/public/locales';\n\n/**\n * @type {import('next-i18next').UserConfig}\n */\nmodule.exports = {\n i18n: {\n defaultLocale: 'default',\n locales: [\n 'ar',\n 'bg',\n 'cs',\n 'de',\n 'default',\n 'en',\n 'es',\n 'fi',\n 'fr',\n 'id',\n 'it',\n 'ja',\n 'ko',\n 'nl',\n 'pl',\n 'pt',\n 'ro',\n 'ru',\n 'sv',\n 'th',\n 'tr',\n 'vi',\n 'zh-hans',\n 'zh-hant',\n ],\n },\n returnNull: false,\n lowerCaseLng: true,\n debug: false,\n defaultNS: 'translation',\n fallbackLng: 'en',\n localePath: process.env.APP_ENV === 'local' ? appPublicLocales : publicLocales,\n};\n","import { useMemo } from 'react';\nimport { Alert as SharedAlert, AlertDialog, Alerts as SharedAlerts } from '@dx-ui/osc-alert';\nimport { Link } from '@dx-ui/osc-link';\nimport Markdown from 'markdown-to-jsx';\n\nimport { useLanguage } from '../../hooks';\nimport { useBrand_AlertQuery } from '@dx-ui/queries-dx-guests-ui';\nimport { logError } from '@dx-ui/framework-logger';\nimport { generateError } from '@dx-ui/utilities-generate-error';\n\nexport const Alert = () => {\n const language = useLanguage();\n const { data, error } = useBrand_AlertQuery({ language });\n\n const messages = data?.alerts?.messages;\n\n const getAlerts = useMemo(\n () =>\n messages?.[0] ? (\n <SharedAlerts>\n {messages.map(({ headline, link, type, content }) => (\n <SharedAlert\n key={`${type}-${content}`}\n title={headline || ''}\n status={type === 'error' ? 'emergency' : 'urgent'}\n isTruncated={false}\n className=\"[&>div_p]:max-w-4/5 [&>div]:flex-wrap\"\n >\n {link ? (\n <Link\n {...link}\n adaDescription={link?.adaDescription || ''}\n isNewWindow={link?.isNewWindow || false}\n label={link?.label || ''}\n url={link?.url || ''}\n >\n {link.label}\n </Link>\n ) : (\n !!content && (\n <AlertDialog label={headline || ''} title={headline || content}>\n <div className=\"prose lg:prose-lg\">\n <Markdown>{content}</Markdown>\n </div>\n </AlertDialog>\n )\n )}\n </SharedAlert>\n ))}\n </SharedAlerts>\n ) : null,\n [messages]\n );\n\n if (error) {\n logError('ALERT', generateError(error), `Error on ${useBrand_AlertQuery.name}`);\n return null;\n }\n\n return getAlerts;\n};\n","export * from './Alert';\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { Link } from '@dx-ui/osc-link';\nimport type { SocialMediaLink } from './footer.types';\nimport { useIsClient } from 'usehooks-ts';\n\ntype LinkWithExperimentationConfiguration = Link & {\n experimentationConfiguration?: CmsExperimentationConfiguration;\n};\n\nexport type Footer = {\n /** Allows for a fluid width layout */\n isFluid?: boolean;\n /** The customer support link to use. */\n customerSupportLink?: Link;\n /** The contact number for the help desk */\n contactPhoneLink?: Link;\n /** The links displayed horizontally at bottom */\n legalLinks?: Link[];\n /** The main footer links to be displayed in vertical columns divided equally */\n links?: LinkWithExperimentationConfiguration[];\n /** Social media links to be displayed horizontally under contact information */\n socialLinks?: SocialMediaLink[];\n /** Theme choice for footer */\n theme?: Exclude<CmsBrandComponentTheme, 'light'>;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * A shared footer implementation that is intended to used across OHW UI apps to give a consistent experience for customers to navigate key links.\n *\n * All links within the footer are [Link](/docs/library-components-link--default-story) components.\n */\nexport const Footer = React.forwardRef<HTMLDivElement, Footer>(\n (\n {\n customerSupportLink,\n isFluid = false,\n legalLinks,\n links: footerLinks = [],\n contactPhoneLink,\n socialLinks,\n theme,\n ...rest\n },\n forwardedRef\n ) => {\n const isClient = useIsClient();\n const teConsentRef = React.useRef<HTMLDivElement>(null);\n const { t } = useTranslation('osc-footer');\n const links = React.useMemo(\n () =>\n [\n ...footerLinks,\n isClient\n ? ({\n id: 'teconsent',\n url: '',\n ref: teConsentRef,\n } as unknown as Link)\n : null,\n ].filter(Boolean) as LinkWithExperimentationConfiguration[],\n [footerLinks, isClient]\n );\n\n const footerNavLength = links.length;\n const footerNavHalfPoint = footerNavLength > 6 ? Math.ceil(footerNavLength * 0.5) : 0;\n const footerNavFirstHalf = links.slice(0, footerNavHalfPoint);\n const footerNavSecondHalf = links.slice(footerNavHalfPoint, footerNavLength);\n\n const isDark = theme === 'dark';\n\n React.useEffect(() => {\n if (!isClient) return;\n if (!teConsentRef.current) return;\n const callback: MutationCallback = (mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'childList') {\n teConsentRef.current?.parentElement?.removeAttribute('aria-hidden');\n }\n }\n };\n const observer = new MutationObserver(callback);\n observer.observe(teConsentRef.current, { childList: true, subtree: true });\n return () => observer.disconnect();\n }, [isClient]);\n\n return (\n <footer\n className={cx('border-border border-t border-solid', {\n 'bg-bg-dark text-text-inverse': isDark,\n })}\n data-testid=\"osc-footer\"\n ref={forwardedRef}\n {...rest}\n >\n <div\n className={cx('pb-8 pt-4', {\n 'container-fluid': isFluid,\n container: !isFluid,\n })}\n >\n <div className=\"mb-10 flex flex-col lg:flex-row\">\n <div className=\"lg:w-1/2\">\n <h2 data-osc-product=\"footer-help-label\" className=\"text-lg\">\n {t('helpMessage')}\n </h2>\n <div className=\"md:divide-border mt-4 md:flex md:divide-x rtl:divide-x-reverse\">\n {!!contactPhoneLink && (\n <div\n className={cx(\n 'md:px-4 ltr:first:pl-0 ltr:last:pr-0 rtl:first:pr-0 rtl:last:pl-0',\n {\n '[&_button#call-me-modal-trigger]:!text-primary [&_#call-me-modal-trigger_span]:!text-primary [&_button#call-me-modal-trigger]:!bg-bg [&_button#call-me-modal-trigger]:hover:!bg-bg-alt [&_#call-me-number-link_span]:!text-text-inverse [&_#call-me-global-support-link]:!text-text-inverse [&_#call-me-global-support-link_+_svg]:!fill-text-inverse':\n isDark,\n }\n )}\n {...(isClient && { id: 'callme-wrapper' })}\n >\n <Link\n {...contactPhoneLink}\n underline={false}\n className={cx('whitespace-nowrap text-lg font-bold', {\n 'text-primary hover:text-primary-alt': !theme,\n 'text-text-inverse hover:text-bg-alt': isDark,\n })}\n >\n <span className=\"sr-only\">{t('phone')}</span>\n <div className=\"uppercase\">{contactPhoneLink.label}</div>\n </Link>\n <div>\n <Link\n url=\"https://help.hilton.com/s/article/Global-support-numbers?_gl=1*4wzil3*_gcl_au*MTQwMjAwODgzMi4xNzMzMjM3ODgw\"\n isNewWindow={true}\n className={cx('text-sm', {\n 'text-primary hover:text-primary-alt': !theme,\n 'text-text-inverse': isDark,\n })}\n >\n {t('callMessage')}\n </Link>\n </div>\n </div>\n )}\n {!!customerSupportLink && (\n <div className=\"mt-4 md:mt-0 md:px-4\">\n <Link\n {...customerSupportLink}\n underline={false}\n className=\"text-primary hover:text-primary-alt whitespace-nowrap text-lg font-bold\"\n >\n {customerSupportLink.label || t('customerSupport')}\n </Link>\n <p className=\"text-text-alt text-sm\">{t('assistance')}</p>\n </div>\n )}\n </div>\n {socialLinks && socialLinks?.length > 0 && (\n <div className=\"py-4 lg:pt-8\">\n <ul className=\"flex items-center space-x-4 rtl:space-x-reverse\">\n {socialLinks.map(({ channel, url }) => {\n return (\n <li key={`footer-social-${channel}`}>\n <a\n href={url}\n className=\"block\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={`${channel}, ${t('newTab')}`}\n >\n <img\n alt={channel}\n className=\"size-8\"\n src={`/modules/assets/svgs/social/${channel}.svg`}\n />\n <span className=\"sr-only\">, {t('newTab')}</span>\n </a>\n </li>\n );\n })}\n </ul>\n </div>\n )}\n </div>\n <div className=\"mt-8 w-full md:flex md:space-x-20 lg:mt-0 lg:w-2/4 lg:justify-end lg:space-x-8 rtl:space-x-reverse\">\n {footerNavFirstHalf.length > 0 && (\n <ul>\n {footerNavFirstHalf.map(\n ({\n adaDescription,\n isNewWindow,\n label,\n experimentationConfiguration,\n ...props\n }) => (\n <li\n className=\"mb-2\"\n key={label || props?.id || props?.url}\n {...handleTeconsentParentProps(props)}\n >\n <Link\n {...props}\n anchorClassName={cx(props.anchorClassName, {\n 'text-text-inverse *:!text-text-inverse': isDark,\n })}\n adaDescription={adaDescription}\n isNewWindow={isNewWindow}\n data-conductrics-goal={experimentationConfiguration?.goal}\n data-conductrics-value={experimentationConfiguration?.value}\n >\n {label}\n </Link>\n </li>\n )\n )}\n </ul>\n )}\n {footerNavSecondHalf.length > 0 && (\n <ul>\n {footerNavSecondHalf.map(\n ({\n adaDescription,\n isNewWindow,\n label,\n experimentationConfiguration,\n ...props\n }) => (\n <li\n className=\"mb-2\"\n key={label || props.url || props?.id}\n {...handleTeconsentParentProps(props)}\n >\n <Link\n {...props}\n className={cx('text-primary hover:text-primary-alt text-sm', {\n '*:text-primary': !theme,\n '*:text-text-inverse': isDark,\n })}\n anchorClassName={cx({\n 'text-text-inverse *:!text-text-inverse': isDark,\n })}\n adaDescription={adaDescription}\n isNewWindow={isNewWindow}\n data-conductrics-goal={experimentationConfiguration?.goal}\n data-conductrics-value={experimentationConfiguration?.value}\n >\n {label}\n </Link>\n </li>\n )\n )}\n </ul>\n )}\n </div>\n </div>\n {legalLinks && legalLinks.length > 0 && (\n <div>\n <ul className=\"divide-border flex flex-wrap divide-x rtl:divide-x-reverse\">\n {legalLinks.map(({ adaDescription, label, isNewWindow, ...props }) => (\n <li\n className=\"mt-2 px-4 ltr:first:pl-0 rtl:first:pr-0 rtl:last:px-0\"\n key={label || props.url || props?.id}\n >\n <Link\n {...props}\n className={cx({\n 'text-text-inverse': isDark,\n })}\n adaDescription={adaDescription}\n isNewWindow={isNewWindow}\n >\n {label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n )}\n <p\n className={cx('text-text-alt text-sm', {\n 'pt-2': legalLinks && legalLinks.length > 0,\n 'text-text-inverse': isDark,\n })}\n suppressHydrationWarning\n >\n ©{new Date().getFullYear()} Hilton\n </p>\n </div>\n </footer>\n );\n }\n);\n\nfunction handleTeconsentParentProps(props: Link) {\n if (props.id === 'teconsent') {\n return {\n 'aria-hidden': true,\n };\n }\n}\n\nFooter.displayName = 'Footer';\n\nexport default Footer;\n","export * from './footer';\nexport * from './footer.types';\n","export * from './lib/index';\n","import type { Link } from '@dx-ui/osc-link';\nimport type { Resources } from 'i18next';\n\nexport const GlobalFooterLinks = (\n globalFooterLinks: Resources['footer']['globalFooterLinks'],\n locale: string,\n handleClick: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => boolean\n): Link[] =>\n [\n {\n label: globalFooterLinks.webAccessibility,\n url: `/${locale}/p/accessibility`,\n isNewWindow: true,\n onClick: handleClick,\n },\n {\n label: globalFooterLinks.customerSupport,\n url: `https://help.hilton.com/s/`,\n isNewWindow: true,\n onClick: handleClick,\n },\n {\n label: globalFooterLinks.globalPrivacy,\n url: `/${locale}/p/global-privacy-statement/`,\n isNewWindow: true,\n },\n locale === 'en'\n ? {\n label: globalFooterLinks.creditCards,\n url: `/${locale}/hilton-honors/credit-cards/?cid=OH,,GlobalFooterCobrandAllCardsAcqAlwaysOn,MultiBR,,Home,SingleLink,i83471`,\n isNewWindow: true,\n }\n : null,\n {\n isNewWindow: true,\n label: globalFooterLinks.careers,\n url: 'https://jobs.hilton.com/us/en',\n onClick: handleClick,\n },\n {\n isNewWindow: true,\n label: globalFooterLinks.development,\n url: 'https://www.hilton.com/en/corporate/development/',\n onClick: handleClick,\n },\n {\n isNewWindow: true,\n label: globalFooterLinks.media,\n url: 'https://stories.hilton.com/',\n onClick: handleClick,\n },\n {\n label: globalFooterLinks.usageAgreement,\n url: `/${locale}/p/site-usage-agreement/`,\n isNewWindow: true,\n },\n {\n label: globalFooterLinks.partnerAccommodations,\n url: `/${locale}/p/partner-accommodations-terms/`,\n isNewWindow: true,\n },\n {\n label: globalFooterLinks.modernSlavery,\n url: 'https://ir.hilton.com/~/media/Files/H/Hilton-Worldwide-IR-V3/committee-composition/hilton-slavery-and-trafficking-statement-2019.pdf',\n onClick: handleClick,\n isNewWindow: true,\n },\n {\n label: globalFooterLinks.discountTermsAndConditions,\n url: `/${locale}/hilton-honors/honors-discount-terms/`,\n isNewWindow: true,\n onClick: handleClick,\n },\n {\n label: globalFooterLinks.termsAndConditions,\n url: `/${locale}/hilton-honors/terms/`,\n isNewWindow: true,\n onClick: handleClick,\n },\n {\n isNewWindow: true,\n label: globalFooterLinks.tourismMediator,\n url: 'https://www.hilton.com/en/p/tourism-and-travel/',\n onClick: handleClick,\n },\n {\n isNewWindow: true,\n label: globalFooterLinks.adChoices,\n url: 'http://optout.aboutads.info/?c=2&lang=EN#!%2F',\n onClick: handleClick,\n },\n ].filter(Boolean) as Link[];\n","import type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { useRouter } from 'next/router';\nimport { Footer as OSCFooter } from '@dx-ui/osc-footer';\nimport { Speedbump, useSpeedbump } from '@dx-ui/osc-speedbump';\n\nimport { REACT_QUERY_CONFIG } from '../../config/react-query';\nimport { GlobalFooterLinks } from './GlobalFooterLinks';\n\nconst GlobalFooter: React.FC<React.PropsWithChildren<unknown>> = () => {\n const { locale = 'en' } = useRouter();\n const [t] = useTranslation('footer');\n const {\n onShow: handleShowSpeedbump,\n onHide,\n isVisible,\n onContinue,\n } = useSpeedbump(locale, REACT_QUERY_CONFIG.appName);\n\n return (\n <div className=\"border-border mb-20 border-t border-solid lg:mb-0\">\n <Speedbump isShowing={isVisible} onClose={onHide} onContinue={onContinue} />\n <OSCFooter\n className=\"border-t-0\"\n contactPhoneLink={{ url: 'tel:+1-800-446-6677', label: '+1-800-4honors' }}\n customerSupportLink={{\n url: 'https://help.hilton.com/s/',\n target: '_blank',\n rel: 'noopener noreferrer',\n onClick: (event) => handleShowSpeedbump(event),\n }}\n links={GlobalFooterLinks(\n t('globalFooterLinks', { returnObjects: true }),\n locale,\n handleShowSpeedbump\n )}\n />\n </div>\n );\n};\n\nexport default GlobalFooter;\n","// packages/react/arrow/src/arrow.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Arrow\";\nvar Arrow = React.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ jsx(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\nexport {\n Arrow,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/popper/src/popper.tsx\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n shift,\n limitShift,\n hide,\n arrow as floatingUIarrow,\n flip,\n size\n} from \"@floating-ui/react-dom\";\nimport * as ArrowPrimitive from \"@radix-ui/react-arrow\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = React.useState(null);\n return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });\n};\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n context.onAnchorChange(virtualRef?.current || ref.current);\n });\n return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });\n }\n);\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopper,\n side = \"bottom\",\n sideOffset = 0,\n align = \"center\",\n alignOffset = 0,\n arrowPadding = 0,\n avoidCollisions = true,\n collisionBoundary = [],\n collisionPadding: collisionPaddingProp = 0,\n sticky = \"partial\",\n hideWhenDetached = false,\n updatePositionStrategy = \"optimized\",\n onPlaced,\n ...contentProps\n } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [arrow, setArrow] = React.useState(null);\n const arrowSize = useSize(arrow);\n const arrowWidth = arrowSize?.width ?? 0;\n const arrowHeight = arrowSize?.height ?? 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n },\n elements: {\n reference: context.anchor\n },\n middleware: [\n offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\n avoidCollisions && shift({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? limitShift() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && flip({ ...detectOverflowOptions }),\n size({\n ...detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n }\n }),\n arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n transformOrigin({ arrowWidth, arrowHeight }),\n hideWhenDetached && hide({ strategy: \"referenceHidden\", ...detectOverflowOptions })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = useCallbackRef(onPlaced);\n useLayoutEffect(() => {\n if (isPositioned) {\n handlePlaced?.();\n }\n }, [isPositioned, handlePlaced]);\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...middlewareData.hide?.referenceHidden && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ jsx(\n PopperContentProvider,\n {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n }\n )\n }\n )\n }\n );\n }\n);\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return (\n // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ jsx(\n \"span\",\n {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ jsx(\n ArrowPrimitive.Root,\n {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n }\n )\n }\n )\n );\n});\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n});\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [side, align];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\nexport {\n ALIGN_OPTIONS,\n Anchor,\n Arrow,\n Content,\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperContent,\n Root2 as Root,\n SIDE_OPTIONS,\n createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/menu/src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dropdown-menu/src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composeRefs(forwardedRef, context.triggerRef),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const GetLanguageSelectorOneLinkConfigDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs {\n featureConfigs(names: [\"config-ui-translate-onelink\"]) {\n config\n name\n }\n}`,\n originalOpName: 'getLanguageSelectorOneLinkConfig',\n};\nexport function useGetLanguageSelectorOneLinkConfigQuery<\n TData = Types.GetLanguageSelectorOneLinkConfigQuery,\n TError = DXError\n>(\n variables?: Types.GetLanguageSelectorOneLinkConfigQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.GetLanguageSelectorOneLinkConfigQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.GetLanguageSelectorOneLinkConfigQuery, TError, TData>({\n queryKey: [GetLanguageSelectorOneLinkConfigDocument, variables],\n ...options,\n });\n}\nexport function serverSideGetLanguageSelectorOneLinkConfigQuery(\n queryClient: QueryClient,\n variables?: Types.GetLanguageSelectorOneLinkConfigQueryVariables,\n options?: FetchQueryOptions<Types.GetLanguageSelectorOneLinkConfigQuery>\n) {\n return queryClient.fetchQuery<Types.GetLanguageSelectorOneLinkConfigQuery>({\n queryKey: [GetLanguageSelectorOneLinkConfigDocument, variables],\n ...options,\n });\n}\n\nexport const GetLanguageSelectorHotelDataDocument = {\n operationName: 'hotel',\n operationString: `query hotel($ctyhocn: String!) {\n hotel(ctyhocn: $ctyhocn, language: \"en\") {\n localization {\n languageSupport {\n label\n bookingUrl\n code\n siteUrl\n }\n }\n }\n}`,\n originalOpName: 'getLanguageSelectorHotelData',\n};\nexport function useGetLanguageSelectorHotelDataQuery<\n TData = Types.GetLanguageSelectorHotelDataQuery,\n TError = DXError\n>(\n variables: Types.GetLanguageSelectorHotelDataQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.GetLanguageSelectorHotelDataQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.GetLanguageSelectorHotelDataQuery, TError, TData>({\n queryKey: [GetLanguageSelectorHotelDataDocument, variables],\n ...options,\n });\n}\nexport function serverSideGetLanguageSelectorHotelDataQuery(\n queryClient: QueryClient,\n variables: Types.GetLanguageSelectorHotelDataQueryVariables,\n options?: FetchQueryOptions<Types.GetLanguageSelectorHotelDataQuery>\n) {\n return queryClient.fetchQuery<Types.GetLanguageSelectorHotelDataQuery>({\n queryKey: [GetLanguageSelectorHotelDataDocument, variables],\n ...options,\n });\n}\n","import {\n GetLanguageSelectorHotelDataDocument,\n GetLanguageSelectorOneLinkConfigDocument,\n} from './generated/queries';\n\nexport * from './generated/queries';\nexport * from './generated/types';\n\nexport const GET_HOTEL_LANGUAGE_SELECTOR_DATA_ORIGINAL_OP_NAME =\n GetLanguageSelectorHotelDataDocument.originalOpName;\nexport const GET_LANGUAGE_SELECTOR_ONE_LINK_CONFIG_DOCUMENT_ORIGINAL_OP_NAME =\n GetLanguageSelectorOneLinkConfigDocument.originalOpName;\n\nexport const LANGUAGE_SELECTOR_ORIGINAL_OP_NAMES = [\n GET_HOTEL_LANGUAGE_SELECTOR_DATA_ORIGINAL_OP_NAME,\n GET_LANGUAGE_SELECTOR_ONE_LINK_CONFIG_DOCUMENT_ORIGINAL_OP_NAME,\n];\n","export const LANGUAGE_CODE_NAMES = {\n ar: 'العربية',\n bg: 'БългарÑки',\n cs: 'ÄŒesky',\n da: 'Dansk',\n de: 'Deutsch',\n en: 'English',\n es: 'Español',\n fi: 'Suomi',\n fr: 'Français',\n id: 'Bahasa Indonesia',\n it: 'Italiano',\n ja: '日本語',\n ko: 'í•œêµì–´',\n nl: 'Nederlands',\n no: 'Norsk',\n pl: 'Polski',\n pt: 'Português',\n ro: 'Română',\n ru: 'PуÑÑкий',\n sv: 'Svenska',\n th: 'ไทย',\n tr: 'Türkçe',\n vi: 'Tiếng Việt',\n 'zh-hans': '简体ä¸æ–‡',\n 'zh-hant': 'ç¹é«”ä¸æ–‡',\n} as const;\n","import { useMemo } from 'react';\nimport type { OneLinkConfig } from '@dx-ui/framework-i18n';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { useIsClient } from 'usehooks-ts';\nimport {\n useGetLanguageSelectorOneLinkConfigQuery,\n useGetLanguageSelectorHotelDataQuery,\n} from '@dx-ui/queries-osc-language-selector';\nimport type { GetLanguageSelectorHotelDataQuery } from '@dx-ui/queries-osc-language-selector';\nimport { LANGUAGE_CODE_NAMES } from '../osc-language-code-names';\nimport type { LanguageSelectorPropsBase } from '../osc-language-selector';\nimport { isRtl } from '@dx-ui/utilities-get-language-direction';\nimport { RuleEngine } from '@dx-shared/rule-engine';\nimport { logWarning } from '@dx-ui/framework-logger';\n\ntype LanguagesDict = { label: string; value: string; href: string; opensNewTab: boolean }[];\n\ntype SupportedLanguages = NonNullable<\n NonNullable<GetLanguageSelectorHotelDataQuery['hotel']>['localization']\n>['languageSupport'];\n\nexport function useLanguageSelectorLanguages({\n appName,\n ctyhocn,\n removeUrlParams,\n urlOverrides,\n}: {\n appName: string;\n ctyhocn: string;\n removeUrlParams?: boolean;\n urlOverrides?: LanguageSelectorPropsBase['urlOverrides'];\n}) {\n const { data: featureConfigsData, isFetching: featureConfigsLoading } =\n useGetLanguageSelectorOneLinkConfigQuery();\n const { data: hotelData, isFetching: hotelDataLoading } = useGetLanguageSelectorHotelDataQuery(\n {\n ctyhocn: ctyhocn.toUpperCase(),\n },\n {\n enabled: !!ctyhocn,\n }\n );\n const isClient = useIsClient();\n const loading = !isClient || featureConfigsLoading || hotelDataLoading;\n\n const oneLinkLanguagesConfig: OneLinkConfig = featureConfigsData?.featureConfigs?.find(\n (fc) => fc.name === 'config-ui-translate-onelink'\n )?.config;\n\n let oneLinkLanguages: string[] = [];\n\n // begin old config logic - Deprecated\n const appWhitelist = oneLinkLanguagesConfig?.whitelist?.[appName];\n const languagesObj = oneLinkLanguagesConfig?.languages;\n const languagesToExclude = appWhitelist\n ? (Object.keys(appWhitelist) as (keyof typeof appWhitelist)[]).filter(\n (language) => !appWhitelist?.[language]?.includes(ctyhocn.toUpperCase())\n )\n : [];\n const supportsLanguagesObjConfig = !!appName && !!languagesObj;\n if (supportsLanguagesObjConfig) {\n oneLinkLanguages = Object.entries(languagesObj)\n .filter(\n ([lang, appsArray]) => appsArray?.includes(appName) && !languagesToExclude.includes(lang)\n )\n .map(([lang]) => lang);\n }\n // end old config logic\n\n // begin new config logic\n const conditions = oneLinkLanguagesConfig?.conditions;\n const supportedLanguages = oneLinkLanguagesConfig?.supportedLanguages;\n const ruleEngine = conditions\n ? new RuleEngine({ name: 'onelink-language-selector', conditions })\n : null;\n const supportsRuleEngineConfig = !!appName && !!conditions && !!supportedLanguages && ruleEngine;\n const url = isBrowser ? window.location.href : '';\n if (supportsRuleEngineConfig) {\n oneLinkLanguages = supportedLanguages.filter((language) =>\n ruleEngine.run({ appName, language, url })\n );\n }\n // end new config logic\n\n const cmsLanguages = hotelData?.hotel?.localization?.languageSupport\n ? hotelData?.hotel?.localization?.languageSupport.reduce((acc, language) => {\n if (\n !oneLinkLanguages?.includes(getI18nSafeLangCode(language?.code || '')) &&\n getI18nSafeLangCode(language?.code || '') !== 'en'\n ) {\n acc.push({\n ...language,\n code: getI18nSafeLangCode(language?.code || ''),\n });\n }\n return acc;\n }, [] as SupportedLanguages)\n : ([] as SupportedLanguages);\n\n const cmsFullSiteLanguages = cmsLanguages.filter((lang) => lang?.siteUrl);\n const cmsResOnlyLanguages = cmsLanguages.filter((lang) => lang?.bookingUrl);\n const ENOverride = urlOverrides?.fullSite?.['en'];\n const fullSiteLanguages: LanguagesDict = [\n {\n label: LANGUAGE_CODE_NAMES['en'],\n value: 'en',\n href: (ENOverride || makeLanguageUrl('en', removeUrlParams)) ?? '',\n opensNewTab: !!ENOverride,\n },\n ...oneLinkLanguages.map((lang) => {\n const override = urlOverrides?.fullSite?.[lang as keyof typeof LANGUAGE_CODE_NAMES];\n const hasOverride = !!override;\n return {\n label: LANGUAGE_CODE_NAMES[lang as keyof typeof LANGUAGE_CODE_NAMES],\n value: lang,\n href: (override || makeLanguageUrl(lang, removeUrlParams)) ?? '',\n opensNewTab: hasOverride,\n };\n }),\n ...cmsFullSiteLanguages.map((lang) => ({\n label: LANGUAGE_CODE_NAMES[lang?.code as keyof typeof LANGUAGE_CODE_NAMES] || lang.label,\n value: lang?.code || '',\n href:\n urlOverrides?.fullSite?.[lang?.code as keyof typeof LANGUAGE_CODE_NAMES] ||\n lang?.siteUrl ||\n '',\n opensNewTab: true,\n })),\n ];\n const resOnlyLanguages: LanguagesDict = [\n ...cmsResOnlyLanguages.map((lang) => ({\n label: LANGUAGE_CODE_NAMES[lang?.code as keyof typeof LANGUAGE_CODE_NAMES] || lang.label,\n value: lang?.code || '',\n href:\n urlOverrides?.resOnly?.[lang.code as keyof typeof LANGUAGE_CODE_NAMES] ||\n lang?.bookingUrl ||\n '',\n opensNewTab: true,\n })),\n ];\n\n const supportedFullSiteLanguages = fullSiteLanguages.map((lang) => lang.value);\n const netNewFullSiteLanguages = Object.keys(urlOverrides?.fullSite || {}).filter(\n (lang) => !supportedFullSiteLanguages.includes(lang)\n );\n\n if (netNewFullSiteLanguages.length) {\n fullSiteLanguages.push(\n ...netNewFullSiteLanguages.map((lang) => ({\n label: LANGUAGE_CODE_NAMES[lang as keyof typeof LANGUAGE_CODE_NAMES],\n value: lang,\n href: urlOverrides?.fullSite?.[lang as keyof typeof LANGUAGE_CODE_NAMES] || '',\n opensNewTab: true,\n }))\n );\n }\n\n const supportedResOnlyLanguages = resOnlyLanguages.map((lang) => lang.value);\n const netNewResOnlyLanguages = Object.keys(urlOverrides?.resOnly || {}).filter(\n (lang) =>\n !supportedResOnlyLanguages.includes(lang) && !supportedFullSiteLanguages.includes(lang)\n );\n\n if (netNewResOnlyLanguages.length) {\n resOnlyLanguages.push(\n ...netNewResOnlyLanguages.map((lang) => ({\n label: LANGUAGE_CODE_NAMES[lang as keyof typeof LANGUAGE_CODE_NAMES],\n value: lang,\n href: urlOverrides?.resOnly?.[lang as keyof typeof LANGUAGE_CODE_NAMES] || '',\n opensNewTab: true,\n }))\n );\n }\n\n const sortedFullSiteLanguages = sortRtlFirst(\n filterLanguagesWithLabel(fullSiteLanguages).sort((a, b) => a.label.localeCompare(b.label))\n );\n const sortedResOnlyLanguages = sortRtlFirst(\n filterLanguagesWithLabel(resOnlyLanguages).sort((a, b) => a.label.localeCompare(b.label))\n );\n const allLanguages = useMemo(\n () => [...sortedFullSiteLanguages, ...sortedResOnlyLanguages],\n [sortedFullSiteLanguages, sortedResOnlyLanguages]\n );\n\n return {\n allLanguages,\n loading,\n sortedFullSiteLanguages,\n sortedResOnlyLanguages,\n };\n}\n\nexport function filterLanguagesWithLabel(languages: LanguagesDict) {\n return languages.filter((lang) => {\n if (!lang.label) {\n logWarning(\n 'useLanguageSelectorLanguages',\n `Language selector label missing for ${lang.value}`\n );\n }\n return lang.label;\n });\n}\n\nexport function getI18nSafeLangCode(code: string) {\n if (code === 'zh_CN') {\n return 'zh-hans';\n }\n if (code === 'zh_HK') {\n return 'zh-hant';\n }\n const safeLangCode = code.split('_')[0];\n return safeLangCode?.toLowerCase() ?? 'en';\n}\n\nexport function makeLanguageUrl(newLocale: string, removeUrlParams?: boolean) {\n const languageUrl = isBrowser\n ? window.location.href.replace(\n RegExp(`/${window.location.pathname.split('/')[1]}/`),\n `/${newLocale}/`\n )\n : '';\n return removeUrlParams ? languageUrl.split('?')[0] : languageUrl;\n}\n\nexport function sortRtlFirst(languages: LanguagesDict) {\n const rtlLangs = languages.filter((lang) => isRtl(lang.value));\n const ltrLangs = languages.filter((lang) => !isRtl(lang.value));\n return [...rtlLangs, ...ltrLangs];\n}\n","import type { ElementRef } from 'react';\nimport { useEffect, useRef } from 'react';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { useLanguageSelectorLanguages } from './hooks/useLanguageSelectorLanguages';\nimport type { PopupContext } from '@dx-ui/osc-popup';\nimport { Popup, PopupButton, PopupContent, usePopup } from '@dx-ui/osc-popup';\nimport { LANGUAGE_CODE_NAMES } from './osc-language-code-names';\nimport { Link } from '@dx-ui/osc-link';\nimport classnames from 'classnames';\nimport { sendReward } from '@dx-ui/framework-conductrics';\nimport set from 'lodash/set';\nimport { isRtl } from '@dx-ui/utilities-get-language-direction';\nimport { getKeyDownNavigation } from '@dx-ui/utilities-accessibility';\nimport { getSafeLanguage } from '@dx-ui/framework-react-query';\n\ntype UrlOverride = {\n [locale in keyof typeof LANGUAGE_CODE_NAMES]?: string;\n};\n\nexport type LanguageSelectorPropsBase = {\n appName: string;\n buttonOptions?: {\n className?: string;\n styles?: React.CSSProperties;\n hoverStyles?: React.CSSProperties;\n };\n ctyhocn?: string;\n labelOptions?: {\n className?: string;\n styles?: React.CSSProperties;\n };\n locale: string;\n theme?: Exclude<CmsBrandComponentTheme, 'light'>;\n onLanguageSelection?: (languageValue: string) => void;\n popupOptions?: {\n removeUrlParams?: boolean;\n includeTitles?: boolean;\n };\n urlOverrides?: {\n fullSite?: UrlOverride;\n resOnly?: UrlOverride;\n };\n wrapperClassName?: string;\n};\n\nexport type LanguageSelectorProps = LanguageSelectorPropsBase & React.ComponentProps<'div'>;\n\nexport function LanguageSelector({\n appName = '',\n buttonOptions,\n ctyhocn = '',\n locale = 'en',\n labelOptions,\n popupOptions,\n wrapperClassName,\n urlOverrides,\n theme,\n onLanguageSelection,\n ...rest\n}: LanguageSelectorProps) {\n const [selectedLanguage, setSelectedLanguage] = React.useState<{\n code: string;\n href: string;\n }>();\n const [buttonHover, setButtonHover] = React.useState(false);\n const { t } = useTranslation('osc-language-selector');\n const popupButtonRef = useRef<ElementRef<'button'>>(null);\n const linksContainerRef = useRef<ElementRef<'div'>>(null);\n const { loading, allLanguages, sortedFullSiteLanguages, sortedResOnlyLanguages } =\n useLanguageSelectorLanguages({\n appName,\n ctyhocn,\n removeUrlParams: popupOptions?.removeUrlParams,\n urlOverrides,\n });\n\n useEffect(() => {\n if (!loading && !selectedLanguage?.code) {\n const getSelectedLanguage = (locale: string) => ({\n code: locale,\n href: allLanguages.find((lang) => lang.value === locale)?.href || '',\n });\n\n setSelectedLanguage(getSelectedLanguage(getSafeLanguage(locale) ?? ''));\n }\n }, [allLanguages, loading, locale, selectedLanguage?.code]);\n\n const focusFirstLink = React.useCallback(() => {\n linksContainerRef.current?.querySelector('a')?.focus();\n }, []);\n\n const handleLinkKeyDown = getKeyDownNavigation({\n elements: Array.from(linksContainerRef.current?.querySelectorAll('a') || []),\n initiatingRef: popupButtonRef,\n });\n\n const trackLinkClick = React.useCallback((language: string) => {\n if (window?.digitalData && window?._satellite) {\n set(window.digitalData, 'action.clickID', 'languageswitch');\n set(window.digitalData, 'page.pageInfo.language', language);\n window._satellite?.track?.('global_click');\n } else {\n console.warn('digitalData or _satellite not found'); // eslint-disable-line no-console\n }\n }, []);\n\n return (\n <div className={classnames('flex gap-2 text-sm sm:text-base', wrapperClassName)} {...rest}>\n <Popup>\n <PopupContextState>\n {({ isOpen }) => (\n <>\n <div className=\"flex items-baseline gap-2\">\n <span\n className={classnames('flex font-semibold', labelOptions?.className, {\n 'text-text-inverse': theme === 'dark',\n })}\n style={labelOptions?.styles}\n aria-hidden=\"true\"\n >\n {t('language')}\n </span>\n {loading ? (\n <div className=\"bg-border h-6 w-24 animate-pulse self-center\" />\n ) : (\n <PopupButton\n ref={popupButtonRef}\n className={classnames('inline-flex items-center', buttonOptions?.className, {\n 'text-text-inverse': theme === 'dark',\n })}\n onClick={() => sendReward('engaged-language-selector')}\n onArrowDownWhenOpen={focusFirstLink}\n style={{\n ...buttonOptions?.styles,\n ...(buttonHover ? buttonOptions?.hoverStyles : null),\n }}\n onMouseEnter={() => setButtonHover(true)}\n onMouseLeave={() => setButtonHover(false)}\n >\n <span className=\"sr-only\">{t('language')}</span>\n {selectedLanguage?.code\n ? LANGUAGE_CODE_NAMES[\n selectedLanguage.code as keyof typeof LANGUAGE_CODE_NAMES\n ]\n : null}{' '}\n <DownArrowIcon\n className={classnames('size-6 transition-all', {\n '-scale-y-100': isOpen,\n 'text-text-inverse': theme === 'dark',\n })}\n />\n </PopupButton>\n )}\n </div>\n {loading ? null : (\n <PopupContent popupStyles={{ maxHeight: '80%', overflowY: 'auto' }}>\n <div\n ref={linksContainerRef}\n className=\"OneLinkKeepLinks flex min-w-[192px] flex-col gap-2\"\n >\n {sortedFullSiteLanguages.length ? (\n <div>\n {popupOptions?.includeTitles ? (\n <p className=\"border-border mb-1 border-b pb-2 font-bold\">\n {t('hotelSite')}\n </p>\n ) : null}\n <ul className=\"divide-border divide-y\">\n {sortedFullSiteLanguages.map((lang) => (\n <ListItem\n key={lang.value}\n label={lang.label}\n language={lang.value}\n linkProps={{\n onClick: () => {\n trackLinkClick(lang.value);\n onLanguageSelection?.(lang.value);\n },\n onKeyDown: handleLinkKeyDown,\n isNewWindow: lang.opensNewTab,\n url: lang.href,\n }}\n />\n ))}\n </ul>\n </div>\n ) : null}\n {sortedResOnlyLanguages.length ? (\n <div>\n {popupOptions?.includeTitles ? (\n <p className=\"border-border mb-1 border-b pb-2 font-bold\">\n {t('bookingOnly')}\n </p>\n ) : null}\n <ul>\n {sortedResOnlyLanguages.map((lang) => (\n <ListItem\n key={lang.value}\n label={lang.label}\n language={lang.value}\n linkProps={{\n onClick: () => trackLinkClick(lang.value),\n onKeyDown: handleLinkKeyDown,\n isNewWindow: lang.opensNewTab,\n url: lang.href,\n }}\n />\n ))}\n </ul>\n </div>\n ) : null}\n </div>\n </PopupContent>\n )}\n </>\n )}\n </PopupContextState>\n </Popup>\n </div>\n );\n}\n\nfunction ListItem({\n label,\n language,\n linkProps,\n}: {\n label: string;\n language: string;\n linkProps: React.ComponentProps<typeof Link>;\n}) {\n return (\n <li\n key={`popup-${language}`}\n className={classnames('flex py-2', {\n 'justify-end': isRtl(language),\n })}\n lang={language}\n >\n <bdi>\n <Link rel=\"noopener noreferrer\" {...linkProps}>\n {label}{' '}\n </Link>\n </bdi>\n </li>\n );\n}\n\nfunction PopupContextState({ children }: { children: (args0: PopupContext) => React.ReactNode }) {\n const context = usePopup();\n return children(context);\n}\n\nfunction DownArrowIcon(props: React.ComponentProps<'svg'>) {\n return (\n <svg viewBox=\"0 0 31 31\" version=\"1.1\" {...props}>\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"transparent\" fillRule=\"evenodd\">\n <g transform=\"translate(1, 1)\" strokeWidth=\"2\" stroke=\"currentColor\">\n <polyline strokeLinecap=\"round\" points=\"9,12 14.5,18 20,12\" />\n </g>\n </g>\n </svg>\n );\n}\n\nexport default LanguageSelector;\n","export * from './lib/osc-language-selector';\n","import { useEffect, useRef, useState } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport cx from 'classnames';\nimport { getIsReducedMotion } from '@dx-ui/utilities-accessibility';\n\nexport type DrawerPanelProps = {\n isOpen: boolean;\n children: React.ReactNode;\n alignment: 'left' | 'right';\n /**\n * Id of the body of your entire app, used to select for all dom elements within app without affecting elements that sit outside the app\n */\n appWrapperId: string;\n /**\n * Id of the wrapper element you want to keep interactive while the panel is open. Example: Navigation header while nav menu is open\n */\n interactiveElementWrapperId: string;\n panelProps?: React.ComponentProps<'div'>;\n /**\n * Allows you to choose a specific point to return focus to or allow for default returnFocus\n */\n returnFocus?: () => boolean;\n};\n\nexport const DrawerPanel = ({\n isOpen,\n children,\n alignment,\n appWrapperId,\n interactiveElementWrapperId,\n panelProps,\n returnFocus,\n}: DrawerPanelProps) => {\n const [isRightPanelVisible, setIsRightPanelVisible] = useState(false);\n useEffect(() => {\n if (!isOpen) {\n if (alignment === 'right') setIsRightPanelVisible(false);\n document.body.style.overflow = 'auto';\n if (nonInteractiveElements.current)\n nonInteractiveElements.current.forEach((nonInteractiveElement) => {\n if (nonInteractiveElement) {\n nonInteractiveElement.removeAttribute('aria-hidden');\n }\n });\n } else {\n document.body.style.overflow = 'hidden';\n const nonInteractiveElems = document?.querySelectorAll(\n // children of element with interactiveElementWrapperId will not have aria-hidden=\"true\" applied\n `#${appWrapperId} *:not(#${interactiveElementWrapperId}, #${interactiveElementWrapperId} *):not([aria-hidden=\"true\"])`\n );\n nonInteractiveElems.forEach((nonInteractiveElement) => {\n if (nonInteractiveElement) {\n nonInteractiveElement.setAttribute('aria-hidden', 'true');\n }\n });\n /** interactiveElementWrapper should always be available in the accessibility tree,\n * the selector above will also set aria-hidden on any parents of the interactiveElementWrapper in between it and element with appWrapperId\n * This function removes aria hidden from the drawer's parents */\n let drawerWrapper: Element | null = document?.querySelector(\n `#${interactiveElementWrapperId}`\n );\n const els: Element[] = [];\n while (drawerWrapper) {\n els.push(drawerWrapper);\n drawerWrapper = drawerWrapper.parentElement;\n }\n els?.forEach((navParentElement) => {\n if (navParentElement) {\n navParentElement.removeAttribute('aria-hidden');\n }\n });\n nonInteractiveElements.current = nonInteractiveElems;\n }\n }, [isOpen, alignment, appWrapperId, interactiveElementWrapperId]);\n\n const nonInteractiveElements = useRef<NodeListOf<Element> | undefined>();\n\n return (\n <FocusLock disabled={!isOpen} returnFocus={returnFocus ? returnFocus : true}>\n <div\n className={cx(\n 'bg-bg border-border brand-ou:bg-secondary absolute top-0 z-50 h-screen w-80 overflow-y-scroll border-t transition-all',\n {\n 'ltr:motion-safe:animate-slideInLeft rtl:motion-safe:animate-slideInRight':\n isOpen && alignment === 'left',\n 'ltr:motion-safe:animate-slideInRight rtl:motion-safe:animate-slideInLeft':\n isOpen && alignment === 'right',\n 'end-0': alignment === 'right',\n 'hidden -translate-x-full': !isOpen,\n }\n )}\n onAnimationEnd={() => {\n if (alignment === 'right') setIsRightPanelVisible(true);\n }}\n hidden={!isOpen}\n data-testid={`panelWindow-${alignment}`}\n {...panelProps}\n >\n {/* Right side drawer panel needs to be faded in after animation is completed to avoid focus jump. */}\n {alignment === 'right' ? (\n isRightPanelVisible || (getIsReducedMotion() && isOpen) ? (\n <div className=\"animate-fadein\">{children}</div>\n ) : null\n ) : (\n children\n )}\n </div>\n </FocusLock>\n );\n};\n","export * from './lib/drawer';\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const Smb_MemberIdAndStatusDocument = {\n operationName: 'programAccounts',\n operationString: `query programAccounts($guestId: BigInt!, $language: String!) {\n programAccounts(guestId: $guestId, language: $language) {\n accountId\n accountName\n accountStatus\n memberId\n memberStatus\n }\n}`,\n originalOpName: 'smb_MemberIdAndStatus',\n};\nexport function useSmb_MemberIdAndStatusQuery<\n TData = Types.Smb_MemberIdAndStatusQuery,\n TError = DXError\n>(\n variables: Types.Smb_MemberIdAndStatusQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_MemberIdAndStatusQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_MemberIdAndStatusQuery, TError, TData>({\n queryKey: [Smb_MemberIdAndStatusDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_MemberIdAndStatusQuery(\n queryClient: QueryClient,\n variables: Types.Smb_MemberIdAndStatusQueryVariables,\n options?: FetchQueryOptions<Types.Smb_MemberIdAndStatusQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_MemberIdAndStatusQuery>({\n queryKey: [Smb_MemberIdAndStatusDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountMemberDocument = {\n operationName: 'programAccountMember',\n operationString: `query programAccountMember($guestId: BigInt!, $language: String!, $input: ProgramAccountsSmbMemberInput!) {\n programAccountMember(guestId: $guestId, language: $language, input: $input) {\n accountId\n guestId\n emailAddress: emailAddressMasked\n emailLastVerifiedDateFmt(language: $language, format: \"short\")\n memberId\n status\n role\n }\n}`,\n originalOpName: 'smb_ProgramAccountMember',\n};\nexport function useSmb_ProgramAccountMemberQuery<\n TData = Types.Smb_ProgramAccountMemberQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountMemberQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_ProgramAccountMemberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_ProgramAccountMemberQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountMemberDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountMemberQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountMemberQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountMemberQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountMemberQuery>({\n queryKey: [Smb_ProgramAccountMemberDocument, variables],\n ...options,\n });\n}\n","import { sendReward } from '@dx-ui/framework-conductrics';\nimport set from 'lodash/set';\n\nimport { useAuth } from '@dx-ui/framework-auth-provider';\n\nimport {\n useSmb_MemberIdAndStatusQuery,\n useSmb_ProgramAccountMemberQuery,\n} from '../lib/gql/queries';\nimport { env } from '@dx-ui/framework-env';\nimport type { UserLinks } from './types';\nimport { useRouter } from 'next/router';\n\nconst navigationInteractionGoal = 'g-6gRqwMh3Pt';\n\nexport const sendInteractionReward = () => {\n sendReward(navigationInteractionGoal);\n};\n\nexport function removeSpacesAndAmpersands(str: string) {\n return str.replace(/\\s+|&/g, '').toLowerCase();\n}\n\nexport function trackNavClickBasedOnLabel(label: string, dropdownLabel?: string) {\n const value = removeSpacesAndAmpersands(`gh_${dropdownLabel ? `${dropdownLabel}_` : ''}${label}`);\n\n trackNavClick(value);\n}\n\nexport function trackNavClick(value: string) {\n if (window?.digitalData && window?._satellite && value) {\n set(window.digitalData, 'click.clickID', value);\n window._satellite?.track?.('global_click');\n }\n}\n\nconst replaceLang = (stringValue: string, lang: string) => stringValue?.replace('__LANG__', lang);\n\nconst DEFAULT_OCODE = 'JHTNW';\n\n/** Returns the full set of potential nav links, including optional links like SMB and Go Hilton */\nexport function getBaseNavLinksFromEnv(lang: string, isAuthenticated: boolean) {\n const signInUrl = replaceLang(\n env('DX_AUTH_UI', 'https://www.hilton.com/__LANG__/auth2/guest/login/'),\n lang\n );\n\n const signUpUrl = replaceLang(\n `${env('OHW_BASE_URL')}__LANG__/hilton-honors/join/?ocode=${DEFAULT_OCODE}`,\n lang\n );\n const environmentBaseUrl = env('OHW_BASE_URL', 'https://www.hilton.com/');\n\n return {\n signInLink: { url: signInUrl },\n signUpLink: { url: signUpUrl },\n accountLink: { url: `${environmentBaseUrl}${lang}/hilton-honors/guest/my-account/` },\n honorsActivityLink: { url: `${environmentBaseUrl}${lang}/hilton-honors/guest/activity/` },\n smbMemberLink: { url: `${environmentBaseUrl}${lang}/business/manage/` },\n honorsPointsLink: { url: `${environmentBaseUrl}${lang}/hilton-honors/guest/points/` },\n honorsProfileLink: { url: `${environmentBaseUrl}${lang}/hilton-honors/guest/profile/` },\n friendsAndFamilyLink: {\n url: env('TMTP_MANAGE_FAMILY_AND_FRIENDS_LINK', 'https://tmtp.hilton.com/tmtp/main.html'),\n },\n hgvMaxLink: {\n url: env(\n 'EXTERNAL_HGV_PROGRAM_DETAILS_URL',\n 'https://help.hilton.com/s/article/HGV-Max-rate'\n ),\n },\n goHiltonLink: {\n url: env(\n 'EXTERNAL_TMTP_PROGRAM_DETAILS_URL',\n 'https://help.hilton.com/s/article/What-is-the-Go-Hilton-employee-program'\n ),\n },\n findStayLink: {\n url: isAuthenticated\n ? `${environmentBaseUrl}${lang}/hilton-honors/guest/activity/`\n : `${environmentBaseUrl}${lang}/book/reservation/find/`,\n },\n } as const satisfies UserLinks;\n}\n\nexport function useProgramMember({\n programAccountId,\n shouldFetchSmbMemberIdAndStatus = false,\n}: Partial<{\n programAccountId: number | null | undefined;\n shouldFetchSmbMemberIdAndStatus: boolean;\n}> = {}) {\n const { guestId, guestInfo } = useAuth();\n const { locale = 'en', query } = useRouter();\n\n const programAccountIdParam = isNaN(Number(query?.programAccountId))\n ? undefined\n : Number(query?.programAccountId);\n\n const accountId = programAccountId || programAccountIdParam;\n\n const { data, isLoading } = useSmb_MemberIdAndStatusQuery(\n { guestId: guestId as number, language: locale },\n {\n enabled: !!guestId && (!!guestInfo?.hhonors?.isSMBMember || shouldFetchSmbMemberIdAndStatus),\n }\n );\n\n let mostRelevantProgramAccount = data?.programAccounts?.[0];\n\n if ((data?.programAccounts?.length || 0) > 1 && accountId) {\n mostRelevantProgramAccount = data?.programAccounts.filter(\n (programAccount) => programAccount?.accountId === accountId\n )?.[0];\n }\n\n const { data: programAccountData, isLoading: memberDataLoading } =\n useSmb_ProgramAccountMemberQuery(\n {\n guestId: guestId as number,\n language: locale,\n input: {\n accountId: accountId || (mostRelevantProgramAccount?.accountId as number),\n memberId: mostRelevantProgramAccount?.memberId as number,\n },\n },\n {\n enabled:\n !!guestId &&\n !!mostRelevantProgramAccount?.memberId &&\n Boolean(accountId || mostRelevantProgramAccount?.accountId),\n }\n );\n\n const member = {\n accountId,\n ...programAccountData?.programAccountMember,\n memberDataLoading,\n isLoading,\n };\n return member;\n}\n","import type { HeaderProps } from './types';\nimport { useTranslation } from 'next-i18next';\n\nexport const Logo: React.FC<Pick<HeaderProps, 'brand' | 'theme'>> = ({ brand, theme }) => {\n const { t } = useTranslation('osc-header');\n const altText =\n brand.code === 'WW'\n ? t('hiltonForTheStay')\n : brand.code === 'OU'\n ? `${t('hiltonForTheStay')}, ${brand.name}`\n : brand.code === 'LX'\n ? `${t('hiltonForTheStay')}, SLH`\n : brand.name;\n\n return (\n <img\n src={\n theme === 'dark'\n ? `/modules/assets/svgs/logos/${brand.code}_inverted.svg`\n : `/modules/assets/svgs/logos/${brand.code}.svg`\n }\n //Logo for worldwide has marketing text. So only when WW is passed use custom alt text override\n alt={altText}\n className=\"header-logo\"\n />\n );\n};\n\nexport const HeaderLogoLink: React.FC<\n Pick<HeaderProps, 'brand' | 'theme' | 'heading'> & Pick<React.ComponentProps<'a'>, 'className'>\n> = ({ brand, className, theme, heading }) => {\n const { t } = useTranslation('osc-header');\n\n const Wrapper = heading ? 'h1' : 'span';\n\n return (\n <Wrapper aria-label={heading ? heading : undefined} className={className}>\n <a\n data-testid=\"brand-logo-link\"\n href={brand.url}\n className=\"brand-ou:lg:w-72 brand-lx:lg:w-44 relative block h-14 w-28 overflow-hidden\"\n {...(!!brand.onClick && { onClick: brand.onClick })}\n {...(!!brand.target && { target: brand.target })}\n {...(brand?.target === '_blank' && { rel: 'noreferrer' })}\n >\n <Logo theme={theme} brand={brand} />\n <span className=\"sr-only\">{brand?.target === '_blank' ? `, ${t('newTab')}` : ''}</span>\n </a>\n </Wrapper>\n );\n};\n","/* eslint-disable react/jsx-no-duplicate-props */\nimport * as React from 'react';\nimport { PopupButton, PopupContent, usePopup } from '@dx-ui/osc-popup';\nimport { sendInteractionReward } from '../header.utilities';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { useTranslation } from 'next-i18next';\nimport type { LoginResponse } from '@dx-ui/osc-login';\nimport { LoginIFrame } from '@dx-ui/osc-login';\nimport { Link } from '@dx-ui/osc-link';\nimport cx from 'classnames';\nimport type { HeaderProps } from '../types';\nimport Icon, { type IconNames } from '@dx-ui/osc-icon';\n\ntype IconName = (typeof IconNames)[number];\n\ntype NavItemSection = 'navigation' | 'user';\n\ntype NavItemProps = Omit<React.ComponentProps<'li'>, 'className' | 'children'> &\n Pick<HeaderProps, 'theme'> & {\n isOpen?: boolean;\n children: React.ReactElement;\n };\n\nexport function NavItem({ children, theme, isOpen = false, ...listItemProps }: NavItemProps) {\n const isDark = theme === 'dark';\n\n const spacedChild = React.cloneElement(children, {\n className: cx(children.props.className, 'flex-1 self-stretch'),\n });\n\n return (\n <li\n {...listItemProps}\n className={cx('group flex h-full items-center px-1 pt-1 text-sm', {\n 'nav-list-item': !theme,\n 'nav-list-item-dark': isDark,\n 'nav-list-item-active': isOpen && !theme,\n 'nav-list-item-active-dark': isOpen && isDark,\n })}\n >\n {spacedChild}\n </li>\n );\n}\n\nexport function NavItemVisual({\n label,\n icon,\n indicator,\n hasRotatedIndicator,\n theme,\n section,\n}: {\n label: string;\n theme: 'light' | 'dark' | undefined;\n icon?: IconName;\n indicator?: IconName;\n section: NavItemSection;\n hasRotatedIndicator?: boolean;\n}) {\n const isDark = theme === 'dark';\n\n return (\n <>\n <span className={cx('block min-h-5', section === 'user' ? 'nav-item-text' : null)}>\n {label}\n </span>\n\n {icon ? (\n <div className={cx('ps-2')}>\n <Icon\n name={icon}\n className={cx(\n isDark ? 'nav-icon-dark' : 'nav-icon',\n 'group-focus-within:hidden group-hover:hidden'\n )}\n wrapper=\"span\"\n />\n <Icon\n name={icon}\n variant=\"solid\"\n className={cx(\n isDark ? 'nav-icon-active-dark' : 'nav-icon-active',\n 'hidden group-focus-within:block group-hover:block'\n )}\n wrapper=\"span\"\n />\n </div>\n ) : null}\n\n {indicator ? (\n <div>\n <Icon\n name={indicator}\n className={cx(\n hasRotatedIndicator ? 'rotate-180' : null,\n 'group-focus-within:hidden group-hover:hidden'\n )}\n wrapper=\"span\"\n />\n <Icon\n name={indicator}\n className={cx(\n hasRotatedIndicator ? 'rotate-180' : null,\n 'hidden group-focus-within:block group-hover:block'\n )}\n wrapper=\"span\"\n />\n </div>\n ) : null}\n </>\n );\n}\n\ntype NavItemWithLinkProps = Omit<Link, 'className' | 'children' | 'icon'> & {\n theme: 'dark' | undefined;\n section: NavItemSection;\n label: string;\n icon?: React.ReactElement;\n namedIcon?: IconName;\n isWide?: boolean;\n experimentationConfiguration?: CmsExperimentationConfiguration;\n};\n\n//TODO: make the focus ring here take up the full box, like with the dropdowns. Also check ItemWithModal\nexport const NavItemWithLink: React.FC<NavItemWithLinkProps> = ({\n theme,\n namedIcon,\n section,\n label,\n isWide,\n experimentationConfiguration,\n ...rest\n}) => {\n return (\n <NavItem theme={theme} data-testid=\"with-link\">\n <Link\n underline={false}\n {...rest}\n data-conductrics-goal={experimentationConfiguration?.goal}\n data-conductrics-value={experimentationConfiguration?.value}\n className={cx('flex items-center whitespace-nowrap', isWide ? 'p-2' : 'p-1', {\n 'nav-main-link': section === 'navigation',\n })}\n >\n <NavItemVisual section={section} theme={theme} label={label} icon={namedIcon} />\n </Link>\n </NavItem>\n );\n};\n\ntype TNavItemWithModal = {\n /** Specify the title for the Dialog */\n title: string;\n /** callback to run after login attempt */\n onLoginAttempt: React.ComponentProps<typeof LoginIFrame>['onLoginAttempt'];\n /** Name of the button to display */\n buttonName?: string;\n /** aria-label of the button */\n buttonLabel: string;\n buttonIcon?: IconName;\n onClick?: () => void;\n theme: 'dark' | undefined;\n section: NavItemSection;\n};\n\nexport const NavItemWithModal: React.FC<React.PropsWithChildren<TNavItemWithModal>> = ({\n theme,\n section,\n buttonLabel,\n buttonIcon,\n onClick,\n title,\n onLoginAttempt,\n children,\n}) => {\n const [showDialog, setShowDialog] = React.useState<boolean>(false);\n const open = () => {\n sendInteractionReward();\n onClick?.();\n setShowDialog(true);\n };\n const close = () => setShowDialog(false);\n\n const handleLogin = (response: LoginResponse) => {\n onLoginAttempt?.(response);\n if (!response.error) {\n close();\n }\n };\n\n const arrayChildren = React.Children.toArray(children);\n\n const [t] = useTranslation('osc-login');\n\n return (\n <>\n <NavItem theme={theme} data-testid=\"with-modal\">\n <button\n data-testid=\"with-modal\"\n type=\"button\"\n className=\"group flex h-full items-center whitespace-nowrap px-1 text-sm\"\n onClick={open}\n >\n <NavItemVisual\n label={buttonLabel ?? t('signIn')}\n icon={buttonIcon}\n theme={theme}\n section={section}\n />\n </button>\n </NavItem>\n <Dialog isOpen={showDialog} onDismiss={close} size=\"md\" title={title}>\n {React.Children.map(arrayChildren, (child) => {\n if (React.isValidElement(child) && child.type === LoginIFrame) {\n return React.cloneElement(\n child as React.ReactElement<React.ComponentProps<typeof LoginIFrame>>,\n {\n onLoginAttempt: handleLogin,\n onClose: close,\n }\n );\n }\n return child;\n })}\n </Dialog>\n </>\n );\n};\n\ntype TNavItemWithPopup = {\n section: NavItemSection;\n onClick?: () => void;\n theme: 'dark' | undefined;\n popupButtonRef?: React.RefObject<HTMLButtonElement>;\n label: string;\n icon?: IconName;\n indicator?: IconName;\n rotateOnOpen?: boolean;\n experimentationConfiguration?: CmsExperimentationConfiguration;\n};\n\nexport const NavItemWithPopup: React.FC<React.PropsWithChildren<TNavItemWithPopup>> = ({\n children,\n label,\n icon,\n rotateOnOpen,\n onClick,\n theme,\n popupButtonRef,\n section,\n indicator,\n experimentationConfiguration,\n}) => {\n const { isOpen } = usePopup();\n\n return (\n <>\n <NavItem theme={theme} isOpen={isOpen} data-testid=\"with-popup\">\n <PopupButton\n ref={popupButtonRef}\n data-conductrics-goal={experimentationConfiguration?.goal}\n data-conductrics-value={experimentationConfiguration?.value}\n onClick={() => {\n sendInteractionReward();\n onClick?.();\n }}\n className={cx('flex items-center whitespace-nowrap p-2', {\n 'nav-main-link': section === 'navigation',\n })}\n >\n <NavItemVisual\n theme={theme}\n label={label}\n section={section}\n indicator={indicator}\n icon={icon}\n hasRotatedIndicator={!isOpen && rotateOnOpen}\n />\n </PopupButton>\n </NavItem>\n <PopupContent\n className=\"motion-safe:animate-fadein !popup-margin !w-screen !p-0\"\n popupStyles={{ left: 0 }}\n >\n {children}\n </PopupContent>\n </>\n );\n};\n","import { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { Link } from '@dx-ui/osc-link';\n\nimport Icon from '@dx-ui/osc-icon';\nimport type { HeaderProps, TDrawerLink } from '../types';\nimport { trackNavClick, trackNavClickBasedOnLabel } from '../header.utilities';\nimport { getLocaleFormattedNumber, replaceLang } from '@dx-ui/framework-i18n';\nimport { useRouter } from 'next/router';\n\nexport function NavigationPopupContents({\n subMenu,\n label,\n}: {\n subMenu: TDrawerLink[];\n label: string;\n}) {\n const { locale = 'en' } = useRouter();\n\n return (\n <div className=\"container flex-1 py-5\">\n <MenuList>\n {subMenu.map(\n ({ label: subMenuLabel, link: { experimentationConfiguration, ...link }, onClick }) => (\n <MenuListItem key={subMenuLabel}>\n <Link\n {...link}\n url={replaceLang(link?.url, locale)}\n data-conductrics-goal={experimentationConfiguration?.goal}\n data-conductrics-value={experimentationConfiguration?.value}\n underline={false}\n className=\"nav-drawer-link-text\"\n anchorClassName=\"nav-drawer-link p-3 hover:nav-drawer-link-active focus:nav-drawer-link-active brand-ey:focus:font-normal brand-ey:focus:bg-tertiary-alt brand-ey:focus:border-b-primary-alt brand-ou:focus:bg-bg-light\"\n onClick={(event) => {\n trackNavClickBasedOnLabel(subMenuLabel, label);\n onClick?.();\n link?.onClick?.(event);\n }}\n >\n {subMenuLabel}\n </Link>\n </MenuListItem>\n )\n )}\n </MenuList>\n </div>\n );\n}\n\nexport type UserPopupContentsProps = Pick<\n HeaderProps,\n | 'userLinks'\n | 'shouldOpenAccountLinksInNewWindow'\n | 'shouldSuppressHonorsAccountLinks'\n | 'onSignOut'\n> & {\n user: Exclude<HeaderProps['user'], undefined>;\n};\n\nexport default function UserPopupContents({\n user,\n userLinks,\n shouldOpenAccountLinksInNewWindow,\n shouldSuppressHonorsAccountLinks,\n onSignOut,\n}: UserPopupContentsProps) {\n const { locale = 'en' } = useRouter();\n const [t] = useTranslation('osc-header');\n\n const formattedHonorsPointsTotal = getLocaleFormattedNumber(user?.honorsPoints, { locale });\n\n return (\n <div className=\"container flex py-5\">\n <div className=\"flex items-center\">\n <div className=\"bg-hilton-alt flex size-20 shrink-0 items-center justify-center rounded-full\">\n <Icon name=\"user\" size=\"4xl\" />\n </div>\n <div className=\"ms-5\">\n <p className=\"brand-ey:font-normal mb-1 text-sm font-bold\">\n {t('greetings', { username: user.name })}\n </p>\n <p className=\"mb-1 capitalize\">\n <span className=\"brand-ey:font-normal text-sm font-bold underline\">\n {user.honorsTier}\n </span>{' '}\n {t('status')}\n </p>\n <p className=\"brand-ey:font-normal mb-1 text-sm\">\n {t('honorsPointsTotal', { honorsPointsTotal: formattedHonorsPointsTotal })}\n </p>\n {user.hhonorsNumber ? (\n <p className=\"brand-ey:font-normal mb-1 text-sm\">\n {t('hiltonHonorsNumber', { hhonorsNumber: user.hhonorsNumber })}\n </p>\n ) : null}\n </div>\n </div>\n <div className=\"ms-5 flex-1 xl:ms-10\">\n <MenuList>\n {userLinks?.accountLink ? (\n <MegaUserLink\n url={userLinks?.accountLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hiltonhonorshome');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('hiltonHonorsHome')}\n </MegaUserLink>\n ) : null}\n {userLinks?.honorsActivityLink && !shouldSuppressHonorsAccountLinks ? (\n <MegaUserLink\n url={userLinks?.honorsActivityLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hiltonhonorsactivity');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('activity')}\n </MegaUserLink>\n ) : null}\n\n {userLinks?.honorsPointsLink?.url && !shouldSuppressHonorsAccountLinks ? (\n <MegaUserLink\n url={userLinks.honorsPointsLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hiltonhonorspoints');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('pointsLabel')}\n </MegaUserLink>\n ) : null}\n\n {userLinks?.honorsProfileLink?.url && !shouldSuppressHonorsAccountLinks ? (\n <MegaUserLink\n url={userLinks.honorsProfileLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hiltonhonorsprofile');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('profile')}\n </MegaUserLink>\n ) : null}\n\n {userLinks?.goHiltonLink?.url ? (\n <MegaUserLink\n url={userLinks.goHiltonLink.url}\n onClick={() => {\n trackNavClick('gh_membername_gohiltonprogramdetails');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('goHiltonProgramDetails')}\n </MegaUserLink>\n ) : null}\n\n {userLinks?.friendsAndFamilyLink?.url ? (\n <MegaUserLink\n url={userLinks.friendsAndFamilyLink.url}\n onClick={() => {\n trackNavClick('gh_membername_managefriendsandfamily');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('manageFriendsAndFamily')}\n </MegaUserLink>\n ) : null}\n\n {userLinks?.hgvMaxLink?.url ? (\n <MegaUserLink\n url={userLinks.hgvMaxLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hgvmaxratedetails');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('hgvMaxRateDetails')}\n </MegaUserLink>\n ) : null}\n\n {userLinks?.smbMemberLink?.url ? (\n <MegaUserLink\n url={userLinks.smbMemberLink.url}\n onClick={() => {\n trackNavClick('gh_membername_managehiltonforbusiness');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('manageHiltonForBusiness')}\n </MegaUserLink>\n ) : null}\n <MenuListItem>\n <button\n className=\"nav-drawer-link nav-drawer-link-text hover:nav-drawer-link-active focus:nav-drawer-link-active brand-ey:focus:bg-tertiary-alt brand-ey:focus:border-b-primary-alt brand-ou:focus:bg-bg-light w-full whitespace-nowrap text-left\"\n onClick={async () => {\n trackNavClick('gh_membername_signout');\n await onSignOut();\n }}\n type=\"button\"\n >\n {t('signOut')}\n </button>\n </MenuListItem>\n </MenuList>\n </div>\n </div>\n );\n}\n\nfunction MenuList({ children, ...listProps }: React.ComponentProps<'ul'>) {\n return (\n <ul {...listProps} className={cx('columns-3 gap-6', listProps.className)}>\n {children}\n </ul>\n );\n}\n\nfunction MenuListItem({ children, ...listItemProps }: React.ComponentProps<'li'>) {\n return (\n <li {...listItemProps} data-testid=\"menu-list-item\" className=\"py-3\">\n <span className=\"border-border brand-ey:hover:font-normal brand-ey:hover:bg-tertiary-alt brand-ey:hover:border-b-primary-alt brand-ou:border-primary brand-ou:hover:bg-bg-light block break-inside-avoid border-b-2 py-3 hover:font-bold \">\n {children}\n </span>\n </li>\n );\n}\n\nfunction MegaUserLink({\n url,\n onClick,\n children,\n isNewWindow,\n}: {\n url: string;\n onClick: () => void;\n children: React.ReactNode;\n isNewWindow?: boolean;\n}) {\n return (\n <MenuListItem>\n <Link\n url={url}\n underline={false}\n className=\"nav-drawer-link-text whitespace-nowrap\"\n anchorClassName=\"nav-drawer-link hover:nav-drawer-link-active focus:nav-drawer-link-active brand-ey:focus:bg-tertiary-alt brand-ey:focus:border-b-primary-alt brand-ou:focus:bg-bg-light\"\n onClick={onClick}\n isNewWindow={isNewWindow}\n >\n {children}\n </Link>\n </MenuListItem>\n );\n}\n","import { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { Link } from '@dx-ui/osc-link';\nimport { Popup } from '@dx-ui/osc-popup';\nimport { LoginIFrame } from '@dx-ui/osc-login';\nimport type { MegaMenuProps } from '../types';\nimport {\n sendInteractionReward,\n trackNavClickBasedOnLabel,\n trackNavClick,\n} from '../header.utilities';\nimport { LanguageSelector } from '@dx-ui/osc-language-selector';\nimport { sendReward } from '@dx-ui/framework-conductrics';\nimport { Logo } from '../header.logo';\nimport { useRef } from 'react';\nimport { NavItemWithLink, NavItemWithModal, NavItemWithPopup } from './nav-items';\nimport UserPopupContents, { NavigationPopupContents } from './popup-contents';\nimport { useRouter } from 'next/router';\nimport { replaceLang } from '@dx-ui/framework-i18n';\n\nexport function MegaMenu({\n isFluid,\n suppressLogo = false,\n shouldSuppressHonorsAccountLinks,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n brand,\n mainNavLinks,\n user,\n languageSelectorOptions,\n loginOptions,\n onSignInAttempt,\n userLinks,\n onSignOut,\n heading,\n theme,\n SignUpComponent,\n}: MegaMenuProps) {\n const userNavProps = {\n user,\n userLinks,\n onSignInAttempt,\n onSignOut,\n loginOptions,\n languageSelectorOptions,\n theme,\n shouldSuppressHonorsAccountLinks,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n SignUpComponent,\n };\n const isDark = theme === 'dark';\n const headingLevelProps = heading\n ? {\n role: 'heading',\n 'aria-level': 1,\n 'aria-label': heading,\n }\n : {};\n\n return (\n <div className=\"bg-transparent\">\n <div\n className={cx({\n 'container-fluid': isFluid,\n container: !isFluid,\n })}\n >\n <div className=\"relative flex flex-wrap\">\n {suppressLogo ? null : (\n <div className=\"flex min-h-[4.5rem] items-center\" {...headingLevelProps}>\n <Link\n url={brand.url}\n target={brand.target}\n onClick={sendInteractionReward}\n // once nav is implemented on all pages for OHW make w-72 for all brands per UX/UI\n anchorClassName=\"relative block h-14 w-28 brand-ou:lg:w-72 brand-lx:lg:w-72 me-1\"\n showNewWindowIcon={false}\n >\n <Logo theme={theme} brand={brand} />\n </Link>\n </div>\n )}\n <div className=\"absolute end-0 top-0\">\n <UserNav {...userNavProps} />\n </div>\n </div>\n </div>\n <div\n className={cx({\n 'nav-bottom-link-area': !isDark,\n 'nav-bottom-link-area-dark': isDark,\n })}\n >\n <div\n className={cx({\n 'container-fluid': isFluid,\n container: !isFluid,\n })}\n >\n <div className=\"flex overflow-auto\" data-testid=\"header-links-container\">\n {mainNavLinks?.length ? <MainNav theme={theme} mainNavLinks={mainNavLinks} /> : null}\n </div>\n </div>\n </div>\n </div>\n );\n}\n\ntype UserNavProps = Pick<\n MegaMenuProps,\n | 'loginOptions'\n | 'onSignInAttempt'\n | 'onSignOut'\n | 'user'\n | 'userLinks'\n | 'languageSelectorOptions'\n | 'theme'\n | 'shouldSuppressHonorsAccountLinks'\n | 'shouldSuppressFindStay'\n | 'shouldSuppressJoinAndSignIn'\n | 'shouldOpenAccountLinksInNewWindow'\n | 'SignUpComponent'\n>;\n\nfunction UserNav({\n loginOptions,\n onSignInAttempt,\n onSignOut,\n user,\n languageSelectorOptions,\n userLinks,\n theme,\n shouldSuppressHonorsAccountLinks,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n SignUpComponent,\n}: UserNavProps) {\n const [t] = useTranslation(['osc-header', 'osc-login']);\n\n const defaultOptions: React.ComponentProps<typeof LoginIFrame> = {\n frameSrc: userLinks?.signInLink?.url || '',\n title: t('osc-login:signIn'),\n onLoginAttempt: onSignInAttempt,\n };\n\n const userButtonLinkRef = useRef<HTMLButtonElement>(null);\n\n const isDark = theme === 'dark';\n\n return (\n <nav className=\"relative ms-auto flex min-h-[4.5rem]\" aria-label={t('hiltonHonors')}>\n <ul className=\"flex\">\n {languageSelectorOptions ? (\n <li className=\"flex items-center pb-2 pe-2 pt-1\">\n <LanguageSelector theme={theme} {...languageSelectorOptions} />\n </li>\n ) : null}\n {userLinks?.findStayLink && !shouldSuppressFindStay ? (\n <NavItemWithLink\n onClick={() => {\n sendInteractionReward();\n sendReward('find-stay-click');\n trackNavClick('gh_findstay');\n }}\n url={userLinks?.findStayLink.url}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n showNewWindowIcon={false}\n theme={theme}\n section=\"user\"\n isWide\n namedIcon=\"calendar\"\n label={t('findStay')}\n />\n ) : null}\n {user ? (\n <Popup>\n <NavItemWithPopup\n section=\"user\"\n theme={theme}\n popupButtonRef={userButtonLinkRef}\n onClick={() => {\n trackNavClick('gh_membername');\n sendReward('profile-name-click');\n }}\n label={t('greetings', { username: user.name })}\n icon=\"user-circle\"\n >\n <UserPopupContents\n user={user}\n userLinks={userLinks}\n shouldOpenAccountLinksInNewWindow={shouldOpenAccountLinksInNewWindow}\n shouldSuppressHonorsAccountLinks={shouldSuppressHonorsAccountLinks}\n onSignOut={onSignOut}\n />\n </NavItemWithPopup>\n </Popup>\n ) : (userLinks?.signInLink || userLinks?.signUpLink || SignUpComponent) &&\n !shouldSuppressJoinAndSignIn ? (\n <>\n {userLinks?.signUpLink || SignUpComponent ? (\n SignUpComponent ? (\n <SignUpComponent\n loggedInButtonRef={userButtonLinkRef}\n className=\"nav-item-text mx-1\"\n >\n {t('signUp')}\n </SignUpComponent>\n ) : userLinks?.signUpLink ? (\n <NavItemWithLink\n section=\"user\"\n {...userLinks.signUpLink}\n underline={false}\n showNewWindowIcon={false}\n label={t('signUp')}\n theme={theme}\n onClick={() => {\n sendInteractionReward();\n sendReward('nav-join-click');\n trackNavClick('gh_join_signin');\n }}\n />\n ) : null\n ) : null}\n\n {(userLinks?.signUpLink || userLinks?.signUpComponent) && userLinks?.signInLink ? (\n <div\n aria-hidden={true}\n className=\"nav-list-divider-container group flex h-full items-center pt-1 text-sm\"\n >\n <div className={isDark ? 'nav-list-divider-dark' : 'nav-list-divider'} />\n </div>\n ) : null}\n\n {userLinks?.signInLink ? (\n <NavItemWithModal\n section=\"user\"\n theme={theme}\n onLoginAttempt={defaultOptions.onLoginAttempt}\n title={defaultOptions.title}\n onClick={() => {\n trackNavClick('gh_join_signin');\n sendReward('nav-sign-in-click');\n }}\n buttonIcon=\"user-circle\"\n buttonLabel={t('osc-login:signIn')}\n >\n <LoginIFrame data-e2e=\"loginIframe\" {...defaultOptions} {...loginOptions} />\n </NavItemWithModal>\n ) : null}\n </>\n ) : null}\n </ul>\n </nav>\n );\n}\n\ntype MainNavProps = Required<Pick<MegaMenuProps, 'mainNavLinks'>> & {\n theme?: Exclude<CmsBrandComponentTheme, 'light'>;\n};\n\nfunction MainNav({ mainNavLinks, theme }: MainNavProps) {\n const { locale = 'en' } = useRouter();\n\n return (\n <div className=\"flex min-h-[4.5rem] items-center\">\n <div className=\"size-full overflow-x-visible\">\n <ul className=\"flex h-full items-center rtl:space-x-reverse\">\n {mainNavLinks.map(({ label, subMenu, link, onClick }) => {\n if (!subMenu?.length && link?.url) {\n return (\n <NavItemWithLink\n {...link}\n url={replaceLang(link?.url, locale)}\n section=\"navigation\"\n label={label}\n isWide\n key={label}\n theme={theme}\n onClick={(event) => {\n sendInteractionReward();\n trackNavClickBasedOnLabel(label);\n onClick?.();\n link?.onClick?.(event);\n }}\n />\n );\n }\n if (subMenu?.length) {\n return (\n <Popup key={label}>\n <NavItemWithPopup\n section=\"navigation\"\n label={label}\n indicator=\"arrowhead-small-up\"\n rotateOnOpen\n theme={theme}\n onClick={() => {\n trackNavClickBasedOnLabel(label);\n }}\n experimentationConfiguration={link?.experimentationConfiguration}\n >\n <NavigationPopupContents subMenu={subMenu} label={label} />\n </NavItemWithPopup>\n </Popup>\n );\n }\n return null;\n })}\n </ul>\n </div>\n </div>\n );\n}\n\nexport default MegaMenu;\n","import { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'next-i18next';\nimport type { TDrawerItem, TDrawerList } from '../types';\nimport { Link } from '@dx-ui/osc-link';\nimport Icon from '@dx-ui/osc-icon';\nimport { trackNavClickBasedOnLabel } from '../header.utilities';\nimport cx from 'classnames';\nimport { useRouter } from 'next/router';\nimport { replaceLang } from '@dx-ui/framework-i18n';\n\nexport const DrawerList = ({ menuItems, isOpen, onClose }: TDrawerList) => {\n const [nextItem, setNextItem] = useState<TDrawerItem | undefined>();\n const [nextItemIndex, setNextItemIndex] = useState<number>();\n const [selectedItem, setSelectedItem] = useState<TDrawerItem | undefined>();\n const [selectedItemIndex, setSelectedItemIndex] = useState<number>();\n const backButtonRef = useRef<HTMLButtonElement>(null);\n const [isFadingOut, setIsFadingOut] = useState(false);\n const lastSelectedButton = useRef<HTMLButtonElement>(null);\n const { t } = useTranslation('osc-header');\n const { locale = 'en' } = useRouter();\n\n useEffect(() => {\n if (!isOpen) setSelectedItem(undefined);\n }, [isOpen]);\n\n const goBack = () => {\n setIsFadingOut(true);\n setNextItem(undefined);\n setTimeout(() => {\n lastSelectedButton?.current?.focus();\n }, 350);\n };\n\n const focusOnBack = () => {\n setTimeout(() => {\n backButtonRef?.current?.focus();\n }, 50);\n };\n\n const itemSelected = (menuItem: TDrawerItem, index: number) => {\n setIsFadingOut(true);\n setNextItem(menuItem);\n setNextItemIndex(index);\n };\n\n return (\n <div\n className={isFadingOut ? 'animate-fadeout opacity-0' : 'animate-fadein'}\n onAnimationEnd={() => {\n if (isFadingOut) {\n setIsFadingOut(false);\n setSelectedItem(nextItem);\n setSelectedItemIndex(nextItemIndex);\n focusOnBack();\n }\n }}\n >\n <div className=\"border-border brand-ey:border-b-primary-alt brand-ou:border-b-primary relative border-b px-4 py-3\">\n <button onClick={onClose} type=\"button\" className=\"px-2\">\n <Icon name=\"close\" className=\"m-auto\" />\n <span className=\"brand-ey:font-normal brand-wa:font-normal text-xs font-semibold\">\n {t('close')}\n <span className=\"sr-only\">{t('menu')}</span>\n </span>\n </button>\n </div>\n {selectedItem ? (\n <button\n ref={backButtonRef}\n onClick={goBack}\n className={cx(\n 'bg-bg-alt nav-main-link border-primary flex h-12 w-full items-center border-s-8 pe-2 ps-4 text-left',\n 'brand-ey:bg-tertiary-alt brand-ey:border-b-primary-alt brand-ey:border-b',\n 'brand-hi-refresh:bg-bg-light',\n 'brand-lx:bg-bg-light',\n 'brand-ou:bg-bg-light brand-ou:border-b-primary brand-ou:border-b'\n )}\n aria-expanded=\"true\"\n type=\"button\"\n >\n <Icon name=\"arrowhead-small-right\" className=\"me-3 rotate-180 rtl:rotate-0\" />\n <span>{selectedItem.label}</span>\n </button>\n ) : null}\n\n {selectedItem ? (\n <ul>\n {selectedItem.subMenu?.map((menuItem) =>\n menuItem.link?.url ? (\n <li key={menuItem.label}>\n <Link\n anchorClassName=\"block nav-drawer-link brand-ey:focus:bg-tertiary-alt brand-lx:focus:bg-bg-light brand-ou:focus:bg-bg-light\"\n underline={false}\n className={cx(\n 'border-border flex h-12 items-center border-b ps-4',\n 'brand-ey:hover:bg-tertiary-alt brand-ey:border-b-primary-alt',\n 'brand-hi-refresh:hover:bg-bg-light brand-hi-refresh:focus:bg-bg-light',\n 'brand-lx:hover:bg-bg-light',\n 'brand-ou:hover:bg-bg-light brand-ou:border-b-primary'\n )}\n url={replaceLang(menuItem.link.url, locale)}\n isNewWindow={menuItem.link.isNewWindow}\n onClick={(event) => {\n trackNavClickBasedOnLabel(menuItem.label, selectedItem.label);\n menuItem.onClick?.();\n menuItem.link?.onClick?.(event);\n }}\n data-conductrics-goal={menuItem.link.experimentationConfiguration?.goal}\n data-conductrics-value={menuItem.link.experimentationConfiguration?.value}\n >\n {menuItem.label}\n </Link>\n </li>\n ) : null\n )}\n </ul>\n ) : (\n // If no submenu is currently selected, show main set of menu items\n <ul>\n {menuItems.map((menuItem, index) => {\n if (menuItem?.subMenu?.length) {\n return (\n <li key={menuItem.label}>\n <button\n ref={selectedItemIndex === index ? lastSelectedButton : null}\n onClick={() => {\n itemSelected(menuItem, index);\n trackNavClickBasedOnLabel(menuItem.label);\n }}\n className={cx(\n 'nav-main-link border-border animate-fadein flex h-12 w-full items-center justify-between border-b ps-4 text-left',\n 'brand-ey:hover:bg-tertiary-alt brand-ey:border-b-primary-alt brand-ey:focus:bg-tertiary-alt',\n 'brand-hi-refresh:hover:bg-bg-light brand-hi-refresh:focus:bg-bg-light',\n 'brand-lx:hover:bg-bg-light brand-lx:focus:bg-bg-light',\n 'brand-ou:hover:bg-bg-light brand-ou:border-b-primary brand-ou:focus:bg-bg-light'\n )}\n aria-expanded=\"false\"\n type=\"button\"\n data-conductrics-goal={menuItem.link?.experimentationConfiguration?.goal}\n data-conductrics-value={menuItem.link?.experimentationConfiguration?.value}\n >\n <span>{menuItem.label}</span>\n <Icon name=\"arrowhead-small-right\" className=\"me-3 ms-auto rtl:rotate-180\" />\n </button>\n </li>\n );\n } else if (menuItem.link?.url) {\n return (\n <li key={menuItem.label}>\n <Link\n anchorClassName=\"block brand-ey:focus:bg-tertiary-alt brand-ou:focus:bg-bg-light\"\n underline={false}\n className={cx(\n 'nav-main-link border-border flex h-12 items-center border-b ps-4',\n 'brand-ey:hover:bg-tertiary-alt brand-ey:border-b-primary-alt',\n 'brand-hi-refresh:hover:bg-bg-light brand-hi-refresh:focus:bg-bg-light',\n 'brand-ou:hover:bg-bg-light brand-ou:border-b-primary'\n )}\n url={replaceLang(menuItem.link.url, locale)}\n isNewWindow={menuItem.link.isNewWindow}\n onClick={(event) => {\n trackNavClickBasedOnLabel(menuItem.label);\n menuItem.onClick?.();\n menuItem.link?.onClick?.(event);\n }}\n data-conductrics-goal={menuItem.link.experimentationConfiguration?.goal}\n data-conductrics-value={menuItem.link.experimentationConfiguration?.value}\n >\n {menuItem.label}\n </Link>\n </li>\n );\n }\n return null;\n })}\n </ul>\n )}\n </div>\n );\n};\n","import { getBaseNavLinksFromEnv } from '../header.utilities';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport type { UserLinks } from '../types';\nimport { useRouter } from 'next/router';\n\nexport const useActiveUserLinks = (): UserLinks => {\n const { guestInfo, isAuthenticated } = useAuth();\n const { locale, asPath } = useRouter();\n\n const navLinks = getBaseNavLinksFromEnv(locale || 'en', isAuthenticated);\n\n const isB2BMember = guestInfo?.hhonors?.isB2BMember;\n const isHGVMax = Boolean(guestInfo?.hhonors?.isOwnerHGVNew) || asPath.includes('hgv-max');\n\n const isTMTPTeamMember =\n guestInfo?.hhonors?.isOwner ||\n guestInfo?.hhonors?.isTeamMember ||\n guestInfo?.hhonors?.isOwnerHGV;\n\n const isTMTPNonTeamMember =\n guestInfo?.hhonors?.isTeamMemberSpouse ||\n guestInfo?.hhonors?.isFamilyAndFriends ||\n guestInfo?.hhonors?.isLongTenure10 ||\n guestInfo?.hhonors?.isLongTenure20;\n\n return {\n ...navLinks,\n smbMemberLink: isB2BMember ? navLinks?.smbMemberLink : undefined,\n friendsAndFamilyLink: isTMTPTeamMember ? navLinks?.friendsAndFamilyLink : undefined,\n goHiltonLink: isTMTPNonTeamMember || isTMTPTeamMember ? navLinks?.goHiltonLink : undefined,\n hgvMaxLink: isHGVMax ? navLinks?.hgvMaxLink : undefined,\n };\n};\n","import { useRef, useState } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport { Login } from '@dx-ui/osc-login';\nimport { useTranslation } from 'next-i18next';\nimport { Link } from '@dx-ui/osc-link';\nimport { DrawerPanel } from '@dx-ui/osc-drawer';\nimport cx from 'classnames';\nimport MegaMenu from './mega-menu';\nimport { DrawerList } from './nav-drawer-list';\nimport Icon from '@dx-ui/osc-icon';\nimport { sendInteractionReward, trackNavClick } from '../header.utilities';\nimport { LanguageSelector } from '@dx-ui/osc-language-selector';\nimport { sendReward } from '@dx-ui/framework-conductrics';\nimport { HeaderLogoLink } from '../header.logo';\nimport type { TBrandHeaderBody } from '../types';\nimport { useRouter } from 'next/router';\nimport { getLocaleFormattedNumber } from '@dx-ui/framework-i18n';\nimport { useActiveUserLinks } from '../hooks/useActiveUserLinks';\n\nexport const BrandHeaderBody = ({\n menuItems,\n brand,\n loginOptions,\n user,\n SignUpComponent,\n wrapperId,\n onSignInAttempt,\n languageSelectorOptions,\n onSignOut,\n isFluid,\n suppressLogo,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n shouldSuppressHonorsAccountLinks,\n heading,\n theme,\n}: TBrandHeaderBody) => {\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [isAccountOpen, setIsAccountOpen] = useState(false);\n const { t } = useTranslation(['osc-header', 'osc-login']);\n const userLoggedInButtonRef = useRef<HTMLButtonElement>(null);\n\n const activeUserLinks = useActiveUserLinks();\n\n const closeMenus = () => {\n setIsMenuOpen(false);\n setIsAccountOpen(false);\n document.removeEventListener('keydown', handleKeyDown);\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n closeMenus();\n }\n };\n\n const addEscapeKeyListener = () => {\n document.addEventListener('keydown', handleKeyDown);\n };\n\n const removeEscapeKeyListener = () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n\n const menuPressed = () => {\n sendInteractionReward();\n if (isAccountOpen) setIsAccountOpen(false);\n if (isMenuOpen) {\n setIsMenuOpen(false);\n removeEscapeKeyListener();\n } else {\n addEscapeKeyListener();\n setIsMenuOpen(true);\n }\n };\n\n const accountPressed = () => {\n sendInteractionReward();\n sendReward('profile-name-click');\n setIsMenuOpen(false);\n if (isAccountOpen) {\n setIsAccountOpen(false);\n removeEscapeKeyListener();\n } else {\n setIsAccountOpen(true);\n addEscapeKeyListener();\n }\n };\n\n const closeMainMenu = () => {\n setIsMenuOpen(false);\n };\n\n const closeAccount = () => {\n setIsAccountOpen(false);\n };\n\n const isDark = theme === 'dark';\n\n const joinButtonClasses = cx(\n 'brand-wa:font-normal brand-ey:font-normal border-border brand-lx:border-primary m-auto inline-block border-e pe-2 text-xs font-semibold',\n {\n 'text-text-inverse': isDark,\n }\n );\n return (\n <>\n <nav\n id=\"drawer-nav\"\n className={cx('bg-bg z-50 lg:hidden', {\n 'bg-bg brand-ou:bg-secondary': !theme,\n 'bg-bg-dark': isDark,\n })}\n >\n <div\n className={cx('flex content-center items-center p-2 md:px-8 lg:px-10', {\n 'sm:h-16': !!languageSelectorOptions,\n 'h-min px-2 py-1': !languageSelectorOptions,\n })}\n >\n {menuItems && menuItems.length > 0 ? (\n <button\n className={cx('me-2 w-12', {\n 'self-end sm:self-center': !!languageSelectorOptions,\n })}\n onClick={menuPressed}\n type=\"button\"\n aria-expanded={isMenuOpen}\n id=\"menu-open-button\"\n >\n <Icon\n name=\"menu\"\n size=\"md\"\n className={cx('m-auto block', {\n 'text-text-inverse': isDark,\n })}\n />\n <span\n className={cx('brand-wa:font-normal brand-ey:font-normal text-xs font-semibold', {\n 'text-text-inverse': isDark,\n })}\n >\n <span className=\"sr-only\">{t('open')}</span>\n {t('menu')}\n </span>\n </button>\n ) : null}\n {!suppressLogo ? (\n <HeaderLogoLink\n theme={theme}\n brand={brand}\n className={cx({\n 'self-end sm:self-center': !!languageSelectorOptions,\n })}\n heading={heading}\n />\n ) : null}\n <div className=\"ms-auto flex flex-col items-center gap-x-2 sm:flex-row\">\n {languageSelectorOptions ? (\n <div className=\"pb-5 sm:pb-0\">\n <LanguageSelector theme={theme} {...languageSelectorOptions} />\n </div>\n ) : null}\n <div className=\"ms-auto flex items-center gap-x-2\">\n {activeUserLinks?.findStayLink && !shouldSuppressFindStay ? (\n <Link\n className=\"mb-1\"\n anchorClassName=\"text-center min-w-16 w-min align-middle\"\n underline={false}\n url={activeUserLinks?.findStayLink.url}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n showNewWindowIcon={false}\n onClick={() => {\n sendInteractionReward();\n sendReward('find-stay-click');\n trackNavClick('gh_findstay');\n }}\n >\n <Icon\n name=\"calendar\"\n size=\"md\"\n className={cx('m-auto block', {\n 'nav-icon': !theme,\n 'text-text-inverse': isDark,\n })}\n />\n <span\n className={cx(\n 'brand-wa:font-normal brand-ey:font-normal inline-block text-xs font-semibold',\n {\n 'text-text-inverse': isDark,\n }\n )}\n >\n {t('findStay')}\n </span>\n </Link>\n ) : null}\n {user ? (\n <button\n className=\"items-center\"\n onClick={() => {\n trackNavClick('gh_membername');\n accountPressed();\n }}\n aria-expanded={isAccountOpen}\n type=\"button\"\n >\n <Icon\n name=\"user-circle\"\n size=\"md\"\n className={cx('m-auto block', {\n 'nav-icon': !theme,\n 'nav-icon-dark': isDark,\n })}\n />\n <span\n className={cx(\n 'brand-ey:font-normal brand-wa:font-normal break-all text-xs font-semibold',\n {\n 'text-text-inverse': isDark,\n }\n )}\n >\n {t('greetings', { username: user.name })}\n </span>\n </button>\n ) : (activeUserLinks?.signInLink || activeUserLinks?.signUpLink) &&\n !shouldSuppressJoinAndSignIn ? (\n <div className=\"flex flex-col pt-7\">\n <div className=\"flex items-center\">\n {activeUserLinks?.signUpLink && !SignUpComponent ? (\n <div className=\"h-fit\">\n <Link\n {...activeUserLinks.signUpLink}\n showNewWindowIcon={false}\n underline={false}\n className={joinButtonClasses}\n onClick={() => {\n sendInteractionReward();\n sendReward('nav-join-click');\n trackNavClick('gh_join_signin');\n }}\n >\n {t('signUp')}\n </Link>\n </div>\n ) : null}\n {SignUpComponent ? (\n <div className=\"h-fit\">\n <SignUpComponent\n className={joinButtonClasses}\n loggedInButtonRef={userLoggedInButtonRef}\n >\n {t('signUp')}\n </SignUpComponent>\n </div>\n ) : null}\n {activeUserLinks.signInLink ? (\n <div\n className=\"ps-2\"\n onClick={() => {\n sendInteractionReward();\n trackNavClick('gh_join_signin');\n }}\n >\n <Icon\n name=\"user-circle\"\n size=\"md\"\n className={cx('-ms-[22px] -mt-7 block', {\n 'nav-icon': !theme,\n 'nav-icon-dark': isDark,\n })}\n />\n <Login\n frameSrc={activeUserLinks?.signInLink?.url || ''}\n title={t('osc-login:signIn')}\n onLoginAttempt={onSignInAttempt}\n hideIcon={true}\n onOpen={() => {\n setIsMenuOpen(false);\n setIsAccountOpen(false);\n }}\n buttonClassName={cx(\n 'brand-wa:!font-normal brand-ey:font-normal text-xs font-semibold',\n {\n 'text-text-inverse': isDark,\n }\n )}\n {...loginOptions}\n />\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n {(isMenuOpen || isAccountOpen) && (\n <div\n className=\"bg-overlay animate-fadein absolute top-0 z-50 h-screen w-full overflow-hidden backdrop-blur-[2px]\"\n data-testid=\"backgroundOverlay\"\n onClick={closeMenus}\n />\n )}\n {menuItems && menuItems.length > 0 ? (\n <div\n data-testid=\"menuWindow\"\n className={cx({ visible: isMenuOpen, invisible: !isMenuOpen })}\n >\n <DrawerPanel\n isOpen={isMenuOpen}\n alignment=\"left\"\n appWrapperId={wrapperId}\n interactiveElementWrapperId=\"drawer-nav\"\n returnFocus={() => {\n document.getElementById('menu-open-button')?.focus();\n return false;\n }}\n >\n <DrawerList isOpen={isMenuOpen} menuItems={menuItems} onClose={closeMainMenu} />\n </DrawerPanel>\n </div>\n ) : null}\n <DrawerPanel\n isOpen={isAccountOpen}\n alignment=\"right\"\n appWrapperId={wrapperId}\n interactiveElementWrapperId=\"drawer-nav\"\n >\n {user && isAccountOpen ? (\n <AccountSection\n user={user}\n userLinks={activeUserLinks}\n onClose={closeAccount}\n onSignOut={onSignOut}\n shouldSuppressHonorsAccountLinks={shouldSuppressHonorsAccountLinks}\n shouldOpenAccountLinksInNewWindow={shouldOpenAccountLinksInNewWindow}\n />\n ) : null}\n </DrawerPanel>\n </nav>\n\n <nav className=\"hidden lg:block\">\n <MegaMenu\n isFluid={isFluid}\n suppressLogo={suppressLogo}\n shouldSuppressHonorsAccountLinks={shouldSuppressHonorsAccountLinks}\n shouldSuppressFindStay={shouldSuppressFindStay}\n shouldSuppressJoinAndSignIn={shouldSuppressJoinAndSignIn}\n shouldOpenAccountLinksInNewWindow={shouldOpenAccountLinksInNewWindow}\n brand={brand}\n onSignInAttempt={onSignInAttempt}\n onSignOut={onSignOut}\n user={user}\n userLinks={activeUserLinks}\n mainNavLinks={menuItems}\n languageSelectorOptions={languageSelectorOptions}\n loginOptions={loginOptions}\n heading={heading}\n theme={theme}\n SignUpComponent={SignUpComponent}\n />\n </nav>\n </>\n );\n};\n\nexport type TAccountSection = Pick<\n TBrandHeaderBody,\n | 'userLinks'\n | 'onSignOut'\n | 'shouldSuppressHonorsAccountLinks'\n | 'shouldOpenAccountLinksInNewWindow'\n> &\n Required<Pick<TBrandHeaderBody, 'user'>> & {\n onClose: () => void;\n };\n\nconst AccountUserLink = ({\n url,\n onClick,\n children,\n isNewWindow,\n}: {\n url: string;\n onClick: () => void;\n children: React.ReactNode;\n isNewWindow?: boolean;\n}) => {\n return (\n <Link\n anchorClassName={cx(\n 'border-border block px-6 py-2',\n 'brand-ey:border-primary-alt brand-ey:hover:bg-tertiary-alt brand-ey:focus:bg-tertiary-alt',\n 'brand-hi-refresh:hover:bg-bg-light brand-hi-refresh:focus:bg-bg-light',\n 'brand-lx:hover:bg-bg-light brand-lx:focus:bg-bg-light',\n 'brand-ou:border-primary brand-ou:hover:bg-bg-light brand-ou:focus:bg-bg-light'\n )}\n className=\"brand-ey:font-normal brand-gu:font-normal brand-gu:font-mono brand-hi-refresh:font-normal brand-nd:font-medium brand-nd:font-mono text-text font-bold\"\n underline={false}\n url={url}\n onClick={onClick}\n isNewWindow={isNewWindow}\n >\n {children}\n </Link>\n );\n};\n\nconst AccountSection = ({\n user,\n userLinks,\n onClose,\n onSignOut,\n shouldSuppressHonorsAccountLinks,\n shouldOpenAccountLinksInNewWindow,\n}: TAccountSection) => {\n const { locale = 'en' } = useRouter();\n\n const { t } = useTranslation('osc-header');\n const formattedHonorsPointsTotal = getLocaleFormattedNumber(user.honorsPoints, { locale });\n\n return (\n <FocusLock returnFocus>\n <div className=\"border-border brand-ey:border-primary-alt brand-ou:border-primary relative mb-2 border-b px-4 py-3\">\n <button onClick={onClose} type=\"button\" className=\"px-2\">\n <Icon name=\"close\" size=\"md\" className=\"m-auto\" />\n <span className=\"brand-ey:font-normal brand-wa:font-normal text-xs font-semibold\">\n {t('close')}\n <span className=\"sr-only\">{t('closeAccountDetails')}</span>\n </span>\n </button>\n </div>\n <div className=\"flex\">\n <div className=\"px-4\">\n <div className=\"bg-hilton-alt flex size-12 items-center justify-center rounded-full p-2\">\n <Icon name=\"user\" size=\"xl\" />\n </div>\n </div>\n <div className=\"brand-ey:font-normal brand-gu:font-normal brand-gu:font-mono brand-hi-refresh:font-normal brand-nd:font-medium brand-nd:font-mono font-bold\">\n <span>{t('greetings', { username: user.name })}</span>\n <div className=\"capitalize\">\n <span className=\"underline\">{user.honorsTier}</span> {t('status')}\n </div>\n <div>{t('honorsPointsTotal', { honorsPointsTotal: formattedHonorsPointsTotal })}</div>\n {user.hhonorsNumber ? (\n <div>{t('hiltonHonorsNumber', { hhonorsNumber: user.hhonorsNumber })}</div>\n ) : null}\n </div>\n </div>\n <div className=\"border-border brand-ey:border-primary-alt brand-ou:border-primary mt-4 divide-y divide-solid border-y\">\n {userLinks?.accountLink?.url ? (\n <AccountUserLink\n url={userLinks.accountLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hiltonhonorshome');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('hiltonHonorsHome')}\n </AccountUserLink>\n ) : null}\n {userLinks?.honorsProfileLink?.url ? (\n <AccountUserLink\n url={userLinks.honorsProfileLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hiltonhonorsprofile');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('profile')}\n </AccountUserLink>\n ) : null}\n\n {userLinks?.honorsActivityLink?.url && !shouldSuppressHonorsAccountLinks ? (\n <AccountUserLink\n url={userLinks.honorsActivityLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hiltonhonorsactivity');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('activity')}\n </AccountUserLink>\n ) : null}\n\n {userLinks?.honorsPointsLink?.url && !shouldSuppressHonorsAccountLinks ? (\n <AccountUserLink\n url={userLinks.honorsPointsLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hiltonhonorspoints');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('pointsLabel')}\n </AccountUserLink>\n ) : null}\n\n {userLinks?.goHiltonLink?.url ? (\n <AccountUserLink\n url={userLinks.goHiltonLink.url}\n onClick={() => {\n trackNavClick('gh_membername_gohiltonprogramdetails');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('goHiltonProgramDetails')}\n </AccountUserLink>\n ) : null}\n\n {userLinks?.friendsAndFamilyLink?.url ? (\n <AccountUserLink\n url={userLinks.friendsAndFamilyLink.url}\n onClick={() => {\n trackNavClick('gh_membername_managefriendsandfamily');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('manageFriendsAndFamily')}\n </AccountUserLink>\n ) : null}\n\n {userLinks?.hgvMaxLink?.url ? (\n <AccountUserLink\n url={userLinks.hgvMaxLink.url}\n onClick={() => {\n trackNavClick('gh_membername_hgvmaxratedetails');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('hgvMaxRateDetails')}\n </AccountUserLink>\n ) : null}\n\n {userLinks?.smbMemberLink?.url ? (\n <AccountUserLink\n url={userLinks.smbMemberLink.url}\n onClick={() => {\n trackNavClick('gh_membername_managehiltonforbusiness');\n }}\n isNewWindow={shouldOpenAccountLinksInNewWindow}\n >\n {t('manageHiltonForBusiness')}\n </AccountUserLink>\n ) : null}\n\n <button\n className={cx(\n 'text-text border-border block w-full px-6 py-2 text-left font-bold rtl:text-start',\n 'brand-ey:font-normal brand-ey:border-primary-alt brand-ey:hover:bg-tertiary-alt brand-ey:focus:bg-tertiary-alt',\n 'brand-gu:font-normal brand-gu:font-mono',\n 'brand-hi-refresh:font-normal brand-hi-refresh:hover:bg-bg-light brand-hi-refresh:focus:bg-bg-light',\n 'brand-lx:hover:bg-bg-light brand-lx:focus:bg-bg-light',\n 'brand-nd:font-medium brand-nd:font-mono',\n 'brand-ou:border-primary brand-ou:hover:bg-bg-light brand-ou:focus:bg-bg-light'\n )}\n onClick={async () => {\n trackNavClick('gh_membername_signout');\n onClose();\n await onSignOut();\n }}\n type=\"button\"\n >\n {t('signOut')}\n </button>\n </div>\n </FocusLock>\n );\n};\n","import { useEffect, useRef, useState, type ReactNode } from 'react';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport { JoinForm, type Props } from '@dx-ui/osc-join-form';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { LoginIFrame } from '@dx-ui/osc-login';\nimport { useTranslation } from 'next-i18next';\nimport Icon from '@dx-ui/osc-icon';\nimport { logError } from '@dx-ui/framework-logger';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\n\n/** This is a generic button component that will launch a modal with the join form when clicked. */\nexport function JoinModalButton({\n children,\n className,\n language,\n loginIFrameSrc,\n metrics,\n headline,\n oCode = 'OHWGW',\n onSuccessfulLogin,\n onSuccessfulJoin,\n onClick,\n}: {\n children: ReactNode;\n /** Wrapper button classname */\n className?: string;\n language: string;\n loginIFrameSrc: string;\n /** Metrics object from join form */\n metrics: Props['metrics'];\n headline?: Props['headline'];\n oCode?: Props['oCode'];\n onSuccessfulLogin?: () => void;\n onSuccessfulJoin?: () => void;\n onClick?: () => void;\n}) {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [showJoinFormContent, setShowJoinFormContent] = useState(false);\n const [showLoginIframe, setShowLoginIframe] = useState(false);\n const [newHonorsNumber, setNewHonorsNumber] = useState('');\n const { login } = useAuth();\n const buttonRef = useRef<HTMLButtonElement>(null);\n const successMessageRef = useRef<HTMLParagraphElement>(null);\n const { t } = useTranslation('osc-join-modal-button');\n const origin = useOrigin();\n\n const handleOpenModal = () => {\n setIsModalOpen(true);\n setShowJoinFormContent(true);\n onClick?.();\n };\n\n const handleOpenLoginIframe = () => {\n setShowLoginIframe(true);\n };\n\n const handleCloseModal = () => {\n setIsModalOpen(false);\n setShowLoginIframe(false);\n };\n\n return (\n <Dialog\n onDismiss={handleCloseModal}\n isOpen={isModalOpen}\n size={showLoginIframe ? 'md' : '2xl'}\n title={showLoginIframe ? t('signIn') : t('joinForFree')}\n dialogTrigger={\n <button type=\"button\" className={className} onClick={handleOpenModal} ref={buttonRef}>\n {children}\n </button>\n }\n >\n {showJoinFormContent ? (\n <JoinForm\n language={language}\n oCode={oCode}\n origin={origin}\n headline={\n headline || (\n <h1 className=\"font-headline mb-2 text-center text-3xl\">{t('joinHiltonHonors')}</h1>\n )\n }\n onSuccess={(data) => {\n const honorsNumber = data?.createGuest?.data?.hhonorsNumber;\n if (honorsNumber) {\n onSuccessfulJoin?.();\n setNewHonorsNumber(honorsNumber);\n setShowJoinFormContent(false);\n handleOpenLoginIframe();\n }\n }}\n metrics={metrics}\n />\n ) : null}\n {showLoginIframe ? (\n <>\n <div ref={successMessageRef} className=\"bg-success-alt text-success mt-5 flex p-2\">\n <Icon name=\"check-circle\" variant=\"solid\" />\n <p className=\"ml-2\">{t('welcomeMessage')}</p>\n </div>\n {newHonorsNumber ? (\n <LoginIFrame\n frameSrc={loginIFrameSrc}\n title={t('signIn')}\n options={{\n username: newHonorsNumber,\n }}\n onLoginAttempt={(result) => {\n if (result.data) {\n login(result)\n .then(() => {\n handleCloseModal();\n setShowLoginIframe(false);\n onSuccessfulLogin?.();\n })\n .catch((error) => {\n logError(\n 'OSC_JOIN_MODAL_BUTTON',\n error,\n 'Error logging in after successful join'\n );\n });\n }\n }}\n />\n ) : null}\n </>\n ) : null}\n </Dialog>\n );\n}\n\nfunction useOrigin() {\n const [origin, setOrigin] = useState('https://www.hilton.com');\n useEffect(() => {\n if (isBrowser && window.location) {\n const { protocol, hostname, port } = window.location;\n const origin = `${protocol}//${hostname}${port ? `:${port}` : ''}`;\n setOrigin(origin);\n }\n }, []);\n return origin;\n}\n","export * from './lib/osc-join-modal-button';\n","import * as React from 'react';\nimport { Link } from '@dx-ui/osc-link';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { Login } from '@dx-ui/osc-login';\nimport Icon from '@dx-ui/osc-icon';\nimport { LanguageSelector } from '@dx-ui/osc-language-selector';\nimport type { HeaderProps, LinkWithExperimentationConfiguration } from './types';\nimport { BrandHeaderBody } from './brand-header-body/brand-header-body';\nimport { sendInteractionReward } from './header.utilities';\nimport {\n Status,\n sendReward,\n setConductricsSelectionOK,\n useConductricsSelection,\n} from '@dx-ui/framework-conductrics';\nimport { HeaderLogoLink } from './header.logo';\nimport { useRect } from '@dx-ui/utilities-use-rect';\nimport { JoinModalButton } from '@dx-ui/osc-join-modal-button';\nimport { useRouter } from 'next/router';\nimport { getLocaleFormattedNumber } from '@dx-ui/framework-i18n';\n\nconst HeaderMenuLink: React.FunctionComponent<\n React.PropsWithChildren<LinkWithExperimentationConfiguration>\n> = (link) => {\n const [t] = useTranslation('osc-header');\n return (\n <DropdownMenu.Item asChild={true}>\n <a\n href={link.url}\n onClick={link.onClick}\n className={cx(\n 'text-text hover:text-text-alt highlighted:bg-bg-alt block px-2 py-3',\n link.className\n )}\n {...(link.adaDescription && {\n 'aria-label': `${link.adaDescription}${link.isNewWindow ? `, ${t('newTab')}` : ''}`,\n })}\n {...(link.isNewWindow && { target: '_blank', rel: 'noopener noreferrer' })}\n data-conductrics-goal={link.experimentationConfiguration?.goal}\n data-conductrics-value={link.experimentationConfiguration?.value}\n >\n {link.label}\n {link.isNewWindow && !link.adaDescription ? (\n <span className=\"sr-only\">\n , <span>{t('newTab')}</span>\n </span>\n ) : null}\n </a>\n </DropdownMenu.Item>\n );\n};\n\nconst joinModalConductricsTestAgent = 'a-ZPwsLcHilZ0e';\nfunction onSignInLinkClick() {\n void setConductricsSelectionOK(joinModalConductricsTestAgent);\n}\n\nexport const Header = React.forwardRef<HTMLElement, HeaderProps>(\n (\n {\n megaNavLinks,\n brand,\n isFluid,\n mainNavLinks,\n onSignOut,\n onSignInAttempt,\n suppressLogo = false,\n shouldSuppressHonorsAccountLinks,\n shouldSuppressFindStay,\n shouldSuppressJoinAndSignIn,\n shouldOpenAccountLinksInNewWindow,\n user,\n userLinks,\n loginOptions,\n children,\n languageSelectorOptions,\n showNewHeader,\n theme,\n heading,\n wrapperId = '__next',\n ...rest\n },\n forwardedRef\n ) => {\n const [t] = useTranslation(['osc-header', 'osc-login']);\n const defaultOptions = {\n frameSrc: userLinks?.signInLink?.url || '',\n title: t('osc-login:signIn'),\n onLoginAttempt: onSignInAttempt,\n };\n const commonHeaderBodyProps = {\n brand,\n isFluid,\n mainNavLinks,\n onSignOut,\n onSignInAttempt,\n suppressLogo,\n user,\n userLinks,\n loginOptions,\n children,\n heading,\n };\n\n const isDark = theme === 'dark';\n const joinFromModal = useJoinFromModalTest();\n\n if (userLinks?.signUpLink) {\n userLinks.signUpLink.onMouseDown = onSignInLinkClick;\n userLinks.signUpLink.onKeyDown = function onKeyDown(event) {\n if (event.key === 'Enter' || event.key === ' ') {\n onSignInLinkClick();\n }\n };\n }\n\n const SignUpComponent = ({\n children,\n className,\n loggedInButtonRef,\n }: {\n children: React.ReactNode;\n className: string;\n loggedInButtonRef: React.RefObject<HTMLButtonElement | null>;\n }): React.ReactNode => {\n return (\n <JoinModalButton\n onClick={onSignInLinkClick}\n className={className}\n language={languageSelectorOptions?.locale || 'en'}\n loginIFrameSrc={userLinks?.signInLink?.url || ''}\n onSuccessfulJoin={() => sendReward('g-XuedMeNnr5')}\n onSuccessfulLogin={() => {\n sendReward('g-bgQSVS0Q4h');\n setTimeout(() => loggedInButtonRef?.current?.focus(), 1000);\n }}\n metrics={{\n setPageInfo: () => {},\n trackEvent: () => {},\n setFormErrors: () => {},\n setProperty: () => {},\n setFormErrorMessages: () => {},\n }}\n >\n {children}\n </JoinModalButton>\n );\n };\n\n return (\n <>\n <a href=\"#skipped\" className=\"btn-primary-text btn-xl sr-only focus:not-sr-only\">\n {t('skipToContent')}\n </a>\n <header\n className={cx('border-border border-b border-solid', {\n 'bg-bg-dark': isDark,\n })}\n data-testid=\"shared-header\"\n ref={forwardedRef}\n {...rest}\n >\n {megaNavLinks || showNewHeader ? (\n <BrandHeaderBody\n menuItems={megaNavLinks}\n brand={brand}\n onSignInAttempt={onSignInAttempt}\n onSignOut={onSignOut}\n wrapperId={wrapperId}\n user={user}\n SignUpComponent={joinFromModal ? SignUpComponent : undefined}\n loginOptions={loginOptions}\n languageSelectorOptions={languageSelectorOptions}\n isFluid={isFluid}\n suppressLogo={suppressLogo}\n shouldSuppressHonorsAccountLinks={shouldSuppressHonorsAccountLinks}\n shouldSuppressFindStay={shouldSuppressFindStay}\n shouldSuppressJoinAndSignIn={shouldSuppressJoinAndSignIn}\n shouldOpenAccountLinksInNewWindow={shouldOpenAccountLinksInNewWindow}\n heading={heading}\n theme={theme}\n />\n ) : languageSelectorOptions ? (\n <NewHeaderBody\n {...commonHeaderBodyProps}\n defaultOptions={defaultOptions}\n languageSelectorOptions={languageSelectorOptions}\n />\n ) : (\n <OldHeaderBody {...commonHeaderBodyProps} defaultOptions={defaultOptions} />\n )}\n </header>\n {children}\n <div id=\"skipped\" tabIndex={-1} />\n </>\n );\n }\n);\n\ntype BodyProps = Pick<\n HeaderProps,\n | 'brand'\n | 'isFluid'\n | 'mainNavLinks'\n | 'onSignOut'\n | 'suppressLogo'\n | 'user'\n | 'userLinks'\n | 'loginOptions'\n | 'heading'\n> & {\n defaultOptions: {\n frameSrc: string;\n title: string;\n onLoginAttempt: HeaderProps['onSignInAttempt'];\n };\n};\n\nfunction OldHeaderBody({\n brand,\n isFluid,\n mainNavLinks,\n onSignOut,\n suppressLogo,\n user,\n userLinks,\n loginOptions,\n defaultOptions,\n heading,\n}: BodyProps) {\n return (\n <div\n className={cx('flex flex-wrap items-center pt-2 lg:py-2', {\n 'container-fluid': isFluid,\n container: !isFluid,\n })}\n >\n {suppressLogo ? null : <HeaderLogoLink brand={brand} heading={heading} />}\n {mainNavLinks?.length ? <MainNav links={mainNavLinks} suppressLogo={suppressLogo} /> : null}\n <UserNav\n user={user}\n userLinks={userLinks}\n onSignOut={onSignOut}\n loginOptions={loginOptions}\n defaultOptions={defaultOptions}\n />\n </div>\n );\n}\n\nfunction NewHeaderBody({\n brand,\n isFluid,\n mainNavLinks,\n onSignOut,\n suppressLogo,\n user,\n userLinks,\n loginOptions,\n defaultOptions,\n languageSelectorOptions,\n heading,\n}: BodyProps & {\n languageSelectorOptions: NonNullable<HeaderProps['languageSelectorOptions']>;\n}) {\n return (\n <div\n className={cx('flex flex-wrap pt-1.5', {\n 'container-fluid': isFluid,\n container: !isFluid,\n })}\n >\n <div className=\"flex w-full flex-wrap items-center justify-between gap-x-5 gap-y-2 pb-2 sm:justify-end sm:gap-x-12 sm:pb-0\">\n <LanguageSelector {...languageSelectorOptions} />\n <div className=\"flex flex-wrap justify-end gap-x-2 gap-y-1.5 sm:flex-nowrap sm:gap-x-3\">\n <UserNav\n user={user}\n userLinks={userLinks}\n onSignOut={onSignOut}\n loginOptions={loginOptions}\n defaultOptions={defaultOptions}\n />\n </div>\n </div>\n <div className=\"w-full items-center lg:flex lg:pb-2\">\n {suppressLogo ? null : <HeaderLogoLink brand={brand} heading={heading} />}\n {mainNavLinks?.length ? <MainNav links={mainNavLinks} suppressLogo={suppressLogo} /> : null}\n </div>\n </div>\n );\n}\n\nfunction UserNav({\n user,\n userLinks,\n onSignOut,\n loginOptions,\n defaultOptions,\n}: Pick<BodyProps, 'user' | 'userLinks' | 'onSignOut' | 'loginOptions' | 'defaultOptions'>) {\n const { i18n, t } = useTranslation('osc-header');\n const { locale = 'en' } = useRouter();\n const formattedHonorsPointsTotal = getLocaleFormattedNumber(user?.honorsPoints, { locale });\n return (\n <nav aria-label=\"Hilton Honors\" className=\"relative ms-auto\">\n {user ? (\n <DropdownMenu.Root dir={i18n.dir()} modal={false}>\n <DropdownMenu.Trigger asChild>\n <button\n onClick={() => {\n sendInteractionReward();\n sendReward('profile-name-click');\n }}\n className=\"btn-text-text btn-xl flex items-center\"\n type=\"button\"\n >\n <span className=\"brand-wa:font-normal\">\n {t('greetings', { username: user.name })}\n </span>\n <Icon name=\"user-circle\" size=\"md\" variant=\"solid\" className=\"ms-2\" />\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align=\"end\"\n className=\"bg-bg border-border divide-border absolute end-0 z-50 w-56 divide-y rounded border border-solid p-2 shadow-lg outline-none\"\n >\n <div className=\"flex flex-col px-2 py-3\">\n <p className=\"leading-tight\">\n <span className=\"block font-bold\">{user.honorsTier}</span>\n <span>\n {t('points', {\n count: user.honorsPoints,\n points: formattedHonorsPointsTotal,\n })}\n </span>\n </p>\n </div>\n {userLinks?.accountLink?.url ? (\n <HeaderMenuLink\n onClick={(e) => {\n userLinks.accountLink?.onClick?.(e);\n sendInteractionReward();\n }}\n {...userLinks.accountLink}\n label={t('account')}\n />\n ) : null}\n {/* Optional user links */}\n {userLinks?.additionalLinks?.length\n ? userLinks.additionalLinks.map((link) => (\n <HeaderMenuLink\n onClick={(e) => {\n link.onClick?.(e);\n sendInteractionReward();\n }}\n key={link.label}\n {...link}\n />\n ))\n : null}\n <button\n className={cx(\n 'text-text hover:text-text-alt highlighted:bg-bg-alt w-full px-2 py-3 text-start'\n )}\n onClick={onSignOut}\n id=\"sign-out\"\n type=\"button\"\n >\n {t('signOut')}\n </button>\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n ) : userLinks?.signInLink || userLinks?.signUpLink ? (\n <ul className=\"divide-border flex items-baseline divide-x rtl:divide-x-reverse\">\n {userLinks.signUpLink ? (\n <li className=\"px-2 first:ps-0 last:pe-0 sm:px-3\">\n <Link\n {...userLinks.signUpLink}\n showNewWindowIcon={false}\n data-osc-product=\"header-signup-link\"\n underline={false}\n className=\"btn btn-text-text sm:btn-xl brand-wa:!font-normal flex items-center sm:inline-flex\"\n onClick={(e) => {\n userLinks.signUpLink?.onClick?.(e);\n sendReward('nav-join-click');\n sendInteractionReward();\n }}\n >\n {t('signUp')}\n </Link>\n </li>\n ) : null}\n {userLinks.signInLink ? (\n <li className=\"px-2 first:ps-0 last:pe-0 sm:px-3\">\n <Login onOpen={sendInteractionReward} {...{ ...defaultOptions, ...loginOptions }} />\n </li>\n ) : null}\n </ul>\n ) : null}\n </nav>\n );\n}\n\nfunction MainNav({\n links,\n suppressLogo,\n}: {\n links: LinkWithExperimentationConfiguration[];\n suppressLogo: HeaderProps['suppressLogo'];\n}) {\n const navRef = React.useRef<React.ElementRef<'div'>>(null);\n const [isBeforeVisible, setBeforeVisible] = React.useState(false);\n const [isAfterVisible, setAfterVisible] = React.useState(false);\n\n const onChange = React.useCallback((rect: DOMRect | undefined) => {\n const scrollLeft = navRef.current?.scrollLeft ?? 0;\n const scrollWidth = navRef.current?.scrollWidth ?? 0;\n const navWidth = rect?.width || 0;\n const widthDiff = scrollWidth - navWidth;\n const newBefore = scrollLeft > 5 && widthDiff > 0;\n const newAfter = widthDiff > 0 && widthDiff - scrollLeft > 5;\n setBeforeVisible(newBefore);\n setAfterVisible(newAfter);\n }, []);\n const navRect = useRect({ ref: navRef, onResize: onChange });\n const onNavScroll = React.useCallback(() => navRect && onChange(navRect), [onChange, navRect]);\n return (\n <nav\n className={cx(\n 'flex-basis-full border-border lg:flex-basis-auto relative order-last -mx-4 mt-2 overflow-hidden border-t border-solid px-4 py-2 sm:-mx-8 sm:px-8 lg:order-none lg:mx-0 lg:mt-0 lg:grow lg:overflow-auto lg:border-t-0 lg:px-4',\n {\n 'lg:ps-0': suppressLogo,\n 'header-nav-before': isBeforeVisible,\n 'header-nav-after': isAfterVisible,\n }\n )}\n >\n <div\n ref={navRef}\n onScroll={onNavScroll}\n className=\"w-full overflow-x-scroll py-1 lg:overflow-x-visible lg:py-0\"\n >\n <ul className=\"flex flex-nowrap items-center space-x-6 rtl:space-x-reverse\">\n {links.map(({ label, experimentationConfiguration, ...linkProps }) => (\n <li\n key={`main-nav-link-${label}`}\n className=\"focus-within:text-text-alt hover:text-text-alt text-text\"\n >\n <Link\n {...linkProps}\n underline={false}\n className=\"brand-wa:font-normal whitespace-nowrap text-base font-bold\"\n onClick={(e) => {\n linkProps.onClick?.(e);\n sendInteractionReward();\n }}\n data-conductrics-goal={experimentationConfiguration?.goal}\n data-conductrics-value={experimentationConfiguration?.value}\n >\n {label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n </nav>\n );\n}\nfunction useJoinFromModalTest() {\n const { selection, isLoaded } = useConductricsSelection(\n joinModalConductricsTestAgent,\n Status.PENDING\n );\n return isLoaded && selection?.choice === 'B';\n}\n\nHeader.displayName = 'Header';\n\nexport default Header;\n","import type { AgentsSelection } from '@dx-ui/framework-conductrics';\nimport { shouldRenderExperiment } from '@dx-ui/framework-conductrics';\nimport type { TDrawerItem } from '../types';\n\nexport function filterMegaNavExperiments(\n megaNavLinks: TDrawerItem[] | undefined,\n experimentationAgents: AgentsSelection | undefined = {}\n) {\n if (!megaNavLinks) {\n return;\n }\n\n return megaNavLinks\n ?.map((item) => {\n if (\n item.link?.experimentationConfiguration &&\n !shouldRenderExperiment(experimentationAgents, item.link?.experimentationConfiguration)\n ) {\n return null;\n }\n\n const subMenu =\n item.subMenu?.filter((secondary) => {\n if (!secondary.link?.experimentationConfiguration) {\n return true;\n }\n\n return shouldRenderExperiment(\n experimentationAgents,\n secondary.link?.experimentationConfiguration\n );\n }) ?? [];\n\n const drawerItem: TDrawerItem = {\n ...item,\n };\n\n if (subMenu.length) {\n drawerItem.subMenu = subMenu;\n }\n\n return drawerItem;\n })\n .filter((item) => !!item);\n}\n","import type { Agent, ConductricsSelection } from '@dx-ui/framework-conductrics';\nimport { useConductricsSelection } from '@dx-ui/framework-conductrics';\nimport { filterMegaNavExperiments } from '../util/filter-mega-nav-experiments';\nimport type { TDrawerItem } from '../types';\n\n/**\n * Filters mega nav links by Conductrics agent(s).\n * Conductrics agents are automatically fetched by this hook if links have an agent defined.\n */\nexport function useFilterMegaNavExperiments(megaNavLinks: TDrawerItem[] | undefined) {\n const agents = findAgentsToFetch(megaNavLinks);\n const selections = useConsistentConductricsSelection(agents);\n return filterMegaNavExperiments(megaNavLinks, selections);\n}\n\n/**\n * Loop over navigation drawer items to find agent IDs that need to be fetched via Conductrics\n */\nfunction findAgentsToFetch(megaNavLinks?: TDrawerItem[]): Agent[] {\n if (!megaNavLinks) {\n return [];\n }\n\n const agents = new Set<string>();\n\n for (const item of megaNavLinks) {\n if (item.link?.experimentationConfiguration?.agentId) {\n agents.add(item.link.experimentationConfiguration.agentId);\n }\n\n if (Array.isArray(item.subMenu)) {\n for (const subMenuItem of item.subMenu) {\n if (subMenuItem.link?.experimentationConfiguration?.agentId) {\n agents.add(subMenuItem.link.experimentationConfiguration.agentId);\n }\n }\n }\n }\n\n return Array.from(agents).map((agentId) => ({ agentId }));\n}\n\n/**\n * Always returns a Record<string, ConductricsSelection>\n *\n * useConductricsSelection will return an object that is of type `ConductricsSelection` instead of\n * Record<AgentID, ConductricsSelection> when there is an array with a single agent ID passed to it.\n * We need to convert this to a record for the filter function.\n */\nfunction useConsistentConductricsSelection(agents: Agent[]) {\n const isSingleAgent = agents.length === 1;\n const selections = useConductricsSelection(agents);\n\n if (isSingleAgent && isConductricsSingleSelection(selections)) {\n const agentId = agents?.[0]?.agentId;\n\n return {\n [`${agentId}`]: selections,\n };\n }\n\n return selections;\n}\n\nfunction isConductricsSingleSelection(value: unknown): value is ConductricsSelection {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'isLoaded' in value &&\n 'error' in value &&\n 'selection' in value\n );\n}\n","export * from './lib/header';\nexport { getBaseNavLinksFromEnv } from './lib/header.utilities';\nexport * from './lib/types';\nexport * from './lib/util/filter-mega-nav-experiments';\nexport * from './lib/hooks/use-filter-mega-nav-experiments';\n","import { allEnv, env } from '@dx-ui/framework-env';\nimport { useTranslation } from 'next-i18next';\nimport { useRouter } from 'next/router';\nimport * as React from 'react';\n\nimport { getGuestFirstName, useAuth } from '@dx-ui/framework-auth-provider';\nimport { Header as OSCHeader, useFilterMegaNavExperiments } from '@dx-ui/osc-header';\nimport { Speedbump, makeAnchorEventTarget, useSpeedbump } from '@dx-ui/osc-speedbump';\n\nimport {\n ENABLE_JAPANESE_CO_BRAND_PAGE_LINK,\n featureFlags,\n} from '../../utils/constants/featureFlags';\nimport { getLoginRedirectUrl } from '../../utils/helpers/urlBuilder';\n\nimport type { HeaderProps, TDrawerItem } from '@dx-ui/osc-header';\n\nimport type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport { logError } from '@dx-ui/framework-logger';\nimport type { LoginResponse } from '@dx-ui/osc-login';\nimport { generateError } from '@dx-ui/utilities-generate-error';\nimport { useIsClient } from 'usehooks-ts';\nimport { useFeatureTogglesQuery, useNavigationQuery } from '@dx-ui/queries-dx-guests-ui';\nimport type { Maybe } from '../../types/generated/types';\nimport { isFeatureEnabled } from '../../utils/featureToggles';\n\ntype Props = {\n forwardPageURI?: string | null;\n hasGoHiltonHeader?: boolean;\n};\n\nconst { APP_NAME, OHW_BASE_URL } = allEnv();\n\nexport type NavLink = {\n adaDescription?: Maybe<string>;\n label?: Maybe<string>;\n url?: Maybe<string>;\n secondaryLinks: Array<{\n label?: Maybe<string>;\n adaDescription?: Maybe<string>;\n campaignId?: Maybe<string>;\n isNewWindow?: Maybe<boolean>;\n url?: Maybe<string>;\n }>;\n};\n\nconst getCreditCardUrl = (link: NavLink, locale: string, showNewJACobrandLink: boolean) => {\n switch (locale) {\n case 'ja':\n link.url = showNewJACobrandLink\n ? `${env('OHW_BASE_URL')}ja/hilton-honors/credit-cards/`\n : 'https://www.americanexpress.com/ja-jp/credit-cards/card-types/cobrand-hilton-mclp/index.html';\n return link;\n case 'de':\n link.url = 'https://www.hiltonhonorscreditcard.de/';\n return link;\n default:\n return link;\n }\n};\n\nconst useActiveNavLinks = ({\n brandCode,\n language,\n onShow,\n}: {\n brandCode: string;\n language: string;\n onShow: (event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => boolean;\n}) => {\n const { data } = useNavigationQuery({ brandCode, language });\n const { data: featureToggleData } = useFeatureTogglesQuery({ flags: featureFlags });\n const showNewJACobrandLink = isFeatureEnabled(\n featureToggleData?.featureToggles || [],\n ENABLE_JAPANESE_CO_BRAND_PAGE_LINK\n );\n const handleCreditCardClick = (event) => {\n if (['ja', 'de'].includes(language)) {\n return;\n }\n onShow(event);\n };\n\n if (data?.brand?.header?.sections.length === 1) {\n return data?.brand?.header?.sections?.[0]?.links.map((link) => {\n return {\n label: link.label,\n link: { ...link, onClick: onShow },\n subMenu: link.secondaryLinks.map((secondaryLink) => {\n return { label: secondaryLink.label, link: { ...secondaryLink, onClick: onShow } };\n }),\n };\n }) as TDrawerItem[];\n } else if (data?.brand?.header?.sections.length && data?.brand?.header?.sections.length > 1) {\n return data?.brand?.header?.sections?.flatMap((section) => {\n return section.links.map((link) => {\n return {\n label: link.label,\n link: link?.url\n ? link?.url.includes('credit-cards')\n ? {\n ...getCreditCardUrl(link, language, showNewJACobrandLink),\n onClick: handleCreditCardClick,\n }\n : { ...link, onClick: onShow }\n : { ...link, onClick: onShow },\n subMenu: link.secondaryLinks.map((secondaryLink) => {\n return { label: secondaryLink.label, link: { ...secondaryLink, onClick: onShow } };\n }),\n };\n });\n }) as TDrawerItem[];\n }\n};\n\nexport const Header = (props: Props) => {\n const [user, setUser] = React.useState<HeaderProps['user']>();\n const isClient = useIsClient();\n const { locale = 'en', asPath, query } = useRouter();\n const { forwardPageURI } = props;\n const [t] = useTranslation('header');\n const { isAuthenticated, logout, login, guestInfo } = useAuth();\n\n const { isVisible, onContinue, onHide, onShow } = useSpeedbump(locale, APP_NAME);\n\n const activeNavItems = useActiveNavLinks({ brandCode: 'WW', language: locale, onShow });\n const navItems = useFilterMegaNavExperiments(activeNavItems);\n\n const brandLink =\n isClient && isAuthenticated\n ? `/${locale}/hilton-honors/guest/my-account/`\n : `/${locale}/hilton-honors/`;\n\n React.useEffect(() => {\n setUser(\n guestInfo\n ? {\n name: getGuestFirstName({ guestInfo }),\n honorsTier: guestInfo?.hhonors?.summary?.tierName || '',\n honorsPoints: guestInfo?.hhonors?.summary?.totalPoints || 0,\n honorsPointsFmt: guestInfo?.hhonors?.summary?.totalPointsFmt || '',\n hhonorsNumber: guestInfo?.hhonors?.hhonorsNumber || undefined,\n }\n : undefined\n );\n }, [guestInfo]);\n\n const onSignInAttempt = React.useCallback(\n async (resp: LoginResponse) => {\n if (resp?.data) {\n await login(resp).catch((error) => {\n logError('HEADER', generateError(error), 'error on login.');\n });\n if (forwardPageURI) {\n const fakeEventTarget = makeAnchorEventTarget(forwardPageURI);\n if (!onShow(fakeEventTarget)) {\n onContinue();\n if (forwardPageURI) window.location.assign(forwardPageURI);\n }\n }\n }\n },\n [login, forwardPageURI, onShow, onContinue]\n );\n\n const onSignOut = React.useCallback(async () => {\n await logout()\n .then(() => {\n if (asPath.includes('hgv-max')) {\n const hgvRedirectUrl = `/${locale ?? 'en'}/hgv-max/`;\n window.location.assign(hgvRedirectUrl);\n }\n\n if (asPath.includes('go-hilton')) {\n const goHiltonRedirectUrl = `/${locale ?? 'en'}/go-hilton/`;\n window.location.assign(goHiltonRedirectUrl);\n }\n\n if (/hilton-honors\\/guest/.test(asPath)) {\n const redirectUrl = /guest\\/points/.test(asPath)\n ? `/${locale ?? 'en'}/hilton-honors/points/`\n : getLoginRedirectUrl(asPath, query, locale as SupportedLanguage);\n window.location.assign(redirectUrl);\n }\n })\n .catch((error) => {\n logError('HEADER', generateError(error), 'error on logout.');\n });\n }, [asPath, locale, logout, query]);\n\n return (\n <>\n <OSCHeader\n showNewHeader={true}\n brand={{\n url: brandLink,\n name: t('hiltonHonors'),\n code: 'HH',\n onClick: onShow,\n }}\n loginOptions={{\n options: {\n showCreatePassword: true,\n forgetInfoLink: {\n url: `${OHW_BASE_URL}${locale}/hilton-honors/login/forgot-information/`,\n },\n secureInfoLink: {\n url: `${OHW_BASE_URL}${locale}/p/global-privacy-statement/`,\n },\n joinLink: {\n url: `${OHW_BASE_URL}${locale}/hilton-honors/join/?ocode=JHTNW`,\n },\n },\n }}\n isFluid={true}\n megaNavLinks={navItems}\n onSignOut={onSignOut}\n onSignInAttempt={onSignInAttempt}\n user={user}\n />\n <Speedbump isShowing={isVisible} onClose={onHide} onContinue={onContinue} />\n </>\n );\n};\n","import { useAuth } from '@dx-ui/framework-auth-provider';\nimport { useLocation } from '@dx-ui/framework-location-provider';\nimport {\n ShopFormDates,\n ShopForm,\n ShopFormLocation,\n ShopFormRooms,\n ShopFormSpecialRates,\n} from '@dx-ui/osc-shop-form';\nimport { env } from '@dx-ui/framework-env';\nimport { useRouter } from 'next/router';\n\nimport { useLanguage, useTranslation } from '../../hooks';\nimport { Goals } from '../../types/Conductrics';\nimport { sendConductricsReward } from '../../utils/helpers/conductrics';\n\nimport type { FormDefaultValues } from '@dx-ui/osc-shop-form';\nimport { useState } from 'react';\nimport { Status, sendReward, useConductricsSelection } from '@dx-ui/framework-conductrics';\nimport { useIsClient } from 'usehooks-ts';\n\ntype ShopFormSubmitHandler = React.ComponentProps<typeof ShopForm>['onSubmit'];\ntype SearchFormData = Parameters<NonNullable<ShopFormSubmitHandler>>[0];\n\ntype FormSubmitProps = {\n language: string;\n formData: SearchFormData;\n route?: string;\n isUrlFromSpeedbump?: boolean;\n redirectUrl?: string;\n};\n\nconst onFormSubmit = ({\n language,\n route,\n isUrlFromSpeedbump = false,\n redirectUrl,\n}: FormSubmitProps) => {\n if (\n route === '/en/hilton-honors/guest/my-account/' ||\n route === '/en/hilton-honors/credit-cards/'\n ) {\n sendConductricsReward(Goals.FindAHotel);\n }\n if (route?.includes('/en/hilton-honors/credit-cards/')) {\n sendConductricsReward(Goals.FindAHotelMCLP);\n }\n\n let url = redirectUrl;\n if (redirectUrl) {\n if (isUrlFromSpeedbump) {\n url = redirectUrl?.replace(`/${language}/`, `/en/`);\n }\n if (url) {\n window.location.assign(new URL(url, env('OHW_BASE_URL')));\n }\n }\n};\n\nconst SearchWidget = ({\n shouldSuppressHalfSearchWidget,\n}: {\n shouldSuppressHalfSearchWidget?: boolean;\n}) => {\n const { t } = useTranslation('osc-rooms');\n const { coordinate } = useLocation();\n const language = useLanguage();\n const { guestId, guestInfo } = useAuth();\n const router = useRouter();\n const isClient = useIsClient();\n\n //NHCSEARCH-5088 Remove Flexible dates when reset date is present\n const REMOVE_FLEXIBLE_DATES_AGENT_ID = 'a-88XVLKrnNI';\n const MY_FLEXIBLE_DATES_CLICK_GOAL = 'g-lNDlYVzRu9';\n const RESET_DATES = 'g-gjmxUjWSsN';\n const [enableRemoveFlexibleDatesTest, setEnableRemoveFlexibleDatesTest] = useState(false);\n const { isLoaded: isRemoveFlexibleDatesTestLoaded, selection: removeFlexibleDatesSelection } =\n useConductricsSelection(\n REMOVE_FLEXIBLE_DATES_AGENT_ID,\n enableRemoveFlexibleDatesTest ? Status.OK : Status.PENDING\n );\n\n const isRemoveFlexibleDatesDefault =\n isRemoveFlexibleDatesTestLoaded && removeFlexibleDatesSelection?.choice?.toLowerCase() === 'a';\n const isRemoveFlexibleDatesVariant =\n isRemoveFlexibleDatesTestLoaded && removeFlexibleDatesSelection?.choice?.toLowerCase() === 'b';\n\n const searchDefaultValues: FormDefaultValues = {\n brandCode: 'HH',\n hhonors: {\n ...guestInfo?.hhonors,\n isSMBMember: guestInfo?.hhonors?.isSMBMember,\n },\n };\n\n const handleFormSubmit: ShopFormSubmitHandler = (formData) => {\n const redirectUrl = formData?.url ?? '';\n onFormSubmit({\n language,\n formData,\n route: `/${router?.locale ?? 'en'}${router?.asPath}`,\n redirectUrl,\n });\n };\n\n const searchFormKey = isClient\n ? window.btoa(encodeURI(JSON.stringify(searchDefaultValues)))\n : 'search-form';\n\n return (\n <div className=\"w-full py-4 lg:mb-6\">\n <ShopForm\n onSubmit={handleFormSubmit}\n onChange={() => sendConductricsReward(Goals.EditSearchWidget)}\n key={searchFormKey}\n targetOHWPage=\"search\"\n defaultValues={searchDefaultValues}\n language={language}\n enableDatesFlexDreamRouting={true}\n shouldDisplayGeocodeErrorModal={true}\n hasErrorBanner={false}\n >\n <ShopFormLocation\n coordinate={coordinate}\n required={true}\n sessionId={(guestId && guestId.toString()) || 'dx-guests-ui'}\n autocompleteUri={env('DX_AUTOCOMPLETE_URI')}\n language={language}\n />\n {!shouldSuppressHalfSearchWidget ? (\n <>\n <ShopFormDates\n language={language}\n hasTodayAsDefault={false}\n onOpen={() => {\n //NHCSEARCH-5088\n if (isRemoveFlexibleDatesTestLoaded) setEnableRemoveFlexibleDatesTest(true);\n }}\n {...(isRemoveFlexibleDatesVariant ? { hideFlexDates: true } : {})} //NHCSEARCH-5088\n onFlexibleDates={() => {\n //NHCSEARCH-5088\n if (isRemoveFlexibleDatesDefault) sendReward(MY_FLEXIBLE_DATES_CLICK_GOAL);\n }}\n onResetDates={() => {\n //NHCSEARCH-5088\n if (isRemoveFlexibleDatesDefault || isRemoveFlexibleDatesVariant)\n sendReward(RESET_DATES);\n }}\n />\n <ShopFormRooms\n ageRange={{ min: 0, max: 18 }}\n occupancyLimitMessage={t('occupancy.occupancyLimitMessage')}\n />\n <ShopFormSpecialRates />\n </>\n ) : null}\n </ShopForm>\n </div>\n );\n};\n\nexport default SearchWidget;\n","export const defaultLayout = {\n isHomepage: false,\n hasAlert: false,\n hasHeader: true,\n hasGoHiltonHeader: false,\n hasFixedHeader: false,\n hasFooter: true,\n hasSearchWidget: true,\n forwardPageURI: null,\n};\n\nexport const withoutSearchWidget = {\n ...defaultLayout,\n hasSearchWidget: false,\n};\n\nexport const goHiltonLayout = {\n ...defaultLayout,\n hasGoHiltonHeader: true,\n hasSearchWidget: false,\n};\n\nexport const minimalLayout = {\n ...defaultLayout,\n hasMinimalHeader: true,\n hasSearchWidget: false,\n};\n","import { useEffect, useState } from 'react';\nimport { isTranslatedUrl } from '@dx-ui/framework-i18n';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { useRouter } from 'next/router';\n\nimport { getExternalUrl } from '../utils/helpers/urlBuilder';\n\nexport function useForwardUrl(forwardUrlProp?: string) {\n const { asPath, locale = 'en' } = useRouter();\n const forwardUrlPath = forwardUrlProp || `/${locale ?? 'en'}${asPath}`;\n const [forwardUrl, setForwardUrl] = useState('');\n const queryClient = useQueryClient();\n\n useEffect(() => {\n async function processForwardUrl() {\n const isHiltonHonorsHomePage = /\\/hilton-honors\\/$/.test(forwardUrlPath);\n const supportsInLanguageHiltonHonorsFlow = await isTranslatedUrl({\n locale,\n path: '/hilton-honors/guest/my-account/',\n rule: 'rule-ui-translate-guest',\n queryClient,\n });\n const hiltonHonorsLocale = supportsInLanguageHiltonHonorsFlow ? locale : 'en';\n const fullForwardUrl = getExternalUrl(\n isHiltonHonorsHomePage\n ? `/${hiltonHonorsLocale}/hilton-honors/guest/my-account/`\n : forwardUrlPath\n );\n\n setForwardUrl(fullForwardUrl);\n }\n\n void processForwardUrl();\n }, [forwardUrlPath, locale, queryClient]);\n\n return forwardUrl;\n}\n","import { Status, useConductricsSelection } from '@dx-ui/framework-conductrics';\n\nimport { useMediaQuery } from 'usehooks-ts';\n\nexport function useMCLPSearchSuppress() {\n const { isLoaded, selection } = useConductricsSelection('a-npGDKHj7WB', Status.OK);\n const isMobile = useMediaQuery('(max-width: 649px)');\n return { suppressHalfSearchWidgetForMobile: isLoaded && selection?.choice === 'B' && isMobile };\n}\n","import * as React from 'react';\n\nimport { Alert } from '../../components/Alert';\nimport Footer from '../../components/GlobalFooter/GlobalFooter';\nimport { Header } from '../../components/Header/Header';\nimport SearchWidget from '../../components/SearchForm/SearchForm';\nimport { defaultLayout } from '../../utils/constants/layouts';\nimport { useForwardUrl } from '../../hooks/useForwardUrl';\nimport { useRouter } from 'next/router';\nimport { useMCLPSearchSuppress } from '../../hooks/useMCLPSearchSuppress';\n\ntype InheritedPageProps = {\n userAgent: string;\n};\n\ntype LayoutProps = {\n hasAlert?: boolean;\n hasFooter?: boolean;\n hasHeader?: boolean;\n hasSearchWidget?: boolean;\n};\n\nexport type Props = {\n children?: React.ReactNode;\n forwardUrl?: string;\n layout?: LayoutProps;\n} & InheritedPageProps;\n\nexport const Layout: React.FC<React.PropsWithChildren<Props>> = ({\n forwardUrl,\n children,\n layout = {},\n}) => {\n const forwardPageURI = useForwardUrl(forwardUrl);\n const { asPath } = useRouter();\n const { suppressHalfSearchWidgetForMobile } = useMCLPSearchSuppress();\n const shouldSuppressHalfSearchWidget =\n suppressHalfSearchWidgetForMobile && asPath.includes('/hilton-honors/credit-cards/');\n const { hasAlert, hasHeader, hasFooter, hasSearchWidget } = { ...defaultLayout, ...layout };\n\n const getHeaderContent = React.useMemo(() => {\n if (!hasHeader) {\n return null;\n }\n return <Header forwardPageURI={forwardPageURI} />;\n }, [hasHeader, forwardPageURI]);\n\n return (\n <>\n {getHeaderContent}\n <main>\n {hasSearchWidget && (\n <SearchWidget shouldSuppressHalfSearchWidget={shouldSuppressHalfSearchWidget} />\n )}\n {hasAlert && <Alert />}\n <div>{children}</div>\n </main>\n {hasFooter && <Footer />}\n </>\n );\n};\n","export * from './Layout';\n","\"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","// src/hydration.ts\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData) {\n return {\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n })\n },\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 ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : []\n );\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 deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash);\n const data = state.data === void 0 ? state.data : deserializeData(state.data);\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\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 data,\n fetchStatus: \"idle\"\n }\n );\n }\n if (promise) {\n const initialPromise = Promise.resolve(promise).then(deserializeData);\n void query.fetch(void 0, { initialPromise });\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","/* eslint-disable no-console */\nimport { useEffect, useMemo } from 'react';\nimport { useIdleTimer } from 'react-idle-timer';\nimport '../styles/global.css';\nimport { AuthProvider } from '@dx-ui/framework-auth-provider';\nimport { LocationProvider } from '@dx-ui/framework-location-provider';\nimport { appWithTranslation } from '@dx-ui/framework-i18n';\nimport { useTranslation } from 'next-i18next';\nimport type { AppProps } from 'next/app';\nimport { allEnv } from '@dx-ui/framework-env';\nimport Head from 'next/head';\nimport { useRouter } from 'next/router';\nimport { Layout } from '../components/Layout';\nimport { MetricsProvider } from '../config/metrics';\nimport { auth, IDLE_TIMEOUT } from '../utils/auth';\nimport { getLoginRedirectUrl, getUrlHost } from '../utils/helpers/urlBuilder';\n\nimport type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools';\nimport { makeQueryClient } from '@dx-ui/framework-react-query';\nimport { HydrationBoundary, QueryClientProvider } from '@tanstack/react-query';\n\nimport { REACT_QUERY_CONFIG } from '../config/react-query';\nimport { useManualPageLogger } from '@dx-ui/framework-logger';\nimport { useConductrics } from '../hooks/useConductrics';\n\nconst { APP_ENV, OHW_BASE_URL } = allEnv();\nconst APP_NAME = 'dx-guests-ui';\n\nfunction ConductricsInit() {\n useConductrics();\n\n return null;\n}\n\nconst MyApp = ({ Component, pageProps }: AppProps) => {\n const { forwardUrl, metrics, layout, supportedLanguages, hasCustomCanonicalUrl } = pageProps;\n const router = useRouter();\n useManualPageLogger(router.pathname, APP_NAME);\n\n const [t] = useTranslation('common');\n const routerLocale = useRouter().locale || router.locale || 'en';\n const authClient = useMemo(() => auth(), []);\n const reactQueryClient = useMemo(\n () =>\n makeQueryClient({\n appName: REACT_QUERY_CONFIG.appName,\n ssrMode: typeof window === 'undefined',\n oneLinkConfig: pageProps.oneLinkConfig,\n routerLocale,\n authClient,\n }),\n [authClient, routerLocale, pageProps.oneLinkConfig]\n );\n\n useEffect(() => {\n const handleStart: Parameters<typeof router.events.on>[1] = (url: string, { shallow }) => {\n // Exclude exchange-points sub routes\n if (!shallow && /\\/[a-zA-Z]{2,5}\\/hilton-honors\\/guest\\/(?!exchange-points\\/\\w)/.test(url)) {\n // Force full page load\n window.location.assign(url);\n }\n };\n\n router.events.on('routeChangeStart', handleStart);\n\n return () => {\n router.events.off('routeChangeStart', handleStart);\n };\n }, [router]);\n\n // Sanitize url parameters via regex filter\n useEffect(() => {\n const url = router.asPath;\n const regexFilter = /(\\?|&)(password|name|phone|language)/i;\n if (regexFilter.test(url)) {\n const sanitizedUrl = new URL(url, getUrlHost());\n Object.keys(router.query).forEach((key) => {\n if (regexFilter.test(key)) {\n sanitizedUrl.searchParams.delete(key);\n }\n });\n router\n .replace(sanitizedUrl, undefined, { shallow: true })\n .catch(() => console.error(`Error on navigating to ${sanitizedUrl.toString()}`));\n }\n // Do replace() only during page mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Logout timer when window is idle for 30 mins\n useIdleTimer({\n timeout: IDLE_TIMEOUT,\n eventsThrottle: 1000,\n onIdle: async () => {\n if (/local|test/.test(APP_ENV)) console.log('[dx-guests-ui] - IDLE: ', Date.now().toString());\n await authClient.logout();\n },\n ...(/local|test/.test(APP_ENV)\n ? {\n onActive: () => {\n console.log('[dx-guests-ui] - ACTIVE: ', Date.now().toString());\n },\n onAction: () => {\n console.log('[dx-guests-ui] - ACTION: ', Date.now().toString());\n },\n }\n : {}),\n });\n\n const handleLogout = async () => {\n if (router?.asPath.includes('hgv-max')) {\n const hgvRedirectUrl = `/${router?.locale ?? 'en'}/hgv-max/`;\n try {\n await router.push(hgvRedirectUrl);\n } catch {\n // Force page reload if logout.\n window.location.assign(hgvRedirectUrl);\n }\n }\n\n if (router?.asPath.includes('go-hilton')) {\n const goHiltonRedirectUrl = `/${router?.locale ?? 'en'}/go-hilton/`;\n try {\n await router.push(goHiltonRedirectUrl);\n } catch {\n // Force page reload if logout.\n window.location.assign(goHiltonRedirectUrl);\n }\n }\n\n if (/hilton-honors\\/guest/.test(router.asPath)) {\n const redirectUrl = /guest\\/points/.test(router.asPath)\n ? `/${router?.locale ?? 'en'}/hilton-honors/points/`\n : getLoginRedirectUrl(router.asPath, router.query, router.locale as SupportedLanguage);\n\n window.location.assign(redirectUrl);\n }\n return {};\n };\n\n return (\n <>\n <Head>\n <meta name=\"format-detection\" content=\"telephone=no\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>{t('hiltonHonors')}</title>\n {hasCustomCanonicalUrl ? null : (\n <link rel=\"canonical\" href={`${OHW_BASE_URL}${router?.locale}${router?.pathname}/`} />\n )}\n <link\n rel=\"alternate\"\n hrefLang=\"x-default\"\n href={`${OHW_BASE_URL}en${router?.asPath}`}\n key=\"x-default\"\n />\n <link rel=\"alternate\" hrefLang=\"en\" href={`${OHW_BASE_URL}en${router?.asPath}`} />\n {supportedLanguages?.map((language: string) => (\n <link\n rel=\"alternate\"\n hrefLang={language}\n href={`${OHW_BASE_URL}${language}${router?.asPath}`}\n key={`alternate-link-${language}`}\n />\n ))}\n </Head>\n <AuthProvider authClient={authClient} onLogout={handleLogout}>\n <QueryClientProvider client={reactQueryClient}>\n <HydrationBoundary state={pageProps.dehydratedState}>\n <MetricsProvider trackingData={metrics?.trackingData}>\n <div id=\"main\">\n {/* MyAccount page inits Conductrics with additional visitor traits from route specific data */}\n {router.pathname !== '/hilton-honors/guest/my-account' ? <ConductricsInit /> : null}\n <LocationProvider>\n <Layout userAgent={pageProps.userAgent} forwardUrl={forwardUrl} layout={layout}>\n <Component {...pageProps} />\n </Layout>\n </LocationProvider>\n </div>\n </MetricsProvider>\n <ReactQueryDevtools initialIsOpen={false} buttonPosition=\"bottom-left\" />\n </HydrationBoundary>\n </QueryClientProvider>\n </AuthProvider>\n </>\n );\n};\n\nexport default appWithTranslation(MyApp);\n","export const Goals = {\n CreditCardApplyNow: 'g-credit-card-apply-now',\n HonorsApplyNow: 'g-honors-apply-now',\n SurpassApplyNow: 'g-surpass-apply-now',\n AspireApplyNow: 'g-aspire-apply-now',\n BusinessApplyNow: 'g-business-apply-now',\n CreditCardTermsAndConditions: 'g-credit-card-terms-and-conditions',\n SuccessfulHonorsEnrollment: 'g-successful-honors-enrollment',\n FindAHotel: 'g-8xd5mdahgj',\n FindAHotelMCLP: 'FindAHotel-MCLP',\n LearnMoreCtaClick: 'g-LearnMoreCtaClick',\n TierTabSelection: 'g-tierTabSelection',\n EditSearchWidget: 'g-EditGuestSearchWidget',\n BookYourNextGetaway: 'g-book-your-next-getaway',\n PopUpCloseClick: 'g-x-exit',\n ExploreMoreRatesCTATile1: 'g-explore-more-rates-cta-tile-1',\n ExploreMoreRatesCTATile2: 'g-explore-more-rates-cta-tile-2',\n ExploreMoreRatesCTATile3: 'g-explore-more-rates-cta-tile-3',\n ExploreMoreRatesCTATile4: 'g-explore-more-rates-cta-tile-4',\n ExploreMoreRatesCTA: 'g-explore-more-rates-cta',\n JoinHiltonHonorsCTAClick: 'JoinHiltonHonorsCTAClick',\n CombinedClickOnAllTiles: 'g-combined-click-on-all-tiles',\n HeadLinerLinkClick: 'g-headliner-link-click',\n} as const;\n","import { AuthClient } from '@dx-ui/framework-auth-provider';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type { IncomingMessage } from 'http';\nimport { env } from '@dx-ui/framework-env';\n\n/**\n * 30 min value before user is logged out.\n */\nexport const IDLE_TIMEOUT = 30 * 60000;\n\nexport const auth = (\n req?: Request,\n initialAuthState?: ConstructorParameters<typeof AuthClient>[0]['restore']\n) => {\n return new AuthClient({\n appName: env('APP_NAME'),\n authEndpoint: isBrowser\n ? env('DX_AUTH_API_CLIENT_URI')\n : (process.env.DX_AUTH_API_SERVER_URI as string),\n gqlEndpoint: isBrowser\n ? env('DX_GRAPHQL_CLIENT_URI')\n : (process.env.DX_GRAPHQL_SERVER_URI as string),\n appId: env('DX_AUTH_APP_CUSTOMER_ID'),\n request: req as unknown as IncomingMessage,\n restore: initialAuthState,\n });\n};\n\nexport const callReservationLogin = async ({ confNumber, lastName, arrivalDate }) => {\n if (!isBrowser) throw Error('Reservation login must only be called client-side');\n\n const options = {\n method: 'POST',\n credentials: 'same-origin' as RequestCredentials,\n headers: {\n 'content-language': 'en',\n 'content-type': 'application/json',\n },\n body: JSON.stringify({\n app_id: env('DX_AUTH_APP_CUSTOMER_ID'),\n confNumber,\n lastName,\n arrivalDate,\n }),\n };\n\n let result: Response | undefined;\n try {\n result = await window.fetch(env('DX_AUTH_API_RES_LOGIN'), options);\n if (!result.ok) {\n throw Error(result.statusText);\n } else {\n const data = await result.json();\n return data;\n }\n } catch (error) {\n throw Error(error as string);\n }\n};\n","import { ENTERPRISE_THEME_REFRESH_TOGGLE_NAME } from '@dx-ui/framework-theme';\n\n/*\n * Toggle creation steps:\n * 1. Check if Jira issue has Feature Toggle Enabled set to 'yes'\n * 2. Check if feature toggle is added to the remove list, NHCGUEST-5381\n * 3. Create toggle name and key in featureFlags.ts\n * 4. Create toggle in Unleash (stage and test)\n * 5. Update toggle mock for Cypress test if applicable\n * 6. Post a comment in Jira issue calling out feature toggle name and value\n * 7. Notify delivery manager about the new feature toggle.\n */\n/** DSR reCAPTCHA */\nexport const NHCGUEST_506 = 'recaptcha';\n/** 369 Grid for My Offers Page */\nexport const NHCGUEST_1217 = 'NHCGUEST_1217';\n/** Expiration date for Honors Cards */\nexport const NHCGUEST_812 = 'NHCGUEST_812';\nexport const SUPPRESS_MEMBER_TIER_TRACKER = 'NHCGUEST-3518'; // Use in tandom with Member Status\nexport const ENABLE_ALERT_BANNER = 'NHCGUEST-3900';\nexport const ENABLE_INLINE_PROGRAM_BANNER = 'NHCGUEST-3938';\nexport const ENABLE_COVID_POLICY_UPDATE = 'NHCGUEST-3970'; // Policy update banner on the non-member homepage\nexport const HIDE_SECURITI_AI = 'NHCGUEST-4134'; // Hide SecutiriAI text/image on DSR page.\nexport const ENABLE_TIER_BENEFITS_UPDATE = 'NHCGUEST-5289'; // Show updated requirements and benefits for every Tier\nexport const ENABLE_MILESTONE_TRACKER = 'NHCGUEST-4456'; // Display dynamic Milestone Bonus tracker after 9 applicable nights.\nexport const ENABLE_STATIC_MILESTONE_TRACKER_AND_SUPPRESS_METER = 'NHCGUEST-4504'; // Display static Milestone Bonus tracker & Account page meter suppression.\nexport const COMPETITOR_LIST = 'NHCGUEST-4917'; // List of competitors for price match guarantee form\nexport const ENABLE_TIER_POINTS_EXPIRATION = 'NHCGUEST-5269'; // Enable the honors tier qual points expiration copy\nexport const ENABLE_2022_MILESTONE_TRACKING = 'NHCGUEST-5290'; // Enable 2022 policy logic for Milestone bonus tracking (date toggle set for January 1, 2022)\nexport const ENABLE_TMTP_ALT_LOGIN = 'NHCGUEST-4463'; // Enable akamai bmp alt login url\nexport const ENABLE_ADD_RELATIONSHIP_WITH_HILTON = 'NHCGUEST-6173'; // Enable Relationship with Hilton info at the Personal Data Request page, renewed California form(NHCGUEST-6174) and new US form(NHCGUEST-6183).\nexport const ENABLE_STANDALONE_POINTS_COM = 'NHCGUEST-6956'; // Redirect to Points.com storefronts instead of loading in as iframes\nexport const ENABLE_OPT_OUT_REQUEST_PAGE = 'NHCGUEST-7594'; // Enable Opt Out Request Page\nexport const UNSUPPRESS_AUTOCAMP_MYWAY_BENEFITS_TILE = 'NHCGUEST-7629'; // Unsuppress Autocamp MyWay benefits tile\nexport const ENABLE_LIVESMART_UPDATE = 'NHCGUEST-7625'; // Show LivSmart requirements requirements member benifits page\nexport const ENABLE_MARKETABILITY_CCS_CONTENT = 'NHCGUEST-7020'; // Enable Marketability CCS changes on Join form\nexport const UNSUPPRESS_AUTOCAMP_MYWAY_BENEFITS_DIAMOND = 'NHCGUEST-7648'; // Unsuppress Autocamp MyWay benefits for Diamond Members\nexport const SUPPRESS_SLH_MYWAY_BENEFITS_SECTION = 'NHCGUEST-7681'; // Suppress SLH MyWay benefits next stay section\nexport const AUTOCOMPLETE_LANGUAGES = 'config-ui-translate-autocomplete'; // Supported languages for autocomplete\n/** Controls Japanese co-brand page link */\nexport const ENABLE_JAPANESE_CO_BRAND_PAGE_LINK = 'NHCGUEST-8414';\nexport const featureFlags = [\n ENTERPRISE_THEME_REFRESH_TOGGLE_NAME,\n ENABLE_JAPANESE_CO_BRAND_PAGE_LINK,\n];\n","export const SEGMENTATION_COOKIE_NAME = 'TMS';\nexport const SEGMENTATION_COOKIE_NAME_DEV = 'TMS_DEV';\n\nexport const CONFIG_RULE_NAMES = {\n 'member-home': 'config-rule-honors-text-headliner',\n} as const;\n\nexport const DEFAULT_BANNER_SEGMENT = {\n 'member-home': '21539313',\n} as const;\n\nexport const CONFIG_RULE_PATH = {\n 'member-home': 'member-home',\n 'go-hilton': 'go-hilton/home',\n} as const;\n","import { RuleEngine } from '@dx-ui/utilities-url-config';\n\nimport {\n serverSideFeatureConfigsQuery,\n serverSideFeatureTogglesQuery,\n} from '@dx-ui/queries-dx-guests-ui';\n\nimport type { Rule } from '@dx-ui/utilities-url-config';\nimport type { QueryClient } from '@tanstack/react-query';\nimport type { FeatureConfigsQuery, FeatureTogglesQuery } from '@dx-ui/queries-dx-guests-ui';\nimport { logError, logWarning } from '@dx-ui/framework-logger';\nimport { generateError } from '@dx-ui/utilities-generate-error';\n\nexport const getRouteProtectedFeatureToggles = async (\n client: QueryClient,\n routeFlag: string,\n additionalFlags: string[] = []\n): Promise<{ featureToggles: FeatureTogglesQuery['featureToggles']; routeEnabled: boolean }> => {\n return await serverSideFeatureTogglesQuery(client, {\n flags: [routeFlag, ...additionalFlags],\n })\n .then((toggles) => {\n const routeEnabled = isFeatureEnabled(toggles?.featureToggles, routeFlag);\n if (!routeEnabled) {\n logWarning(\n 'FEATURE_TOGGLES',\n `route disabled for ${routeFlag}`,\n `attempted access to disabled route | flags: ${routeFlag} | additionalFlags: ${additionalFlags}`\n );\n }\n return {\n routeEnabled,\n featureToggles: toggles?.featureToggles,\n };\n })\n .catch((error) => {\n logError(\n 'FEATURE_TOGGLES',\n generateError(error),\n `Error on ${serverSideFeatureTogglesQuery.name} | flags: ${routeFlag} | additionalFlags: ${additionalFlags}`\n );\n return { featureToggles: [], routeEnabled: false };\n });\n};\n\nexport const useServerSideFeatureToggles = async (client: QueryClient, flags: string[] = []) => {\n return await serverSideFeatureTogglesQuery(client, { flags })\n .then((featureTogglesQuery) => {\n return featureTogglesQuery?.featureToggles;\n })\n .catch((error) => {\n logError(\n 'FEATURE_TOGGLES',\n generateError(error),\n `Error on ${useServerSideFeatureToggles.name} | flags: ${flags}`\n );\n });\n};\n\nexport const getSupportedLanguages = async ({\n client,\n locales,\n path,\n}: {\n client: QueryClient;\n locales: string[] | undefined;\n path: string;\n}) => {\n const configRules = await serverSideFeatureConfigsQuery(client, {\n names: ['rule-ui-translate-urls'],\n }).catch((e) => {\n logError('Error on serverSideFeatureConfigsQuery at utils/featureToggles: ', e);\n return {\n featureConfigs: [],\n } as FeatureConfigsQuery;\n });\n\n const ruleEngine = new RuleEngine(configRules?.featureConfigs?.[0] as Rule);\n return {\n supportedLanguages: locales?.filter((language) => ruleEngine?.run?.({ url: path, language })),\n configRules,\n };\n};\n\nexport const isFeatureEnabled = (\n toggles: FeatureTogglesQuery['featureToggles'],\n toggleName: string\n) => {\n try {\n return toggles.find(({ name }) => toggleName === name)?.enabled || false;\n } catch (error) {\n logError('FEATURE_TOGGLES', generateError(error), `toggles.find() | toggleName: ${toggleName}`);\n return false;\n }\n};\n","import { sendRewardAsync } from '@dx-ui/framework-conductrics';\nimport { logError } from '@dx-ui/framework-logger';\n\nimport { Goals } from '../../types/Conductrics';\n\nexport const GoalByCardName = {\n 'Hilton Honors': Goals.HonorsApplyNow,\n 'Hilton Honors Surpass®': Goals.SurpassApplyNow,\n 'Hilton Honors Aspire': Goals.AspireApplyNow,\n 'Hilton Honors Business': Goals.BusinessApplyNow,\n} as const;\n\nexport const sendConductricsReward = (goalID: ValuesOf<typeof Goals>) => {\n sendRewardAsync(goalID).catch((error) =>\n logError('sendRewardError', error, `Reward ID: ${goalID}`)\n );\n};\n","import { env } from '@dx-ui/framework-env';\nimport { defaultPageData } from '../../config/metrics/digitalData';\n\n// If pages have some sort of dynamic URI piece (password recovery token), exclude the last part in the title\nconst lastPartExclusions: string[] = ['password-recovery'];\n\nexport const capitalize = (s: string) => s && s.charAt(0).toUpperCase() + s.slice(1);\n\ntype PageNameProps = Omit<\n Partial<typeof defaultPageData>,\n 'pageCategory' | 'subSection' | 'subSubSection' | 'language'\n> & {\n pageCategory?: string;\n subSection?: string | null;\n subSubSection?: string | null;\n language?: string;\n};\n\n// Browser:EN:HiltonHonors:<Category>:<pageName>\n// Update 'guest' to 'account' to match GW\nexport const getPageName = (props: PageNameProps): string => {\n const language = props.language?.toUpperCase();\n const brandName = (props.brandName || defaultPageData.brandName).replace(' ', '');\n const pageName = props.pageName || defaultPageData.pageName;\n const category = props.pageCategory || props.subSection || defaultPageData.primaryCategory;\n const pageCategory = category === 'guest' ? 'account' : category;\n const primaryCategory = props.primaryCategory || defaultPageData.primaryCategory;\n const outputCategory =\n pageCategory === primaryCategory\n ? capitalize(pageCategory)\n : `${capitalize(primaryCategory)}:${capitalize(pageCategory)}`;\n return pageName === 'Confirmation'\n ? `Browser:${language}:${outputCategory}:${capitalize(pageName)}`\n : `Browser:${language}:${brandName}:${outputCategory}:${capitalize(pageName)}`;\n};\n\ntype CmsPageNameProps = {\n language?: string;\n brandName?: string;\n primaryCategory?: string;\n pageType?: string;\n pageDetail?: string[];\n};\n\nexport const getCmsPageName = (props: CmsPageNameProps) => {\n const language = props.language?.toUpperCase();\n const brandName = `${props.brandName}`.replace(' ', '');\n let pageName = `Browser:${language}:${brandName}:${props.primaryCategory}:${props.pageType}`;\n\n const pageDetails = props.pageDetail?.filter((detail) => !!detail);\n\n if (Array.isArray(pageDetails) && pageDetails.length) {\n pageName += `:${pageDetails.join(':')}`;\n }\n\n return pageName;\n};\n\n// Since pathname is based on the route definition,\n// remove duplicates and ensure uri part is truthy\nexport const getUriParts = (pathname: string): string[] => {\n if (pathname.length > 1) {\n return pathname.split('/').reduce((uriParts: string[], part: string) => {\n const parsedPart = part.split(/[?#]/)[0];\n if (parsedPart && !uriParts.includes(parsedPart)) {\n uriParts.push(parsedPart);\n }\n return uriParts;\n }, []);\n }\n\n return [pathname];\n};\n\nexport const getPageTitle = (pathname: string): string => {\n const parts = getUriParts(pathname);\n\n const index = lastPartExclusions.find((uriPart) => parts.includes(uriPart)) ? 2 : 1;\n const last = parts?.[parts.length - index]?.replace(/[[\\].]/g, '');\n\n if (last) {\n if (last === 'hilton-honors') return 'Home';\n return humanizePageTitle(last);\n }\n return '';\n};\n\n// Get page title based on dash case: my-honors-card => My Honors Card\nexport const humanizePageTitle = (title: string): string =>\n title.split('-').map(capitalize).join(' ');\n\nexport const formatLabel = (label: string): string => label.replace(/ /g, '').toLowerCase();\n\nexport const getAppVersion = () => {\n const parts = env('APP_VER').split('/');\n return parts[parts.length - 1];\n};\n","import type * as Types from '../../types/generated/types';\n\nimport {\n useQuery,\n useMutation,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n type UseMutationOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\nexport const StayRoomDetailsFragmentDoc = `\n fragment StayRoomDetails on StayHHonorsActivityRoomDetail {\n _id\n bonusPoints\n bonusPointsFmt\n cxlNumber\n guestActivityType\n roomSeries\n roomTypeName\n roomTypeNameFmt: roomTypeName @truncate(byWords: true, length: 3)\n bookAgainUrl\n usedPointsFmt(language: $language)\n transactions {\n transactionId\n transactionType\n partnerName\n baseEarningOption\n guestActivityPointsType\n description\n descriptionFmt: description @toTitleCase\n basePoints\n basePointsFmt\n bonusPoints\n bonusPointsFmt\n status\n usedPointsFmt(language: $language)\n }\n totalPoints\n totalPointsFmt(language: $language)\n viewFolioUrl(type: link)\n}\n `;\nexport const StayTransactionFragmentDoc = `\n fragment StayTransaction on StayHHonorsTransaction {\n transactionId\n transactionType\n partnerName\n baseEarningOption\n guestActivityPointsType\n description\n descriptionFmt: description @toTitleCase\n basePoints\n basePointsFmt\n bonusPoints\n bonusPointsFmt\n earnedPoints\n earnedPointsFmt\n status\n usedPoints\n usedPointsFmt(language: $language)\n hiltonForBusiness {\n _id\n h4bFlag\n h4bName\n }\n}\n `;\nexport const StayActivitySummaryFragmentDoc = `\n fragment StayActivitySummary on StayHHonorsActivitySummary {\n numRooms\n _id\n stayId\n arrivalDate\n departureDate\n hotelName\n desc\n descFmt: desc @toTitleCase\n guestActivityType\n ctyhocn\n brandCode\n roomDetails(sort: {by: roomSeries, order: asc}) {\n ...StayRoomDetails\n transactions {\n ...StayTransaction\n }\n }\n transactions {\n ...StayTransaction\n }\n bookAgainUrl\n checkinUrl\n confNumber\n cxlNumber\n timeframe\n lengthOfStay\n viewFolioUrl\n viewOrEditReservationUrl\n earnedPoints\n earnedPointsFmt\n totalPoints\n totalPointsFmt\n usedPoints\n usedPointsFmt\n}\n ${StayRoomDetailsFragmentDoc}\n${StayTransactionFragmentDoc}`;\nexport const FullWidthImageFragmentDoc = `\n fragment FullWidthImage on BrandPage {\n fullWidthImage {\n headline\n label\n shortDescription\n link {\n adaDescription\n isNewWindow\n label\n url\n campaignId\n }\n imageCompound {\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n }\n}\n `;\nexport const RotatingTilesFragmentDoc = `\n fragment RotatingTiles on BrandPage {\n rotatingTiles {\n description\n headline\n items {\n headline\n label\n shortDescription\n image {\n altText\n variants {\n size\n url\n }\n }\n label\n link {\n adaDescription\n isNewWindow\n campaignId\n label\n url\n }\n }\n }\n}\n `;\nexport const MosaicGridFragmentDoc = `\n fragment MosaicGrid on BrandPage {\n mosaicGrid {\n description\n headline\n id\n items {\n label\n headline\n shortDescription\n image {\n altText\n variants {\n size\n url\n }\n }\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n}\n `;\nexport const FourXGridFragmentDoc = `\n fragment FourXGrid on BrandPage {\n fourXGrid {\n headline\n description\n items {\n _id\n headline\n label\n shortDescription\n segmentIds\n link {\n adaDescription\n isNewWindow\n campaignId\n label\n url\n }\n imageCompound {\n expansionPanelImage {\n variants(sort: {by: size, order: desc}) {\n url\n size\n }\n }\n image {\n altText\n variants(sort: {by: size, order: desc}) {\n url\n size\n }\n }\n }\n }\n }\n}\n `;\nexport const StaysFieldsFragmentFragmentDoc = `\n fragment StaysFieldsFragment on StaySummary {\n id: confNumber\n arrivalDate\n arrivalDateFmt\n autoUpgradedStay\n bookingCode\n brandCode\n confNumber\n ctyhocn\n departureDate\n departureDateFmt\n desc\n guestBenefits {\n foodAndBeverageCreditBenefit {\n description\n linkLabel\n linkUrl\n }\n }\n isStayUpsell\n isStayUpsellOverAutoUpgrade\n lengthOfStay\n manageEligible\n originResId\n resCreateDate\n resCreateDateFmt\n resStatus\n stayId\n stayStatus\n bookAgainUrl\n viewOrEditReservationUrl\n showAutoUpgradeIndicator\n hotel {\n images {\n master(imageVariant: honorsPropertyImageThumbnail) {\n altText\n variants {\n size\n url\n }\n }\n carousel(imageVariant: searchPropertyCarousel) {\n altText\n variants {\n size\n url\n }\n }\n }\n ctyhocn\n name\n contactInfo {\n phoneNumber\n }\n display {\n treatments\n }\n galleryImages(sort: {by: seq, order: asc}) {\n alt\n src\n hiResSrc(width: $galleryImageWidth, height: $galleryImageHeight)\n }\n }\n}\n `;\nexport const ActivePromotionFragmentDoc = `\n fragment ActivePromotion on GuestHHonorsActivePromotion {\n promotionCode\n promotionCounters {\n promotionProgress\n promotionType\n }\n promotionDaysLeft\n promotionDescription: promotionAlternativeDescription\n promotionAlternativeDescriptionTruncated: promotionAlternativeDescription @truncate(length: 65)\n promotionEndDate\n promotionName\n termsAndConditions\n}\n `;\nexport const EligiblePromotionFragmentDoc = `\n fragment EligiblePromotion on GuestHHonorsEligiblePromotion {\n callCenterOnly\n endDate\n promotionCode\n promotionDescription: alternateDescription\n alternateDescriptionTruncated: alternateDescription @truncate(length: 65)\n promotionName\n termsAndConditions\n}\n `;\nexport const Guest_MissingStaysDocument = {\n operationName: 'guest_MissingStays',\n operationString: `query guest_MissingStays($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n hhonorsNumber\n }\n }\n}`,\n originalOpName: 'guest_MissingStays',\n};\nexport function useGuest_MissingStaysQuery<TData = Types.Guest_MissingStaysQuery, TError = DXError>(\n variables: Types.Guest_MissingStaysQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_MissingStaysQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_MissingStaysQuery, TError, TData>({\n queryKey: [Guest_MissingStaysDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_MissingStaysQuery(\n queryClient: QueryClient,\n variables: Types.Guest_MissingStaysQueryVariables,\n options?: FetchQueryOptions<Types.Guest_MissingStaysQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_MissingStaysQuery>({\n queryKey: [Guest_MissingStaysDocument, variables],\n ...options,\n });\n}\n\nexport const HotelDocument = {\n operationName: 'hotel',\n operationString: `query hotel($ctyhocn: String!, $language: String!) {\n hotel(ctyhocn: $ctyhocn, language: $language) {\n address {\n country\n state\n city\n addressFmt(format: \"stacked\")\n }\n localization {\n currencyCode\n }\n name\n brandCode\n }\n}`,\n originalOpName: 'hotel',\n};\nexport function useHotelQuery<TData = Types.HotelQuery, TError = DXError>(\n variables: Types.HotelQueryVariables,\n options?: Omit<UseQueryOptions<Types.HotelQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.HotelQuery, TError, TData>({\n queryKey: [HotelDocument, variables],\n ...options,\n });\n}\nexport function serverSideHotelQuery(\n queryClient: QueryClient,\n variables: Types.HotelQueryVariables,\n options?: FetchQueryOptions<Types.HotelQuery>\n) {\n return queryClient.fetchQuery<Types.HotelQuery>({\n queryKey: [HotelDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_GuestActivitySummaryOptions_HotelDocument = {\n operationName: 'guest_guestActivitySummaryOptions_hotel',\n operationString: `query guest_guestActivitySummaryOptions_hotel($guestId: BigInt!, $language: String!, $startDate: String!, $endDate: String!, $guestActivityTypes: [GuestActivityType], $sort: [StayHHonorsActivitySummarySortInput!], $first: Int, $after: String, $guestActivityDisplayType: GuestActivityDisplayType) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n summary {\n tierName\n totalPoints\n }\n }\n activitySummaryOptions(\n input: {groupMultiRoomStays: true, startDate: $startDate, endDate: $endDate, guestActivityTypes: $guestActivityTypes, guestActivityDisplayType: $guestActivityDisplayType}\n ) {\n _guestActivitiesSummary {\n totalSize\n size\n start\n end\n nextCursor\n prevCursor\n }\n guestActivitiesSummary(sort: $sort, first: $first, after: $after) {\n ...StayActivitySummary\n }\n }\n }\n}\n\n ${StayActivitySummaryFragmentDoc}`,\n originalOpName: 'guest_guestActivitySummaryOptions_hotel',\n};\nexport function useGuest_GuestActivitySummaryOptions_HotelQuery<\n TData = Types.Guest_GuestActivitySummaryOptions_HotelQuery,\n TError = DXError\n>(\n variables: Types.Guest_GuestActivitySummaryOptions_HotelQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Guest_GuestActivitySummaryOptions_HotelQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Guest_GuestActivitySummaryOptions_HotelQuery, TError, TData>({\n queryKey: [Guest_GuestActivitySummaryOptions_HotelDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_GuestActivitySummaryOptions_HotelQuery(\n queryClient: QueryClient,\n variables: Types.Guest_GuestActivitySummaryOptions_HotelQueryVariables,\n options?: FetchQueryOptions<Types.Guest_GuestActivitySummaryOptions_HotelQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_GuestActivitySummaryOptions_HotelQuery>({\n queryKey: [Guest_GuestActivitySummaryOptions_HotelDocument, variables],\n ...options,\n });\n}\n\nexport const Countries_AddressOptionsDocument = {\n operationName: 'countries_AddressOptions',\n operationString: `query countries_AddressOptions($language: String!, $code: String, $type: AddressOptionsAddressType) {\n countries(language: $language, filter: {code: $code}) {\n code\n name\n addressOptions(type: $type) {\n name\n label\n maxLength\n required\n }\n states(sort: {by: name, order: asc}) {\n value: code\n name\n }\n }\n}`,\n originalOpName: 'countries_AddressOptions',\n};\nexport function useCountries_AddressOptionsQuery<\n TData = Types.Countries_AddressOptionsQuery,\n TError = DXError\n>(\n variables: Types.Countries_AddressOptionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Countries_AddressOptionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Countries_AddressOptionsQuery, TError, TData>({\n queryKey: [Countries_AddressOptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideCountries_AddressOptionsQuery(\n queryClient: QueryClient,\n variables: Types.Countries_AddressOptionsQueryVariables,\n options?: FetchQueryOptions<Types.Countries_AddressOptionsQuery>\n) {\n return queryClient.fetchQuery<Types.Countries_AddressOptionsQuery>({\n queryKey: [Countries_AddressOptionsDocument, variables],\n ...options,\n });\n}\n\nexport const GeocodeDocument = {\n operationName: 'geocode',\n operationString: `query geocode($postalCode: String, $language: String!) {\n geocode(language: $language, postalCode: $postalCode) {\n match {\n address {\n city\n state\n }\n }\n }\n}`,\n originalOpName: 'geocode',\n};\nexport function useGeocodeQuery<TData = Types.GeocodeQuery, TError = DXError>(\n variables: Types.GeocodeQueryVariables,\n options?: Omit<UseQueryOptions<Types.GeocodeQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GeocodeQuery, TError, TData>({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocodeQuery(\n queryClient: QueryClient,\n variables: Types.GeocodeQueryVariables,\n options?: FetchQueryOptions<Types.GeocodeQuery>\n) {\n return queryClient.fetchQuery<Types.GeocodeQuery>({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CmsTextHeadlinerDocument = {\n operationName: 'brand_CmsTextHeadliner',\n operationString: `query brand_CmsTextHeadliner($language: String!, $path: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: $path) {\n textHeadliner {\n items {\n headline\n label\n segmentIds\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_CmsTextHeadliner',\n};\nexport function useBrand_CmsTextHeadlinerQuery<\n TData = Types.Brand_CmsTextHeadlinerQuery,\n TError = DXError\n>(\n variables: Types.Brand_CmsTextHeadlinerQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CmsTextHeadlinerQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CmsTextHeadlinerQuery, TError, TData>({\n queryKey: [Brand_CmsTextHeadlinerDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CmsTextHeadlinerQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CmsTextHeadlinerQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CmsTextHeadlinerQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CmsTextHeadlinerQuery>({\n queryKey: [Brand_CmsTextHeadlinerDocument, variables],\n ...options,\n });\n}\n\nexport const BrandDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $path: String!, $brandCode: String!) {\n brand(brandCode: $brandCode, language: $language) {\n page(path: $path) {\n fullWidthImage {\n caption\n captionLink\n headline\n id\n imageCompound {\n expansionPanelImage {\n altText\n variants {\n size\n url\n }\n }\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n label\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n segmentIds\n shortDescription\n attributes\n description\n }\n }\n }\n}`,\n originalOpName: 'brand',\n};\nexport function useBrandQuery<TData = Types.BrandQuery, TError = DXError>(\n variables: Types.BrandQueryVariables,\n options?: Omit<UseQueryOptions<Types.BrandQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.BrandQuery, TError, TData>({\n queryKey: [BrandDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandQuery(\n queryClient: QueryClient,\n variables: Types.BrandQueryVariables,\n options?: FetchQueryOptions<Types.BrandQuery>\n) {\n return queryClient.fetchQuery<Types.BrandQuery>({\n queryKey: [BrandDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_HiltonForBusinessDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $brandCode: String!, $path: String!) {\n brand(language: $language, brandCode: $brandCode) {\n page(path: $path) {\n textBlock {\n description {\n value\n }\n heading {\n value\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_HiltonForBusiness',\n};\nexport function useBrand_HiltonForBusinessQuery<\n TData = Types.Brand_HiltonForBusinessQuery,\n TError = DXError\n>(\n variables: Types.Brand_HiltonForBusinessQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_HiltonForBusinessQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_HiltonForBusinessQuery, TError, TData>({\n queryKey: [Brand_HiltonForBusinessDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_HiltonForBusinessQuery(\n queryClient: QueryClient,\n variables: Types.Brand_HiltonForBusinessQueryVariables,\n options?: FetchQueryOptions<Types.Brand_HiltonForBusinessQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_HiltonForBusinessQuery>({\n queryKey: [Brand_HiltonForBusinessDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_HotelBenefitsDocument = {\n operationName: 'brand_HotelBenefits',\n operationString: `query brand_HotelBenefits($language: String!, $path: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: $path) {\n textBlock {\n description {\n value\n }\n }\n tabbedIcons {\n headline\n description\n items {\n description\n iconType\n label\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_HotelBenefits',\n};\nexport function useBrand_HotelBenefitsQuery<\n TData = Types.Brand_HotelBenefitsQuery,\n TError = DXError\n>(\n variables: Types.Brand_HotelBenefitsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_HotelBenefitsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_HotelBenefitsQuery, TError, TData>({\n queryKey: [Brand_HotelBenefitsDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_HotelBenefitsQuery(\n queryClient: QueryClient,\n variables: Types.Brand_HotelBenefitsQueryVariables,\n options?: FetchQueryOptions<Types.Brand_HotelBenefitsQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_HotelBenefitsQuery>({\n queryKey: [Brand_HotelBenefitsDocument, variables],\n ...options,\n });\n}\n\nexport const BrandRewardProgramDocument = {\n operationName: 'brand',\n operationString: `query brand($brandCode: String!, $language: String!, $path: String!) {\n brand(brandCode: $brandCode, language: $language) {\n page(path: $path) {\n rotatingTiles {\n items {\n _id\n headline\n shortDescription\n }\n }\n multicolumnText {\n description\n headline\n subheading\n items {\n headline\n items {\n contentBlock {\n description {\n value\n }\n heading {\n value\n }\n }\n }\n }\n }\n imageHeadliner {\n items {\n headline\n label\n link {\n isNewWindow\n label\n url\n adaDescription\n campaignId\n }\n }\n }\n halfAndHalf {\n description\n headline\n items {\n headline\n shortDescription\n }\n }\n textBlock {\n id\n heading {\n value\n }\n description {\n value\n }\n }\n carousel {\n items {\n multimediaCompound {\n items {\n _id\n videoUrl\n videoName\n videoAutoPlay\n posterImageUrl\n orientation\n metadata {\n label\n url\n language\n type\n }\n }\n }\n headline\n link {\n campaignId\n isNewWindow\n adaDescription\n label\n url\n }\n shortDescription\n }\n }\n }\n }\n}`,\n originalOpName: 'brandRewardProgram',\n};\nexport function useBrandRewardProgramQuery<TData = Types.BrandRewardProgramQuery, TError = DXError>(\n variables: Types.BrandRewardProgramQueryVariables,\n options?: Omit<UseQueryOptions<Types.BrandRewardProgramQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.BrandRewardProgramQuery, TError, TData>({\n queryKey: [BrandRewardProgramDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandRewardProgramQuery(\n queryClient: QueryClient,\n variables: Types.BrandRewardProgramQueryVariables,\n options?: FetchQueryOptions<Types.BrandRewardProgramQuery>\n) {\n return queryClient.fetchQuery<Types.BrandRewardProgramQuery>({\n queryKey: [BrandRewardProgramDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_ThreeSixNineGridDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $brandCode: String!, $path: String!) {\n brand(language: $language, brandCode: $brandCode) {\n page(path: $path) {\n threeSixNineGrid {\n description\n headline\n items {\n _id\n headline\n label\n shortDescription\n segmentIds\n imageCompound {\n image {\n altText\n variants {\n size\n url\n }\n }\n expansionPanelImage {\n altText\n variants {\n size\n url\n }\n }\n }\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_ThreeSixNineGrid',\n};\nexport function useBrand_ThreeSixNineGridQuery<\n TData = Types.Brand_ThreeSixNineGridQuery,\n TError = DXError\n>(\n variables: Types.Brand_ThreeSixNineGridQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_ThreeSixNineGridQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_ThreeSixNineGridQuery, TError, TData>({\n queryKey: [Brand_ThreeSixNineGridDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_ThreeSixNineGridQuery(\n queryClient: QueryClient,\n variables: Types.Brand_ThreeSixNineGridQueryVariables,\n options?: FetchQueryOptions<Types.Brand_ThreeSixNineGridQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_ThreeSixNineGridQuery>({\n queryKey: [Brand_ThreeSixNineGridDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_UsePointsDocument = {\n operationName: 'brand_UsePoints',\n operationString: `query brand_UsePoints($language: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: \"member-home\") {\n pointsToolbar {\n description\n headline\n items {\n _id\n headline\n label\n shortDescription\n segmentIds\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n imageCompound {\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_UsePoints',\n};\nexport function useBrand_UsePointsQuery<TData = Types.Brand_UsePointsQuery, TError = DXError>(\n variables: Types.Brand_UsePointsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_UsePointsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_UsePointsQuery, TError, TData>({\n queryKey: [Brand_UsePointsDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_UsePointsQuery(\n queryClient: QueryClient,\n variables: Types.Brand_UsePointsQueryVariables,\n options?: FetchQueryOptions<Types.Brand_UsePointsQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_UsePointsQuery>({\n queryKey: [Brand_UsePointsDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_AlertDocument = {\n operationName: 'brand_Alert',\n operationString: `query brand_Alert($language: String!) {\n alerts: brand(brandCode: \"HH\", language: $language) {\n messages(sort: {by: startDateTime, order: desc}) {\n type\n headline\n content: shortDescription\n link {\n adaDescription\n isNewWindow\n label\n url\n }\n }\n }\n}`,\n originalOpName: 'brand_Alert',\n};\nexport function useBrand_AlertQuery<TData = Types.Brand_AlertQuery, TError = DXError>(\n variables: Types.Brand_AlertQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_AlertQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_AlertQuery, TError, TData>({\n queryKey: [Brand_AlertDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_AlertQuery(\n queryClient: QueryClient,\n variables: Types.Brand_AlertQueryVariables,\n options?: FetchQueryOptions<Types.Brand_AlertQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_AlertQuery>({\n queryKey: [Brand_AlertDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CmsAlertDocument = {\n operationName: 'brand_CmsAlert',\n operationString: `query brand_CmsAlert($language: String!, $path: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: $path) {\n textHeadliner {\n items {\n headline\n label\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_CmsAlert',\n};\nexport function useBrand_CmsAlertQuery<TData = Types.Brand_CmsAlertQuery, TError = DXError>(\n variables: Types.Brand_CmsAlertQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CmsAlertQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CmsAlertQuery, TError, TData>({\n queryKey: [Brand_CmsAlertDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CmsAlertQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CmsAlertQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CmsAlertQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CmsAlertQuery>({\n queryKey: [Brand_CmsAlertDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CmsImageHeadlinerDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $path: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: $path) {\n imageHeadliner {\n id\n items {\n id\n headline\n label\n segmentIds\n link {\n campaignId\n adaDescription\n isNewWindow\n label\n url\n }\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_CmsImageHeadliner',\n};\nexport function useBrand_CmsImageHeadlinerQuery<\n TData = Types.Brand_CmsImageHeadlinerQuery,\n TError = DXError\n>(\n variables: Types.Brand_CmsImageHeadlinerQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CmsImageHeadlinerQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CmsImageHeadlinerQuery, TError, TData>({\n queryKey: [Brand_CmsImageHeadlinerDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CmsImageHeadlinerQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CmsImageHeadlinerQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CmsImageHeadlinerQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CmsImageHeadlinerQuery>({\n queryKey: [Brand_CmsImageHeadlinerDocument, variables],\n ...options,\n });\n}\n\nexport const CmsBrandMemberDataDocument = {\n operationName: 'cmsBrandMemberData',\n operationString: `query cmsBrandMemberData($language: String!, $brandCode: String!) {\n brand(language: $language, brandCode: $brandCode) {\n page(path: \"guest::points\") {\n tabbedIcons {\n id\n description\n headline\n items {\n _id\n label\n iconType\n description\n headline\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n fourXGrid {\n headline\n description\n items {\n shortDescription\n headline\n _id\n link {\n _id\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n imageCompound {\n image {\n variants(filter: {size: md}) {\n size\n url\n }\n }\n }\n label\n caption\n segmentIds\n }\n }\n }\n }\n}`,\n originalOpName: 'cmsBrandMemberData',\n};\nexport function useCmsBrandMemberDataQuery<TData = Types.CmsBrandMemberDataQuery, TError = DXError>(\n variables: Types.CmsBrandMemberDataQueryVariables,\n options?: Omit<UseQueryOptions<Types.CmsBrandMemberDataQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CmsBrandMemberDataQuery, TError, TData>({\n queryKey: [CmsBrandMemberDataDocument, variables],\n ...options,\n });\n}\nexport function serverSideCmsBrandMemberDataQuery(\n queryClient: QueryClient,\n variables: Types.CmsBrandMemberDataQueryVariables,\n options?: FetchQueryOptions<Types.CmsBrandMemberDataQuery>\n) {\n return queryClient.fetchQuery<Types.CmsBrandMemberDataQuery>({\n queryKey: [CmsBrandMemberDataDocument, variables],\n ...options,\n });\n}\n\nexport const CmsFaqDocument = {\n operationName: 'faq',\n operationString: `query faq($language: String!, $faqType: FaqType!) {\n faq(language: $language, faqType: $faqType) {\n title\n subHeading\n shortDescription\n subTopic {\n subTopicName\n faqContent {\n _id\n question\n answer(format: md)\n answerOrderedList(format: md)\n answerUnorderedList(format: md)\n }\n }\n }\n}`,\n originalOpName: 'cmsFaq',\n};\nexport function useCmsFaqQuery<TData = Types.CmsFaqQuery, TError = DXError>(\n variables: Types.CmsFaqQueryVariables,\n options?: Omit<UseQueryOptions<Types.CmsFaqQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CmsFaqQuery, TError, TData>({\n queryKey: [CmsFaqDocument, variables],\n ...options,\n });\n}\nexport function serverSideCmsFaqQuery(\n queryClient: QueryClient,\n variables: Types.CmsFaqQueryVariables,\n options?: FetchQueryOptions<Types.CmsFaqQuery>\n) {\n return queryClient.fetchQuery<Types.CmsFaqQuery>({\n queryKey: [CmsFaqDocument, variables],\n ...options,\n });\n}\n\nexport const CmsPolicyDocument = {\n operationName: 'policy',\n operationString: `query policy($language: String!, $policy: PolicyDocumentType!) {\n policy(language: $language, policyDocumentType: $policy) {\n name\n description\n shortDescription\n content {\n _id\n description(format: md)\n heading(format: md)\n orderedList(format: md)\n unorderedList(format: md)\n }\n }\n}`,\n originalOpName: 'cmsPolicy',\n};\nexport function useCmsPolicyQuery<TData = Types.CmsPolicyQuery, TError = DXError>(\n variables: Types.CmsPolicyQueryVariables,\n options?: Omit<UseQueryOptions<Types.CmsPolicyQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CmsPolicyQuery, TError, TData>({\n queryKey: [CmsPolicyDocument, variables],\n ...options,\n });\n}\nexport function serverSideCmsPolicyQuery(\n queryClient: QueryClient,\n variables: Types.CmsPolicyQueryVariables,\n options?: FetchQueryOptions<Types.CmsPolicyQuery>\n) {\n return queryClient.fetchQuery<Types.CmsPolicyQuery>({\n queryKey: [CmsPolicyDocument, variables],\n ...options,\n });\n}\n\nexport const Countries_SubscriptionsDocument = {\n operationName: 'countries_Subscriptions',\n operationString: `query countries_Subscriptions($countryFilter: CountryFilterInput, $language: String!) {\n countries(filter: $countryFilter, first: 1, language: $language) {\n name\n code\n dataSubjectRights\n marketingConsent\n marketingOptIn\n marketingOptInForHGV\n }\n}`,\n originalOpName: 'countries_Subscriptions',\n};\nexport function useCountries_SubscriptionsQuery<\n TData = Types.Countries_SubscriptionsQuery,\n TError = DXError\n>(\n variables: Types.Countries_SubscriptionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Countries_SubscriptionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Countries_SubscriptionsQuery, TError, TData>({\n queryKey: [Countries_SubscriptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideCountries_SubscriptionsQuery(\n queryClient: QueryClient,\n variables: Types.Countries_SubscriptionsQueryVariables,\n options?: FetchQueryOptions<Types.Countries_SubscriptionsQuery>\n) {\n return queryClient.fetchQuery<Types.Countries_SubscriptionsQuery>({\n queryKey: [Countries_SubscriptionsDocument, variables],\n ...options,\n });\n}\n\nexport const CountriesDocument = {\n operationName: 'countries',\n operationString: `query countries($language: String!, $CountrySortInput: [CountrySortInput!]) {\n countries(\n language: $language\n sort: $CountrySortInput\n filter: {prohibited: false}\n ) {\n name: displayName\n callingCode\n code\n }\n}`,\n originalOpName: 'countries',\n};\nexport function useCountriesQuery<TData = Types.CountriesQuery, TError = DXError>(\n variables: Types.CountriesQueryVariables,\n options?: Omit<UseQueryOptions<Types.CountriesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CountriesQuery, TError, TData>({\n queryKey: [CountriesDocument, variables],\n ...options,\n });\n}\nexport function serverSideCountriesQuery(\n queryClient: QueryClient,\n variables: Types.CountriesQueryVariables,\n options?: FetchQueryOptions<Types.CountriesQuery>\n) {\n return queryClient.fetchQuery<Types.CountriesQuery>({\n queryKey: [CountriesDocument, variables],\n ...options,\n });\n}\n\nexport const CreateGuest2FaDocument = {\n operationName: 'createGuest2FA',\n operationString: `mutation createGuest2FA($deliveryId: Int!, $deliveryMethod: Guest2FADeliveryMethod!, $guestId: BigInt!, $language: String!, $totp: String) {\n createGuest2FA(\n deliveryId: $deliveryId\n deliveryMethod: $deliveryMethod\n guestId: $guestId\n language: $language\n totp: $totp\n ) {\n data\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuest2FA',\n};\nexport function useCreateGuest2FaMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuest2FaMutation,\n TError,\n [typeof CreateGuest2FaDocument, Types.CreateGuest2FaMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuest2FaMutation,\n TError,\n [typeof CreateGuest2FaDocument, Types.CreateGuest2FaMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestCombineAccountsDocument = {\n operationName: 'createGuestCombineAccounts',\n operationString: `mutation createGuestCombineAccounts($input: GuestCombineAccountsInput!) {\n createGuestCombineAccounts(input: $input) {\n data\n error {\n message\n }\n }\n}`,\n originalOpName: 'createGuestCombineAccounts',\n};\nexport function useCreateGuestCombineAccountsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestCombineAccountsMutation,\n TError,\n [typeof CreateGuestCombineAccountsDocument, Types.CreateGuestCombineAccountsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestCombineAccountsMutation,\n TError,\n [typeof CreateGuestCombineAccountsDocument, Types.CreateGuestCombineAccountsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestGdprDocument = {\n operationName: 'createGuestGdpr',\n operationString: `mutation createGuestGdpr($language: String!, $guestGdprInput: GuestGdprInput!, $recaptchaInput: RecaptchaInput) {\n createGuestGdpr(\n language: $language\n guestGdprInput: $guestGdprInput\n recaptchaInput: $recaptchaInput\n ) {\n data\n error {\n message\n code\n }\n }\n}`,\n originalOpName: 'createGuestGdpr',\n};\nexport function useCreateGuestGdprMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestGdprMutation,\n TError,\n [typeof CreateGuestGdprDocument, Types.CreateGuestGdprMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestGdprMutation,\n TError,\n [typeof CreateGuestGdprDocument, Types.CreateGuestGdprMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestMissingStayDocument = {\n operationName: 'createGuestMissingStay',\n operationString: `mutation createGuestMissingStay($input: GuestMissingStayInput!) {\n createGuestMissingStay(input: $input) {\n data\n error {\n message\n }\n notifications {\n message\n title\n }\n }\n}`,\n originalOpName: 'createGuestMissingStay',\n};\nexport function useCreateGuestMissingStayMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestMissingStayMutation,\n TError,\n [typeof CreateGuestMissingStayDocument, Types.CreateGuestMissingStayMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestMissingStayMutation,\n TError,\n [typeof CreateGuestMissingStayDocument, Types.CreateGuestMissingStayMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestPointsRedemptionDocument = {\n operationName: 'createGuestPointsRedemption',\n operationString: `mutation createGuestPointsRedemption($guestId: BigInt!, $input: GuestHHonorsPointsRedemptionInput!, $mfaInput: MFAInput) {\n createGuestPointsRedemption(\n guestId: $guestId\n input: $input\n mfaInput: $mfaInput\n ) {\n data\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuestPointsRedemption',\n};\nexport function useCreateGuestPointsRedemptionMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestPointsRedemptionMutation,\n TError,\n [\n typeof CreateGuestPointsRedemptionDocument,\n Types.CreateGuestPointsRedemptionMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestPointsRedemptionMutation,\n TError,\n [\n typeof CreateGuestPointsRedemptionDocument,\n Types.CreateGuestPointsRedemptionMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestPriceMatchGuaranteeDocument = {\n operationName: 'createGuestPriceMatchGuarantee',\n operationString: `mutation createGuestPriceMatchGuarantee($input: GuestPriceMatchGuaranteeInput!) {\n createGuestPriceMatchGuarantee(input: $input) {\n data\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuestPriceMatchGuarantee',\n};\nexport function useCreateGuestPriceMatchGuaranteeMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestPriceMatchGuaranteeMutation,\n TError,\n [\n typeof CreateGuestPriceMatchGuaranteeDocument,\n Types.CreateGuestPriceMatchGuaranteeMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestPriceMatchGuaranteeMutation,\n TError,\n [\n typeof CreateGuestPriceMatchGuaranteeDocument,\n Types.CreateGuestPriceMatchGuaranteeMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestPromoRegistrationDocument = {\n operationName: 'createGuestPromoRegistration',\n operationString: `mutation createGuestPromoRegistration($guestId: BigInt!, $promotionCode: String!) {\n createGuestPromoRegistration(guestId: $guestId, promotionCode: $promotionCode) {\n data {\n active(filter: {promotionCode: $promotionCode}) {\n promotionCode\n promotionCounters {\n promotionProgress\n promotionType\n }\n promotionDaysLeft\n promotionDescription: promotionAlternativeDescription\n promotionAlternativeDescriptionTruncated: promotionAlternativeDescription @truncate(length: 65)\n promotionEndDate\n promotionName\n termsAndConditions\n }\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuestPromoRegistration',\n};\nexport function useCreateGuestPromoRegistrationMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestPromoRegistrationMutation,\n TError,\n [\n typeof CreateGuestPromoRegistrationDocument,\n Types.CreateGuestPromoRegistrationMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestPromoRegistrationMutation,\n TError,\n [\n typeof CreateGuestPromoRegistrationDocument,\n Types.CreateGuestPromoRegistrationMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestSharePersonalInfoOptOutDocument = {\n operationName: 'createGuestSharePersonalInfoOptOut',\n operationString: `mutation createGuestSharePersonalInfoOptOut($input: GuestSharePersonalInfoOptOutInput!, $language: String!) {\n createGuestSharePersonalInfoOptOut(language: $language, input: $input) {\n data\n error {\n message\n code\n }\n }\n}`,\n originalOpName: 'createGuestSharePersonalInfoOptOut',\n};\nexport function useCreateGuestSharePersonalInfoOptOutMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestSharePersonalInfoOptOutMutation,\n TError,\n [\n typeof CreateGuestSharePersonalInfoOptOutDocument,\n Types.CreateGuestSharePersonalInfoOptOutMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestSharePersonalInfoOptOutMutation,\n TError,\n [\n typeof CreateGuestSharePersonalInfoOptOutDocument,\n Types.CreateGuestSharePersonalInfoOptOutMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreditCardOffersDocument = {\n operationName: 'creditCardOffers',\n operationString: `query creditCardOffers($language: String!) {\n creditCardOffers(language: $language) {\n description\n headline\n cardName\n cardType\n items {\n cardName\n cardType\n attributes\n offerDescription\n offerTitle\n segmentIds\n builtinBenefitsBlocks {\n description\n heading\n orderedList\n unorderedList\n }\n cardBreakdownBlocks {\n description\n heading\n orderedList\n unorderedList\n }\n earningPointsBlocks {\n description\n heading\n orderedList\n unorderedList\n }\n feeDescription\n images {\n altText\n brandCodes\n image {\n image {\n variants {\n tabs(sort: {by: name}) {\n cdnLink\n name\n }\n }\n }\n }\n }\n link {\n adaDescription\n campaignId\n isNewWindow\n linkLabel\n linkUrl\n }\n }\n }\n}`,\n originalOpName: 'creditCardOffers',\n};\nexport function useCreditCardOffersQuery<TData = Types.CreditCardOffersQuery, TError = DXError>(\n variables: Types.CreditCardOffersQueryVariables,\n options?: Omit<UseQueryOptions<Types.CreditCardOffersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CreditCardOffersQuery, TError, TData>({\n queryKey: [CreditCardOffersDocument, variables],\n ...options,\n });\n}\nexport function serverSideCreditCardOffersQuery(\n queryClient: QueryClient,\n variables: Types.CreditCardOffersQueryVariables,\n options?: FetchQueryOptions<Types.CreditCardOffersQuery>\n) {\n return queryClient.fetchQuery<Types.CreditCardOffersQuery>({\n queryKey: [CreditCardOffersDocument, variables],\n ...options,\n });\n}\n\nexport const CreditCardTypesDocument = {\n operationName: 'creditCardTypes',\n operationString: `query creditCardTypes($language: String!) {\n creditCardTypes(language: $language, filter: {hhonors: true}) {\n code\n name\n }\n}`,\n originalOpName: 'creditCardTypes',\n};\nexport function useCreditCardTypesQuery<TData = Types.CreditCardTypesQuery, TError = DXError>(\n variables: Types.CreditCardTypesQueryVariables,\n options?: Omit<UseQueryOptions<Types.CreditCardTypesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CreditCardTypesQuery, TError, TData>({\n queryKey: [CreditCardTypesDocument, variables],\n ...options,\n });\n}\nexport function serverSideCreditCardTypesQuery(\n queryClient: QueryClient,\n variables: Types.CreditCardTypesQueryVariables,\n options?: FetchQueryOptions<Types.CreditCardTypesQuery>\n) {\n return queryClient.fetchQuery<Types.CreditCardTypesQuery>({\n queryKey: [CreditCardTypesDocument, variables],\n ...options,\n });\n}\n\nexport const CurrenciesDocument = {\n operationName: 'currencies',\n operationString: `query currencies($language: String) {\n currencies(language: $language, sort: {by: numericCode, order: asc}) {\n description\n currencyCode\n }\n}`,\n originalOpName: 'currencies',\n};\nexport function useCurrenciesQuery<TData = Types.CurrenciesQuery, TError = DXError>(\n variables: Types.CurrenciesQueryVariables | null = null,\n options?: Omit<UseQueryOptions<Types.CurrenciesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CurrenciesQuery, TError, TData>({\n queryKey: [CurrenciesDocument, variables],\n ...options,\n });\n}\nexport function serverSideCurrenciesQuery(\n queryClient: QueryClient,\n variables: Types.CurrenciesQueryVariables | null = null,\n options?: FetchQueryOptions<Types.CurrenciesQuery>\n) {\n return queryClient.fetchQuery<Types.CurrenciesQuery>({\n queryKey: [CurrenciesDocument, variables],\n ...options,\n });\n}\n\nexport const Languages_DefaultCountryCodeDocument = {\n operationName: 'languages_defaultCountryCode',\n operationString: `query languages_defaultCountryCode($language: String!) {\n languages(language: $language, filter: {languageCodeOHW: $language}) {\n defaultCountryCode\n }\n}`,\n originalOpName: 'languages_defaultCountryCode',\n};\nexport function useLanguages_DefaultCountryCodeQuery<\n TData = Types.Languages_DefaultCountryCodeQuery,\n TError = DXError\n>(\n variables: Types.Languages_DefaultCountryCodeQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Languages_DefaultCountryCodeQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Languages_DefaultCountryCodeQuery, TError, TData>({\n queryKey: [Languages_DefaultCountryCodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideLanguages_DefaultCountryCodeQuery(\n queryClient: QueryClient,\n variables: Types.Languages_DefaultCountryCodeQueryVariables,\n options?: FetchQueryOptions<Types.Languages_DefaultCountryCodeQuery>\n) {\n return queryClient.fetchQuery<Types.Languages_DefaultCountryCodeQuery>({\n queryKey: [Languages_DefaultCountryCodeDocument, variables],\n ...options,\n });\n}\n\nexport const DeleteGuest2FaDocument = {\n operationName: 'deleteGuest2FA',\n operationString: `mutation deleteGuest2FA($deliveryId: Int!, $deliveryMethod: Guest2FADeliveryMethod!, $guestId: BigInt!, $language: String!, $totp: String) {\n deleteGuest2FA(\n deliveryId: $deliveryId\n deliveryMethod: $deliveryMethod\n guestId: $guestId\n language: $language\n totp: $totp\n ) {\n data\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'deleteGuest2FA',\n};\nexport function useDeleteGuest2FaMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuest2FaMutation,\n TError,\n [typeof DeleteGuest2FaDocument, Types.DeleteGuest2FaMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuest2FaMutation,\n TError,\n [typeof DeleteGuest2FaDocument, Types.DeleteGuest2FaMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestAccountDocument = {\n operationName: 'deleteGuestAccount',\n operationString: `mutation deleteGuestAccount($guestId: BigInt!, $input: GuestDeleteAccountInput!, $language: String!) {\n deleteGuestAccount(guestId: $guestId, language: $language, input: $input) {\n data\n error {\n code\n message\n message_noTx: message\n }\n }\n}`,\n originalOpName: 'deleteGuestAccount',\n};\nexport function useDeleteGuestAccountMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestAccountMutation,\n TError,\n [typeof DeleteGuestAccountDocument, Types.DeleteGuestAccountMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestAccountMutation,\n TError,\n [typeof DeleteGuestAccountDocument, Types.DeleteGuestAccountMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestAddressDocument = {\n operationName: 'deleteGuestAddress',\n operationString: `mutation deleteGuestAddress($addressId: Int!, $guestId: BigInt!, $language: String!) {\n deleteGuestAddress(\n addressId: $addressId\n guestId: $guestId\n language: $language\n ) {\n data {\n addressId\n }\n error {\n code\n }\n }\n}`,\n originalOpName: 'deleteGuestAddress',\n};\nexport function useDeleteGuestAddressMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestAddressMutation,\n TError,\n [typeof DeleteGuestAddressDocument, Types.DeleteGuestAddressMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestAddressMutation,\n TError,\n [typeof DeleteGuestAddressDocument, Types.DeleteGuestAddressMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestEmailDocument = {\n operationName: 'deleteGuestEmail',\n operationString: `mutation deleteGuestEmail($emailId: Int!, $guestId: BigInt!, $language: String!, $totp: String!) {\n deleteGuestEmail(\n emailId: $emailId\n guestId: $guestId\n language: $language\n mfaInput: {totp: $totp}\n ) {\n data {\n emailId\n }\n error {\n code\n message\n message_noTx: message\n notifications {\n code\n message\n }\n }\n }\n}`,\n originalOpName: 'deleteGuestEmail',\n};\nexport function useDeleteGuestEmailMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestEmailMutation,\n TError,\n [typeof DeleteGuestEmailDocument, Types.DeleteGuestEmailMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestEmailMutation,\n TError,\n [typeof DeleteGuestEmailDocument, Types.DeleteGuestEmailMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestPaymentMethodDocument = {\n operationName: 'deleteGuestPaymentMethod',\n operationString: `mutation deleteGuestPaymentMethod($guestId: BigInt!, $language: String!, $paymentId: Int!) {\n deleteGuestPaymentMethod(\n guestId: $guestId\n language: $language\n paymentId: $paymentId\n ) {\n data {\n cardNumberMasked\n }\n error {\n code\n notifications {\n message\n }\n }\n }\n}`,\n originalOpName: 'deleteGuestPaymentMethod',\n};\nexport function useDeleteGuestPaymentMethodMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestPaymentMethodMutation,\n TError,\n [typeof DeleteGuestPaymentMethodDocument, Types.DeleteGuestPaymentMethodMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestPaymentMethodMutation,\n TError,\n [typeof DeleteGuestPaymentMethodDocument, Types.DeleteGuestPaymentMethodMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestPhoneDocument = {\n operationName: 'deleteGuestPhone',\n operationString: `mutation deleteGuestPhone($phoneId: Int!, $guestId: BigInt!, $language: String!, $totp: String!) {\n deleteGuestPhone(\n phoneId: $phoneId\n guestId: $guestId\n language: $language\n mfaInput: {totp: $totp}\n ) {\n data {\n phoneId\n }\n error {\n code\n message\n message_noTx: message\n notifications {\n code\n message\n }\n }\n }\n}`,\n originalOpName: 'deleteGuestPhone',\n};\nexport function useDeleteGuestPhoneMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestPhoneMutation,\n TError,\n [typeof DeleteGuestPhoneDocument, Types.DeleteGuestPhoneMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestPhoneMutation,\n TError,\n [typeof DeleteGuestPhoneDocument, Types.DeleteGuestPhoneMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Guest_SubscriptionsDocument = {\n operationName: 'guest_Subscriptions',\n operationString: `query guest_Subscriptions($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n hhonors {\n hhonorsNumber\n summary {\n tier\n tierName\n }\n }\n personalinfo {\n emails(filter: {preferred: true}) {\n emailAddressMasked\n }\n addresses(filter: {preferred: true}) {\n postalCode\n countryName\n country\n }\n }\n subscriptions {\n optOuts {\n survey\n marketing\n global\n }\n marketingSubscriptions\n hhonorsSubscriptions\n }\n }\n}`,\n originalOpName: 'guest_Subscriptions',\n};\nexport function useGuest_SubscriptionsQuery<\n TData = Types.Guest_SubscriptionsQuery,\n TError = DXError\n>(\n variables: Types.Guest_SubscriptionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_SubscriptionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_SubscriptionsQuery, TError, TData>({\n queryKey: [Guest_SubscriptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_SubscriptionsQuery(\n queryClient: QueryClient,\n variables: Types.Guest_SubscriptionsQueryVariables,\n options?: FetchQueryOptions<Types.Guest_SubscriptionsQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_SubscriptionsQuery>({\n queryKey: [Guest_SubscriptionsDocument, variables],\n ...options,\n });\n}\n\nexport const FeatureConfigsDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs($names: [String!]) {\n featureConfigs(names: $names) {\n id: name\n name\n conditions\n config\n }\n}`,\n originalOpName: 'featureConfigs',\n};\nexport function useFeatureConfigsQuery<TData = Types.FeatureConfigsQuery, TError = DXError>(\n variables: Types.FeatureConfigsQueryVariables | null = null,\n options?: Omit<UseQueryOptions<Types.FeatureConfigsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FeatureConfigsQuery, TError, TData>({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureConfigsQuery(\n queryClient: QueryClient,\n variables: Types.FeatureConfigsQueryVariables | null = null,\n options?: FetchQueryOptions<Types.FeatureConfigsQuery>\n) {\n return queryClient.fetchQuery<Types.FeatureConfigsQuery>({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\n\nexport const FeatureTogglesDocument = {\n operationName: 'featureToggles',\n operationString: `query featureToggles($flags: [String]!) {\n featureToggles(names: $flags) {\n name\n enabled\n }\n}`,\n originalOpName: 'featureToggles',\n};\nexport function useFeatureTogglesQuery<TData = Types.FeatureTogglesQuery, TError = DXError>(\n variables: Types.FeatureTogglesQueryVariables,\n options?: Omit<UseQueryOptions<Types.FeatureTogglesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FeatureTogglesQuery, TError, TData>({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureTogglesQuery(\n queryClient: QueryClient,\n variables: Types.FeatureTogglesQueryVariables,\n options?: FetchQueryOptions<Types.FeatureTogglesQuery>\n) {\n return queryClient.fetchQuery<Types.FeatureTogglesQuery>({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\n\nexport const Geocode_AddressDocument = {\n operationName: 'geocode_address',\n operationString: `query geocode_address($address: String, $language: String!, $placeId: String, $sessionToken: String) {\n geocode(\n language: $language\n address: $address\n placeId: $placeId\n sessionToken: $sessionToken\n ) {\n match {\n id\n name\n placeUri\n type\n }\n }\n}`,\n originalOpName: 'geocode_address',\n};\nexport function useGeocode_AddressQuery<TData = Types.Geocode_AddressQuery, TError = DXError>(\n variables: Types.Geocode_AddressQueryVariables,\n options?: Omit<UseQueryOptions<Types.Geocode_AddressQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Geocode_AddressQuery, TError, TData>({\n queryKey: [Geocode_AddressDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocode_AddressQuery(\n queryClient: QueryClient,\n variables: Types.Geocode_AddressQueryVariables,\n options?: FetchQueryOptions<Types.Geocode_AddressQuery>\n) {\n return queryClient.fetchQuery<Types.Geocode_AddressQuery>({\n queryKey: [Geocode_AddressDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CountriesDocument = {\n operationName: 'brand_countries',\n operationString: `query brand_countries($after: String, $containsHotels: Boolean, $first: Int, $language: String!, $countryFilter: CountryFilterInput, $regionFilter: CountryStateFilterInput, $cityFilter: CountryCityFilterInput, $getStates: Boolean = false, $getCities: Boolean = false, $getMarketing: Boolean = false, $getCCSMarketing: Boolean = false) {\n countries(\n after: $after\n containsHotels: $containsHotels\n filter: $countryFilter\n first: $first\n language: $language\n sort: {by: name}\n ) {\n code\n callingCode\n dataSubjectRights\n marketingConsent @include(if: $getMarketing)\n marketingOptIn @include(if: $getMarketing)\n marketingOptInForHGV @include(if: $getMarketing)\n marketingOptin @include(if: $getCCSMarketing) {\n dataSubjectRights\n marketingOptinRules {\n category\n optIns {\n autoOptIn\n _id\n customerTextExternal\n name\n subscriptionCodes\n termsAndConditionsBook\n termsAndConditionsJoin\n }\n }\n }\n name: displayName\n states(filter: $regionFilter) @include(if: $getStates) {\n name\n code\n personalDataRequest\n value: code\n cities(filter: $cityFilter, sort: {by: name, order: asc}) @include(if: $getCities) {\n name\n value: name\n brandCodes\n }\n }\n cities(filter: $cityFilter, onlyIfNoStates: true, sort: {by: name, order: asc}) @include(if: $getCities) {\n name\n value: name\n brandCodes\n }\n }\n}`,\n originalOpName: 'brand_countries',\n};\nexport function useBrand_CountriesQuery<TData = Types.Brand_CountriesQuery, TError = DXError>(\n variables: Types.Brand_CountriesQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CountriesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CountriesQuery, TError, TData>({\n queryKey: [Brand_CountriesDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CountriesQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CountriesQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CountriesQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CountriesQuery>({\n queryKey: [Brand_CountriesDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_NonMemberDocument = {\n operationName: 'brand_NonMember',\n operationString: `query brand_NonMember($brandCode: String!, $language: String!, $shouldIncludeFourXGrid: Boolean!) {\n brand(brandCode: $brandCode, language: $language) {\n page(path: \"/\") {\n ...FullWidthImage\n ...RotatingTiles\n ...MosaicGrid\n ...FourXGrid @include(if: $shouldIncludeFourXGrid)\n }\n }\n}\n\n ${FullWidthImageFragmentDoc}\n${RotatingTilesFragmentDoc}\n${MosaicGridFragmentDoc}\n${FourXGridFragmentDoc}`,\n originalOpName: 'brand_NonMember',\n};\nexport function useBrand_NonMemberQuery<TData = Types.Brand_NonMemberQuery, TError = DXError>(\n variables: Types.Brand_NonMemberQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_NonMemberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_NonMemberQuery, TError, TData>({\n queryKey: [Brand_NonMemberDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_NonMemberQuery(\n queryClient: QueryClient,\n variables: Types.Brand_NonMemberQueryVariables,\n options?: FetchQueryOptions<Types.Brand_NonMemberQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_NonMemberQuery>({\n queryKey: [Brand_NonMemberDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHiltonHonorsNumberDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n hhonorsNumber\n isOwner\n isTeamMember\n packages {\n packageName\n }\n isSMBMember\n summary {\n tier\n tierName\n totalPoints\n totalPointsFmt\n }\n }\n }\n}`,\n originalOpName: 'guestHiltonHonorsNumber',\n};\nexport function useGuestHiltonHonorsNumberQuery<\n TData = Types.GuestHiltonHonorsNumberQuery,\n TError = DXError\n>(\n variables: Types.GuestHiltonHonorsNumberQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHiltonHonorsNumberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHiltonHonorsNumberQuery, TError, TData>({\n queryKey: [GuestHiltonHonorsNumberDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHiltonHonorsNumberQuery(\n queryClient: QueryClient,\n variables: Types.GuestHiltonHonorsNumberQueryVariables,\n options?: FetchQueryOptions<Types.GuestHiltonHonorsNumberQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHiltonHonorsNumberQuery>({\n queryKey: [GuestHiltonHonorsNumberDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHonorsCardDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n expireDate\n expireDateFmt\n expireDateFmtAccessible: expireDateFmt(format: \"long\", language: $language)\n hhonorsNumber\n isOwnerHGV\n virtualCard {\n cardTier\n cardHeader\n extendedTier\n }\n }\n personalinfo {\n addlName {\n nameFmt\n }\n }\n }\n}`,\n originalOpName: 'guestHonorsCard',\n};\nexport function useGuestHonorsCardQuery<TData = Types.GuestHonorsCardQuery, TError = DXError>(\n variables: Types.GuestHonorsCardQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHonorsCardQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHonorsCardQuery, TError, TData>({\n queryKey: [GuestHonorsCardDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHonorsCardQuery(\n queryClient: QueryClient,\n variables: Types.GuestHonorsCardQueryVariables,\n options?: FetchQueryOptions<Types.GuestHonorsCardQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHonorsCardQuery>({\n queryKey: [GuestHonorsCardDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHotelBenefitsPageDocument = {\n operationName: 'brand_guest_guestStays_hotel',\n operationString: `query brand_guest_guestStays_hotel($language: String!, $guestId: BigInt!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n hhonors {\n hhonorsNumber\n summary {\n tier\n tierName\n totalPointsFmt\n }\n }\n hotelBenefitOptions(filter: {brandCode_not: \"WW\"}) {\n brandCode\n brandHeaderText(format: md)\n brandInstructionsText(format: md)\n benefits {\n benefitId\n description\n disabled\n inputType\n selected\n maxNumBenefits\n benefits {\n benefitId\n description\n inputType\n selected\n disabled\n benefits {\n benefitId\n }\n }\n }\n }\n preferences {\n benefitprefs {\n benefitGroup\n benefitId\n benefitValue\n brandCode\n }\n }\n stays(limit: 1, timeframe: future) {\n arrivalDate\n departureDate\n lengthOfStay\n guestBenefits {\n hotelBenefitSummary {\n headline1 @toLowerCase\n headline2 @toLowerCase\n headline3 @toLowerCase\n items {\n _id\n description\n selected\n }\n }\n }\n hotel {\n brand {\n code\n formalName\n }\n images {\n master(imageVariant: galleryThumbnail) {\n altText\n variants(filter: {size: md}) {\n url\n }\n }\n }\n name\n }\n }\n }\n}`,\n originalOpName: 'guestHotelBenefitsPage',\n};\nexport function useGuestHotelBenefitsPageQuery<\n TData = Types.GuestHotelBenefitsPageQuery,\n TError = DXError\n>(\n variables: Types.GuestHotelBenefitsPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHotelBenefitsPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHotelBenefitsPageQuery, TError, TData>({\n queryKey: [GuestHotelBenefitsPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHotelBenefitsPageQuery(\n queryClient: QueryClient,\n variables: Types.GuestHotelBenefitsPageQueryVariables,\n options?: FetchQueryOptions<Types.GuestHotelBenefitsPageQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHotelBenefitsPageQuery>({\n queryKey: [GuestHotelBenefitsPageDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_Hotel_MyAccountDocument = {\n operationName: 'guest_hotel_MyAccount',\n operationString: `query guest_hotel_MyAccount($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n personalinfo {\n emails {\n validated\n }\n phones {\n validated\n }\n hasUSAddress: hasAddressWithCountry(countryCodes: [\"US\"])\n }\n hhonors {\n hhonorsNumber\n isTeamMember\n isLifetimeDiamond\n isSMBMember\n isOwner\n isOwnerHGV\n isAmexCardHolder\n summary {\n tier\n tierName\n nextTier\n requalTier\n pointsExpiration\n tierExpiration\n nextTierName\n totalPointsFmt\n qualifiedNights\n qualifiedNightsNext\n qualifiedPoints\n qualifiedPointsNext\n qualifiedPointsFmt\n qualifiedPointsNextFmt\n qualifiedNightsMaint\n rolledOverNights\n showRequalMaintainMessage\n showRequalDowngradeMessage\n milestones {\n applicableNights\n bonusPoints\n bonusPointsFmt\n bonusPointsNext\n bonusPointsNextFmt\n maxBonusPoints\n maxBonusPointsFmt\n maxNights\n nightsNext\n showMilestoneBonusMessage\n }\n }\n amexCoupons {\n _available {\n totalSize\n }\n _held {\n totalSize\n }\n _used {\n totalSize\n }\n available(sort: {by: startDate, order: asc}) {\n checkInDate\n checkOutDate\n codeMasked\n checkOutDateFmt(language: $language)\n endDate\n endDateFmt(language: $language)\n location\n numberOfNights\n offerName\n points\n rewardType\n startDate\n status\n hotel {\n name\n images {\n master(imageVariant: honorsPropertyImageThumbnail) {\n url\n altText\n }\n }\n }\n }\n held {\n checkInDate\n checkOutDate\n codeMasked\n checkOutDateFmt(language: $language)\n endDate\n endDateFmt(language: $language)\n location\n numberOfNights\n offerName\n points\n rewardType\n startDate\n status\n hotel {\n name\n images {\n master(imageVariant: honorsPropertyImageThumbnail) {\n url\n altText\n }\n }\n }\n }\n used {\n checkInDate\n checkOutDate\n codeMasked\n checkOutDateFmt(language: $language)\n endDate\n endDateFmt(language: $language)\n location\n numberOfNights\n offerName\n points\n rewardType\n startDate\n status\n hotel {\n name\n images {\n master(imageVariant: honorsPropertyImageThumbnail) {\n url\n altText\n }\n }\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'guest_hotel_MyAccount',\n};\nexport function useGuest_Hotel_MyAccountQuery<\n TData = Types.Guest_Hotel_MyAccountQuery,\n TError = DXError\n>(\n variables: Types.Guest_Hotel_MyAccountQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_Hotel_MyAccountQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_Hotel_MyAccountQuery, TError, TData>({\n queryKey: [Guest_Hotel_MyAccountDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_Hotel_MyAccountQuery(\n queryClient: QueryClient,\n variables: Types.Guest_Hotel_MyAccountQueryVariables,\n options?: FetchQueryOptions<Types.Guest_Hotel_MyAccountQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_Hotel_MyAccountQuery>({\n queryKey: [Guest_Hotel_MyAccountDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHotelStaysDocument = {\n operationName: 'guest_guestStays_hotel',\n operationString: `query guest_guestStays_hotel($guestId: BigInt!, $language: String!, $limit: Int!, $galleryImageWidth: Int, $galleryImageHeight: Int) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n pastStays: stays(\n limit: $limit\n timeframe: past\n stayStatuses: [checkinRequested, checkout, confirmed, inHouse]\n ) {\n ...StaysFieldsFragment\n }\n futureStays: stays(\n limit: $limit\n stayStatuses: [checkinRequested, checkout, confirmed, inHouse]\n ) {\n ...StaysFieldsFragment\n }\n }\n}\n\n ${StaysFieldsFragmentFragmentDoc}`,\n originalOpName: 'guestHotelStays',\n};\nexport function useGuestHotelStaysQuery<TData = Types.GuestHotelStaysQuery, TError = DXError>(\n variables: Types.GuestHotelStaysQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHotelStaysQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHotelStaysQuery, TError, TData>({\n queryKey: [GuestHotelStaysDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHotelStaysQuery(\n queryClient: QueryClient,\n variables: Types.GuestHotelStaysQueryVariables,\n options?: FetchQueryOptions<Types.GuestHotelStaysQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHotelStaysQuery>({\n queryKey: [GuestHotelStaysDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_OffersDocument = {\n operationName: 'guest_Offers',\n operationString: `query guest_Offers($language: String!, $guestId: BigInt!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n promotions {\n active {\n ...ActivePromotion\n }\n eligible {\n ...EligiblePromotion\n }\n }\n }\n }\n}\n\n ${ActivePromotionFragmentDoc}\n${EligiblePromotionFragmentDoc}`,\n originalOpName: 'guest_Offers',\n};\nexport function useGuest_OffersQuery<TData = Types.Guest_OffersQuery, TError = DXError>(\n variables: Types.Guest_OffersQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_OffersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_OffersQuery, TError, TData>({\n queryKey: [Guest_OffersDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_OffersQuery(\n queryClient: QueryClient,\n variables: Types.Guest_OffersQueryVariables,\n options?: FetchQueryOptions<Types.Guest_OffersQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_OffersQuery>({\n queryKey: [Guest_OffersDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_PartnersDocument = {\n operationName: 'guest_Partners',\n operationString: `query guest_Partners($language: String!, $guestId: BigInt!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n travelPartners {\n name: partnerName\n code: partnerCode\n type: partnerType\n number: partnerNumber\n }\n }\n}`,\n originalOpName: 'guest_Partners',\n};\nexport function useGuest_PartnersQuery<TData = Types.Guest_PartnersQuery, TError = DXError>(\n variables: Types.Guest_PartnersQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_PartnersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_PartnersQuery, TError, TData>({\n queryKey: [Guest_PartnersDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_PartnersQuery(\n queryClient: QueryClient,\n variables: Types.Guest_PartnersQueryVariables,\n options?: FetchQueryOptions<Types.Guest_PartnersQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_PartnersQuery>({\n queryKey: [Guest_PartnersDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_PersonalInfoPageDocument = {\n operationName: 'guest_PersonalInfoPage',\n operationString: `query guest_PersonalInfoPage($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n personalinfo {\n emails(sort: [{by: emailId, order: desc}]) {\n emailId\n emailAddressMasked\n preferred\n validated\n }\n phones(sort: [{by: phoneId, order: desc}]) {\n phoneNumberMasked(format: masked)\n phoneType\n preferred\n phoneId\n phoneCountry\n validated\n phoneNumber2FAStatus\n }\n addresses(sort: [{by: preferred, order: desc}]) {\n addressId\n addressFmt(format: \"stacked\")\n addressLine1 @toTitleCase\n addressLine2 @toTitleCase\n addressLine3 @toTitleCase\n addressType @toTitleCase\n city @toTitleCase\n state @toUpperCase\n postalCode\n countryName\n country\n preferred\n company @toTitleCase\n addressLocalizations {\n addressFmt(format: \"stacked\")\n addressLine1\n addressLine2\n addressLine3\n city\n state\n postalCode\n country\n countryName\n company\n }\n }\n paymentMethods(sort: [{by: preferred, order: desc}]) {\n cardName\n cardCode\n cardExpireDate\n cardExpireDateFmt(format: \"MM/YY\")\n cardNumberLastFour: cardNumberMasked\n cardNumberMaskedFormat: cardNumberMasked(format: masked)\n expired\n paymentId\n preferred\n }\n }\n preferences {\n personalizations {\n preferredLanguage\n }\n }\n hhonors {\n hhonorsNumber\n summary {\n totalPointsFmt\n }\n }\n travelAccounts {\n corporateAccount\n travelAgentNumber\n unlimitedBudgetNumber\n aarpNumber\n aaaNumber\n aaaInternationalNumber\n governmentMilitary\n }\n }\n}`,\n originalOpName: 'guest_PersonalInfoPage',\n};\nexport function useGuest_PersonalInfoPageQuery<\n TData = Types.Guest_PersonalInfoPageQuery,\n TError = DXError\n>(\n variables: Types.Guest_PersonalInfoPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_PersonalInfoPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_PersonalInfoPageQuery, TError, TData>({\n queryKey: [Guest_PersonalInfoPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_PersonalInfoPageQuery(\n queryClient: QueryClient,\n variables: Types.Guest_PersonalInfoPageQueryVariables,\n options?: FetchQueryOptions<Types.Guest_PersonalInfoPageQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_PersonalInfoPageQuery>({\n queryKey: [Guest_PersonalInfoPageDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_PreferencesPageDocument = {\n operationName: 'guest',\n operationString: `query guest($language: String!, $guestId: BigInt!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n preferences {\n roomprefs {\n accessible\n bedtype\n closeToElevator\n highFloor\n mostImportant\n smoking\n }\n stayprefs {\n cr_appFavs\n cr_chnFavs\n cr_tmpSetPoint\n }\n }\n travelPartners {\n active\n partnerCode\n partnerName\n partnerNumber\n preferred\n }\n }\n}`,\n originalOpName: 'guest_PreferencesPage',\n};\nexport function useGuest_PreferencesPageQuery<\n TData = Types.Guest_PreferencesPageQuery,\n TError = DXError\n>(\n variables: Types.Guest_PreferencesPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_PreferencesPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_PreferencesPageQuery, TError, TData>({\n queryKey: [Guest_PreferencesPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_PreferencesPageQuery(\n queryClient: QueryClient,\n variables: Types.Guest_PreferencesPageQueryVariables,\n options?: FetchQueryOptions<Types.Guest_PreferencesPageQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_PreferencesPageQuery>({\n queryKey: [Guest_PreferencesPageDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_RatesDocument = {\n operationName: 'guest_Rates',\n operationString: `query guest_Rates($guestId: BigInt!, $language: String!, $companyCode: String) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n hhonors {\n redemptions(\n sort: {by: pointsRequired}\n filter: {companyCode: $companyCode, redeemable: true}\n ) {\n code: itemNumber\n name: description @toTitleCase\n itemType\n minimumQuantity\n companyCode\n fulfillmentPathCode\n }\n }\n }\n}`,\n originalOpName: 'guest_Rates',\n};\nexport function useGuest_RatesQuery<TData = Types.Guest_RatesQuery, TError = DXError>(\n variables: Types.Guest_RatesQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_RatesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_RatesQuery, TError, TData>({\n queryKey: [Guest_RatesDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_RatesQuery(\n queryClient: QueryClient,\n variables: Types.Guest_RatesQueryVariables,\n options?: FetchQueryOptions<Types.Guest_RatesQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_RatesQuery>({\n queryKey: [Guest_RatesDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_GetHHonorsNumberDocument = {\n operationName: 'guest_GetHHonorsNumber',\n operationString: `query guest_GetHHonorsNumber($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n hhonors {\n hhonorsNumber\n packages {\n packageName\n }\n isSMBMember\n }\n }\n}`,\n originalOpName: 'guest_GetHHonorsNumber',\n};\nexport function useGuest_GetHHonorsNumberQuery<\n TData = Types.Guest_GetHHonorsNumberQuery,\n TError = DXError\n>(\n variables: Types.Guest_GetHHonorsNumberQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_GetHHonorsNumberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_GetHHonorsNumberQuery, TError, TData>({\n queryKey: [Guest_GetHHonorsNumberDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_GetHHonorsNumberQuery(\n queryClient: QueryClient,\n variables: Types.Guest_GetHHonorsNumberQueryVariables,\n options?: FetchQueryOptions<Types.Guest_GetHHonorsNumberQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_GetHHonorsNumberQuery>({\n queryKey: [Guest_GetHHonorsNumberDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_GuestGoHiltonDocument = {\n operationName: 'guest_GuestGoHilton',\n operationString: `query guest_GuestGoHilton($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n hhonorsNumber\n isOwner\n isTeamMember\n packages {\n packageName\n }\n summary {\n tierName\n totalPoints\n totalPointsFmt\n }\n }\n personalinfo {\n name {\n firstName\n }\n }\n }\n}`,\n originalOpName: 'guest_GuestGoHilton',\n};\nexport function useGuest_GuestGoHiltonQuery<\n TData = Types.Guest_GuestGoHiltonQuery,\n TError = DXError\n>(\n variables: Types.Guest_GuestGoHiltonQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_GuestGoHiltonQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_GuestGoHiltonQuery, TError, TData>({\n queryKey: [Guest_GuestGoHiltonDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_GuestGoHiltonQuery(\n queryClient: QueryClient,\n variables: Types.Guest_GuestGoHiltonQueryVariables,\n options?: FetchQueryOptions<Types.Guest_GuestGoHiltonQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_GuestGoHiltonQuery>({\n queryKey: [Guest_GuestGoHiltonDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_OfferDocument = {\n operationName: 'guest_Offer',\n operationString: `query guest_Offer($guestId: BigInt!, $language: String!, $promotionType: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n promotions {\n eligible(filter: {promotionType: $promotionType}, first: 1) {\n callCenterOnly\n endDate\n promotionCode\n promotionDescription: alternateDescription\n alternateDescriptionTruncated: alternateDescription @truncate(length: 65)\n promotionName\n termsAndConditions\n }\n }\n }\n }\n}`,\n originalOpName: 'guest_Offer',\n};\nexport function useGuest_OfferQuery<TData = Types.Guest_OfferQuery, TError = DXError>(\n variables: Types.Guest_OfferQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_OfferQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_OfferQuery, TError, TData>({\n queryKey: [Guest_OfferDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_OfferQuery(\n queryClient: QueryClient,\n variables: Types.Guest_OfferQueryVariables,\n options?: FetchQueryOptions<Types.Guest_OfferQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_OfferQuery>({\n queryKey: [Guest_OfferDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CmsHgvMaxDocument = {\n operationName: 'brand',\n operationString: `query brand($brandCode: String!, $language: String!, $path: String!) {\n brand(brandCode: $brandCode, language: $language) {\n page(path: $path) {\n fullWidthImage {\n shortDescription\n caption\n captionLink\n label\n imageCompound {\n image {\n variants {\n url\n size\n }\n }\n }\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_CmsHgvMax',\n};\nexport function useBrand_CmsHgvMaxQuery<TData = Types.Brand_CmsHgvMaxQuery, TError = DXError>(\n variables: Types.Brand_CmsHgvMaxQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CmsHgvMaxQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CmsHgvMaxQuery, TError, TData>({\n queryKey: [Brand_CmsHgvMaxDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CmsHgvMaxQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CmsHgvMaxQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CmsHgvMaxQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CmsHgvMaxQuery>({\n queryKey: [Brand_CmsHgvMaxDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHgvMaxDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n isHGVMax\n }\n }\n}`,\n originalOpName: 'guestHgvMax',\n};\nexport function useGuestHgvMaxQuery<TData = Types.GuestHgvMaxQuery, TError = DXError>(\n variables: Types.GuestHgvMaxQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHgvMaxQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHgvMaxQuery, TError, TData>({\n queryKey: [GuestHgvMaxDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHgvMaxQuery(\n queryClient: QueryClient,\n variables: Types.GuestHgvMaxQueryVariables,\n options?: FetchQueryOptions<Types.GuestHgvMaxQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHgvMaxQuery>({\n queryKey: [GuestHgvMaxDocument, variables],\n ...options,\n });\n}\n\nexport const HonorsTierBenefitsDocument = {\n operationName: 'honorsTierBenefits',\n operationString: `query honorsTierBenefits($language: String!) {\n honorsTierBenefits(language: $language) {\n benefitTier\n benefitTierName\n headline\n description\n image {\n altText\n variants {\n url\n device\n }\n }\n subheading\n items {\n headline\n shortDescription\n iconType\n description\n }\n }\n}`,\n originalOpName: 'honorsTierBenefits',\n};\nexport function useHonorsTierBenefitsQuery<TData = Types.HonorsTierBenefitsQuery, TError = DXError>(\n variables: Types.HonorsTierBenefitsQueryVariables,\n options?: Omit<UseQueryOptions<Types.HonorsTierBenefitsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.HonorsTierBenefitsQuery, TError, TData>({\n queryKey: [HonorsTierBenefitsDocument, variables],\n ...options,\n });\n}\nexport function serverSideHonorsTierBenefitsQuery(\n queryClient: QueryClient,\n variables: Types.HonorsTierBenefitsQueryVariables,\n options?: FetchQueryOptions<Types.HonorsTierBenefitsQuery>\n) {\n return queryClient.fetchQuery<Types.HonorsTierBenefitsQuery>({\n queryKey: [HonorsTierBenefitsDocument, variables],\n ...options,\n });\n}\n\nexport const CreateGuestDocument = {\n operationName: 'createGuest',\n operationString: `mutation createGuest($input: EnrollInput!, $language: String!, $recaptchaInput: RecaptchaInput) {\n createGuest(input: $input, language: $language, recaptchaInput: $recaptchaInput) {\n data {\n guestId\n hhonorsNumber\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuest',\n};\nexport function useCreateGuestMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestMutation,\n TError,\n [typeof CreateGuestDocument, Types.CreateGuestMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestMutation,\n TError,\n [typeof CreateGuestDocument, Types.CreateGuestMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const LanguagesDocument = {\n operationName: 'languages',\n operationString: `query languages($language: String!) {\n languages(language: $language, sort: [{by: languageName}]) {\n languageCode\n languageName\n }\n}`,\n originalOpName: 'languages',\n};\nexport function useLanguagesQuery<TData = Types.LanguagesQuery, TError = DXError>(\n variables: Types.LanguagesQueryVariables,\n options?: Omit<UseQueryOptions<Types.LanguagesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.LanguagesQuery, TError, TData>({\n queryKey: [LanguagesDocument, variables],\n ...options,\n });\n}\nexport function serverSideLanguagesQuery(\n queryClient: QueryClient,\n variables: Types.LanguagesQueryVariables,\n options?: FetchQueryOptions<Types.LanguagesQuery>\n) {\n return queryClient.fetchQuery<Types.LanguagesQuery>({\n queryKey: [LanguagesDocument, variables],\n ...options,\n });\n}\n\nexport const NavigationDocument = {\n operationName: 'brand',\n operationString: `query brand($brandCode: String!, $language: String!) {\n brand(brandCode: $brandCode, language: $language) {\n header {\n sections {\n links {\n adaDescription\n label\n url\n isNewWindow\n experimentationConfiguration {\n agentId\n variation\n goal\n value\n }\n secondaryLinks {\n label\n adaDescription\n campaignId\n isNewWindow\n url\n experimentationConfiguration {\n agentId\n variation\n goal\n value\n }\n }\n }\n }\n }\n footer {\n sections {\n links {\n adaDescription\n label\n url\n isNewWindow\n experimentationConfiguration {\n agentId\n variation\n goal\n value\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'navigation',\n};\nexport function useNavigationQuery<TData = Types.NavigationQuery, TError = DXError>(\n variables: Types.NavigationQueryVariables,\n options?: Omit<UseQueryOptions<Types.NavigationQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.NavigationQuery, TError, TData>({\n queryKey: [NavigationDocument, variables],\n ...options,\n });\n}\nexport function serverSideNavigationQuery(\n queryClient: QueryClient,\n variables: Types.NavigationQueryVariables,\n options?: FetchQueryOptions<Types.NavigationQuery>\n) {\n return queryClient.fetchQuery<Types.NavigationQuery>({\n queryKey: [NavigationDocument, variables],\n ...options,\n });\n}\n\nexport const BrandNonMemberPointsPageDocument = {\n operationName: 'brandNonMemberPointsPage',\n operationString: `query brandNonMemberPointsPage($language: String!, $brandCode: String!) {\n brand(language: $language, brandCode: $brandCode) {\n page(path: \"points\") {\n fullWidthImage {\n headline\n label\n shortDescription\n link {\n adaDescription\n isNewWindow\n label\n url\n }\n imageCompound {\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n }\n multicolumnText {\n description\n items {\n headline\n items {\n description\n label\n }\n }\n }\n tabbedIcons {\n id\n description\n headline\n items {\n _id\n label\n iconType\n description\n headline\n link {\n adaDescription\n isNewWindow\n label\n url\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brandNonMemberPointsPage',\n};\nexport function useBrandNonMemberPointsPageQuery<\n TData = Types.BrandNonMemberPointsPageQuery,\n TError = DXError\n>(\n variables: Types.BrandNonMemberPointsPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.BrandNonMemberPointsPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.BrandNonMemberPointsPageQuery, TError, TData>({\n queryKey: [BrandNonMemberPointsPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandNonMemberPointsPageQuery(\n queryClient: QueryClient,\n variables: Types.BrandNonMemberPointsPageQueryVariables,\n options?: FetchQueryOptions<Types.BrandNonMemberPointsPageQuery>\n) {\n return queryClient.fetchQuery<Types.BrandNonMemberPointsPageQuery>({\n queryKey: [BrandNonMemberPointsPageDocument, variables],\n ...options,\n });\n}\n\nexport const BrandPointsExplorerPageDocument = {\n operationName: 'brandPointsExplorerPage',\n operationString: `query brandPointsExplorerPage($language: String!) {\n brand(language: $language, brandCode: \"HH\") {\n page(path: \"points-explorer\") {\n fullWidthImage {\n headline\n label\n shortDescription\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n imageCompound {\n image {\n altText\n variants(sort: {by: size}) {\n size\n url\n }\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brandPointsExplorerPage',\n};\nexport function useBrandPointsExplorerPageQuery<\n TData = Types.BrandPointsExplorerPageQuery,\n TError = DXError\n>(\n variables: Types.BrandPointsExplorerPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.BrandPointsExplorerPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.BrandPointsExplorerPageQuery, TError, TData>({\n queryKey: [BrandPointsExplorerPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandPointsExplorerPageQuery(\n queryClient: QueryClient,\n variables: Types.BrandPointsExplorerPageQueryVariables,\n options?: FetchQueryOptions<Types.BrandPointsExplorerPageQuery>\n) {\n return queryClient.fetchQuery<Types.BrandPointsExplorerPageQuery>({\n queryKey: [BrandPointsExplorerPageDocument, variables],\n ...options,\n });\n}\n\nexport const PointsExplorerFaqDocument = {\n operationName: 'faq',\n operationString: `query faq($language: String!) {\n faq(language: $language, faqType: pointsExplorer) {\n title\n subHeading\n shortDescription\n subTopic {\n subTopicName\n faqContent {\n question\n answer(format: md)\n answerOrderedList(format: md)\n answerUnorderedList(format: md)\n }\n }\n }\n}`,\n originalOpName: 'pointsExplorerFaq',\n};\nexport function usePointsExplorerFaqQuery<TData = Types.PointsExplorerFaqQuery, TError = DXError>(\n variables: Types.PointsExplorerFaqQueryVariables,\n options?: Omit<UseQueryOptions<Types.PointsExplorerFaqQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.PointsExplorerFaqQuery, TError, TData>({\n queryKey: [PointsExplorerFaqDocument, variables],\n ...options,\n });\n}\nexport function serverSidePointsExplorerFaqQuery(\n queryClient: QueryClient,\n variables: Types.PointsExplorerFaqQueryVariables,\n options?: FetchQueryOptions<Types.PointsExplorerFaqQuery>\n) {\n return queryClient.fetchQuery<Types.PointsExplorerFaqQuery>({\n queryKey: [PointsExplorerFaqDocument, variables],\n ...options,\n });\n}\n\nexport const ProgramAccountDashboardSummaryDocument = {\n operationName: 'programAccountDashboardSummary',\n operationString: `query programAccountDashboardSummary($language: String!, $guestId: BigInt!, $accountId: Int!) {\n programAccountDashboardSummary(\n language: $language\n guestId: $guestId\n accountId: $accountId\n ) {\n honorsSummary {\n totalPoints\n }\n spendSummary {\n roomSpendSummary {\n roomSpendPastStaysFmt(decimal: 0, strategy: round)\n roomSpendFutureStaysFmt(decimal: 0, strategy: round)\n }\n }\n }\n}`,\n originalOpName: 'programAccountDashboardSummary',\n};\nexport function useProgramAccountDashboardSummaryQuery<\n TData = Types.ProgramAccountDashboardSummaryQuery,\n TError = DXError\n>(\n variables: Types.ProgramAccountDashboardSummaryQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.ProgramAccountDashboardSummaryQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.ProgramAccountDashboardSummaryQuery, TError, TData>({\n queryKey: [ProgramAccountDashboardSummaryDocument, variables],\n ...options,\n });\n}\nexport function serverSideProgramAccountDashboardSummaryQuery(\n queryClient: QueryClient,\n variables: Types.ProgramAccountDashboardSummaryQueryVariables,\n options?: FetchQueryOptions<Types.ProgramAccountDashboardSummaryQuery>\n) {\n return queryClient.fetchQuery<Types.ProgramAccountDashboardSummaryQuery>({\n queryKey: [ProgramAccountDashboardSummaryDocument, variables],\n ...options,\n });\n}\n\nexport const ProgramManagementPageDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n hhonors {\n programAccountSummary {\n accountName\n accountId\n accountStatus\n memberStatus\n memberId\n accountInviteSummary {\n _id\n expireDate\n key\n link\n }\n memberRole\n memberEmailMasked\n }\n }\n }\n}`,\n originalOpName: 'programManagementPage',\n};\nexport function useProgramManagementPageQuery<\n TData = Types.ProgramManagementPageQuery,\n TError = DXError\n>(\n variables: Types.ProgramManagementPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.ProgramManagementPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.ProgramManagementPageQuery, TError, TData>({\n queryKey: [ProgramManagementPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideProgramManagementPageQuery(\n queryClient: QueryClient,\n variables: Types.ProgramManagementPageQueryVariables,\n options?: FetchQueryOptions<Types.ProgramManagementPageQuery>\n) {\n return queryClient.fetchQuery<Types.ProgramManagementPageQuery>({\n queryKey: [ProgramManagementPageDocument, variables],\n ...options,\n });\n}\n\nexport const ResendTotpDocument = {\n operationName: 'resendTOTP',\n operationString: `mutation resendTOTP($deliveryId: Int!, $deliveryMethod: Guest2FADeliveryMethod!, $guestId: BigInt!, $language: String!) {\n createGuest2FATotp(\n guestId: $guestId\n language: $language\n deliveryMethod: $deliveryMethod\n deliveryId: $deliveryId\n ) {\n data\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'resendTOTP',\n};\nexport function useResendTotpMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.ResendTotpMutation,\n TError,\n [typeof ResendTotpDocument, Types.ResendTotpMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.ResendTotpMutation,\n TError,\n [typeof ResendTotpDocument, Types.ResendTotpMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Reservation_Hotel_DetailsDocument = {\n operationName: 'reservation_hotel_Details',\n operationString: `query reservation_hotel_Details($language: String!, $confNumber: String!) {\n reservation(language: $language, confNumber: $confNumber) {\n id: confNumber\n confNumber\n guest {\n name {\n firstName\n lastName\n title\n }\n phones(first: 1) {\n phoneNumberMasked(format: masked)\n }\n emails(first: 1) {\n emailAddressMasked @toLowerCase\n }\n addresses(first: 1) {\n addressFmt(format: \"stacked\")\n addressLine1\n addressLine2\n city\n country\n postalCode\n state\n }\n hhonorsNumber\n }\n hotel {\n ctyhocn\n name\n }\n arrivalDate\n arrivalDateFmt(format: \"short\", language: $language)\n departureDate\n departureDateFmt(format: \"short\", language: $language)\n rooms {\n resCreateDate\n roomType {\n roomTypeName\n numBeds\n }\n }\n totalNumAdults\n totalNumChildren\n cost {\n totalAmountBeforeTaxFmt(decimal: 2, format: \"symbol\")\n totalAmountBeforeTax\n currency {\n currencyCode\n }\n }\n }\n}`,\n originalOpName: 'reservation_hotel_Details',\n};\nexport function useReservation_Hotel_DetailsQuery<\n TData = Types.Reservation_Hotel_DetailsQuery,\n TError = DXError\n>(\n variables: Types.Reservation_Hotel_DetailsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Reservation_Hotel_DetailsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Reservation_Hotel_DetailsQuery, TError, TData>({\n queryKey: [Reservation_Hotel_DetailsDocument, variables],\n ...options,\n });\n}\nexport function serverSideReservation_Hotel_DetailsQuery(\n queryClient: QueryClient,\n variables: Types.Reservation_Hotel_DetailsQueryVariables,\n options?: FetchQueryOptions<Types.Reservation_Hotel_DetailsQuery>\n) {\n return queryClient.fetchQuery<Types.Reservation_Hotel_DetailsQuery>({\n queryKey: [Reservation_Hotel_DetailsDocument, variables],\n ...options,\n });\n}\n\nexport const CreateProgramAccountDocument = {\n operationName: 'createProgramAccount',\n operationString: `mutation createProgramAccount($language: String!, $guestId: BigInt!, $input: ProgramAccountsProgramAccountCreateRequestInput!) {\n createProgramAccount(language: $language, guestId: $guestId, input: $input) {\n data {\n memberId\n accountId\n }\n error {\n message\n code\n }\n notifications {\n message\n title\n }\n }\n}`,\n originalOpName: 'createProgramAccount',\n};\nexport function useCreateProgramAccountMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateProgramAccountMutation,\n TError,\n [typeof CreateProgramAccountDocument, Types.CreateProgramAccountMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateProgramAccountMutation,\n TError,\n [typeof CreateProgramAccountDocument, Types.CreateProgramAccountMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_CreateProgramAccountEmailTotpValidationDocument = {\n operationName: 'createProgramAccountEmailTotpValidation',\n operationString: `mutation createProgramAccountEmailTotpValidation($guestId: Int!, $language: String!, $input: ProgramAccountsSmbMemberInput!, $mfaInput: ProgramAccountsMemberTOTPValidationInput!) {\n createProgramAccountEmailTotpValidation(\n guestId: $guestId\n language: $language\n input: $input\n mfaInput: $mfaInput\n ) {\n _id\n data\n error {\n _id\n code\n context\n message\n notifications {\n _id\n code\n fields\n message\n }\n }\n notifications {\n _id\n message\n title\n }\n }\n}`,\n originalOpName: 'smb_CreateProgramAccountEmailTotpValidation',\n};\nexport function useSmb_CreateProgramAccountEmailTotpValidationMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_CreateProgramAccountEmailTotpValidationMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountEmailTotpValidationDocument,\n Types.Smb_CreateProgramAccountEmailTotpValidationMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_CreateProgramAccountEmailTotpValidationMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountEmailTotpValidationDocument,\n Types.Smb_CreateProgramAccountEmailTotpValidationMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_CreateProgramAccountEmailValidationDocument = {\n operationName: 'createProgramAccountEmailValidation',\n operationString: `mutation createProgramAccountEmailValidation($guestId: BigInt!, $language: String!, $accountId: Int!, $memberId: Int!) {\n createProgramAccountEmailValidation(\n guestId: $guestId\n language: $language\n input: {accountId: $accountId, memberId: $memberId}\n ) {\n data {\n accountId\n memberId\n status\n }\n error {\n _id\n code\n message\n notifications {\n code\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_CreateProgramAccountEmailValidation',\n};\nexport function useSmb_CreateProgramAccountEmailValidationMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_CreateProgramAccountEmailValidationMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountEmailValidationDocument,\n Types.Smb_CreateProgramAccountEmailValidationMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_CreateProgramAccountEmailValidationMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountEmailValidationDocument,\n Types.Smb_CreateProgramAccountEmailValidationMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_CreateProgramAccountHonorsPointsTransferDocument = {\n operationName: 'createProgramAccountHonorsPointsTransfer',\n operationString: `mutation createProgramAccountHonorsPointsTransfer($guestId: BigInt!, $language: String!, $accountId: Int!, $input: ProgramAccountsHonorsPointsTransferInput!, $mfaInput: ProgramAccountsMFAInput) {\n createProgramAccountHonorsPointsTransfer(\n guestId: $guestId\n language: $language\n accountId: $accountId\n input: $input\n mfaInput: $mfaInput\n ) {\n data {\n _id\n accessToken\n status\n }\n notifications {\n title\n message\n }\n error {\n code\n message\n context\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_CreateProgramAccountHonorsPointsTransfer',\n};\nexport function useSmb_CreateProgramAccountHonorsPointsTransferMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_CreateProgramAccountHonorsPointsTransferMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountHonorsPointsTransferDocument,\n Types.Smb_CreateProgramAccountHonorsPointsTransferMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_CreateProgramAccountHonorsPointsTransferMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountHonorsPointsTransferDocument,\n Types.Smb_CreateProgramAccountHonorsPointsTransferMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_CreateProgramAccountInvitationLinkDocument = {\n operationName: 'createProgramAccountInvitationLink',\n operationString: `mutation createProgramAccountInvitationLink($guestId: BigInt!, $language: String!, $accountId: Int!) {\n createProgramAccountInvitationLink(\n guestId: $guestId\n language: $language\n accountId: $accountId\n ) {\n data\n error {\n code\n notifications {\n code\n }\n }\n }\n}`,\n originalOpName: 'smb_CreateProgramAccountInvitationLink',\n};\nexport function useSmb_CreateProgramAccountInvitationLinkMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_CreateProgramAccountInvitationLinkMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountInvitationLinkDocument,\n Types.Smb_CreateProgramAccountInvitationLinkMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_CreateProgramAccountInvitationLinkMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountInvitationLinkDocument,\n Types.Smb_CreateProgramAccountInvitationLinkMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateProgramAccountMemberDocument = {\n operationName: 'createProgramAccountMember',\n operationString: `mutation createProgramAccountMember($language: String!, $accountId: Int!, $input: ProgramAccountsProgramAccountMemberInput!) {\n createProgramAccountMember(\n language: $language\n accountId: $accountId\n input: $input\n ) {\n data {\n accountId\n memberId\n role\n status\n emailAddress: emailAddressMasked\n }\n }\n}`,\n originalOpName: 'createProgramAccountMember',\n};\nexport function useCreateProgramAccountMemberMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateProgramAccountMemberMutation,\n TError,\n [typeof CreateProgramAccountMemberDocument, Types.CreateProgramAccountMemberMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateProgramAccountMemberMutation,\n TError,\n [typeof CreateProgramAccountMemberDocument, Types.CreateProgramAccountMemberMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_DeleteProgramAccountMemberDocument = {\n operationName: 'deleteProgramAccountMember',\n operationString: `mutation deleteProgramAccountMember($guestId: BigInt!, $input: ProgramAccountsMemberIdInput!, $language: String!, $mfaInput: ProgramAccountsMFAInput) {\n deleteProgramAccountMember(\n guestId: $guestId\n input: $input\n language: $language\n mfaInput: $mfaInput\n ) {\n data {\n status\n accessToken\n }\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_DeleteProgramAccountMember',\n};\nexport function useSmb_DeleteProgramAccountMemberMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.Smb_DeleteProgramAccountMemberMutation,\n TError,\n [\n typeof Smb_DeleteProgramAccountMemberDocument,\n Types.Smb_DeleteProgramAccountMemberMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_DeleteProgramAccountMemberMutation,\n TError,\n [\n typeof Smb_DeleteProgramAccountMemberDocument,\n Types.Smb_DeleteProgramAccountMemberMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const FaqDocument = {\n operationName: 'faq',\n operationString: `query faq($language: String!, $description: FaqType!) {\n faq(faqType: $description, language: $language) {\n title\n shortDescription\n subHeading\n subTopic {\n subTopicName\n faqContent {\n question\n answer(format: md)\n answerOrderedList\n answerUnorderedList\n }\n }\n }\n}`,\n originalOpName: 'faq',\n};\nexport function useFaqQuery<TData = Types.FaqQuery, TError = DXError>(\n variables: Types.FaqQueryVariables,\n options?: Omit<UseQueryOptions<Types.FaqQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FaqQuery, TError, TData>({\n queryKey: [FaqDocument, variables],\n ...options,\n });\n}\nexport function serverSideFaqQuery(\n queryClient: QueryClient,\n variables: Types.FaqQueryVariables,\n options?: FetchQueryOptions<Types.FaqQuery>\n) {\n return queryClient.fetchQuery<Types.FaqQuery>({ queryKey: [FaqDocument, variables], ...options });\n}\n\nexport const Smb_FilterProgramAccountsDocument = {\n operationName: 'programAccounts',\n operationString: `query programAccounts($guestId: BigInt!, $language: String!, $accountId: BigInt!) {\n programAccounts(\n guestId: $guestId\n language: $language\n filter: {accountId: $accountId}\n ) {\n accountId\n memberStatus\n memberId\n accountName\n accountStatus\n }\n}`,\n originalOpName: 'smb_FilterProgramAccounts',\n};\nexport function useSmb_FilterProgramAccountsQuery<\n TData = Types.Smb_FilterProgramAccountsQuery,\n TError = DXError\n>(\n variables: Types.Smb_FilterProgramAccountsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_FilterProgramAccountsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_FilterProgramAccountsQuery, TError, TData>({\n queryKey: [Smb_FilterProgramAccountsDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_FilterProgramAccountsQuery(\n queryClient: QueryClient,\n variables: Types.Smb_FilterProgramAccountsQueryVariables,\n options?: FetchQueryOptions<Types.Smb_FilterProgramAccountsQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_FilterProgramAccountsQuery>({\n queryKey: [Smb_FilterProgramAccountsDocument, variables],\n ...options,\n });\n}\n\nexport const SmbMarketingBannerOffersDocument = {\n operationName: 'bannerOffers',\n operationString: `query bannerOffers($name: String!, $language: String!) {\n bannerOffers(name: $name, language: $language) {\n headline\n image {\n altText\n variants(sort: {by: size}) {\n size\n url\n }\n }\n label\n link {\n adaDescription\n isNewWindow\n label\n url\n }\n segmentIds\n shortDescription\n }\n}`,\n originalOpName: 'smbMarketingBannerOffers',\n};\nexport function useSmbMarketingBannerOffersQuery<\n TData = Types.SmbMarketingBannerOffersQuery,\n TError = DXError\n>(\n variables: Types.SmbMarketingBannerOffersQueryVariables,\n options?: Omit<UseQueryOptions<Types.SmbMarketingBannerOffersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.SmbMarketingBannerOffersQuery, TError, TData>({\n queryKey: [SmbMarketingBannerOffersDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmbMarketingBannerOffersQuery(\n queryClient: QueryClient,\n variables: Types.SmbMarketingBannerOffersQueryVariables,\n options?: FetchQueryOptions<Types.SmbMarketingBannerOffersQuery>\n) {\n return queryClient.fetchQuery<Types.SmbMarketingBannerOffersQuery>({\n queryKey: [SmbMarketingBannerOffersDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_MemberIdAndStatusDocument = {\n operationName: 'programAccounts',\n operationString: `query programAccounts($guestId: BigInt!, $language: String!) {\n programAccounts(guestId: $guestId, language: $language) {\n accountId\n accountName\n accountStatus\n memberId\n memberStatus\n }\n}`,\n originalOpName: 'smb_MemberIdAndStatus',\n};\nexport function useSmb_MemberIdAndStatusQuery<\n TData = Types.Smb_MemberIdAndStatusQuery,\n TError = DXError\n>(\n variables: Types.Smb_MemberIdAndStatusQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_MemberIdAndStatusQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_MemberIdAndStatusQuery, TError, TData>({\n queryKey: [Smb_MemberIdAndStatusDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_MemberIdAndStatusQuery(\n queryClient: QueryClient,\n variables: Types.Smb_MemberIdAndStatusQueryVariables,\n options?: FetchQueryOptions<Types.Smb_MemberIdAndStatusQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_MemberIdAndStatusQuery>({\n queryKey: [Smb_MemberIdAndStatusDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountDetailsDocument = {\n operationName: 'programAccount',\n operationString: `query programAccount($guestId: BigInt!, $language: String!, $accountId: Int!) {\n programAccount(guestId: $guestId, language: $language, accountId: $accountId) {\n accountId\n memberId\n invitationLink\n inviteKeyExpireDate\n inviteKeyExpireDateFmt(format: \"long\")\n status\n created {\n modificationTime\n }\n emailDomains\n contactInfo {\n name\n address {\n addressFmt(format: \"stacked\")\n addressLine1\n addressLine2\n country\n postalCode\n city\n state\n }\n phone {\n phoneNumberMasked(format: masked)\n phoneExtension\n phoneCountry\n }\n websiteDomain\n }\n }\n}`,\n originalOpName: 'smb_ProgramAccountDetails',\n};\nexport function useSmb_ProgramAccountDetailsQuery<\n TData = Types.Smb_ProgramAccountDetailsQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountDetailsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_ProgramAccountDetailsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_ProgramAccountDetailsQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountDetailsDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountDetailsQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountDetailsQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountDetailsQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountDetailsQuery>({\n queryKey: [Smb_ProgramAccountDetailsDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramDataFromInviteKeyDocument = {\n operationName: 'programAccountInviteKey',\n operationString: `query programAccountInviteKey($guestId: BigInt!, $inviteKey: String!, $language: String!) {\n programAccountInviteKey(\n guestId: $guestId\n inviteKey: $inviteKey\n language: $language\n ) {\n accountName\n accountId\n memberStatus\n memberId\n emailDomains\n }\n}`,\n originalOpName: 'smb_ProgramDataFromInviteKey',\n};\nexport function useSmb_ProgramDataFromInviteKeyQuery<\n TData = Types.Smb_ProgramDataFromInviteKeyQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramDataFromInviteKeyQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Smb_ProgramDataFromInviteKeyQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Smb_ProgramDataFromInviteKeyQuery, TError, TData>({\n queryKey: [Smb_ProgramDataFromInviteKeyDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramDataFromInviteKeyQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramDataFromInviteKeyQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramDataFromInviteKeyQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramDataFromInviteKeyQuery>({\n queryKey: [Smb_ProgramDataFromInviteKeyDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountMemberDocument = {\n operationName: 'programAccountMember',\n operationString: `query programAccountMember($guestId: BigInt!, $language: String!, $input: ProgramAccountsSmbMemberInput!) {\n programAccountMember(guestId: $guestId, language: $language, input: $input) {\n accountId\n guestId\n emailAddress: emailAddressMasked\n emailLastVerifiedDateFmt(language: $language, format: \"short\")\n memberId\n status\n role\n }\n}`,\n originalOpName: 'smb_ProgramAccountMember',\n};\nexport function useSmb_ProgramAccountMemberQuery<\n TData = Types.Smb_ProgramAccountMemberQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountMemberQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_ProgramAccountMemberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_ProgramAccountMemberQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountMemberDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountMemberQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountMemberQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountMemberQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountMemberQuery>({\n queryKey: [Smb_ProgramAccountMemberDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountMembersListDocument = {\n operationName: 'programAccountMembers',\n operationString: `query programAccountMembers($guestId: BigInt!, $input: ProgramAccountsProgramAccountMembersInput!, $language: String!, $after: String!) {\n _programAccountMembers {\n start\n end\n totalSize\n nextCursor\n prevCursor\n }\n programAccountMembers(\n guestId: $guestId\n input: $input\n language: $language\n first: 10\n after: $after\n ) {\n _id\n emailAddress\n role\n memberId\n status\n guestId\n }\n}`,\n originalOpName: 'smb_ProgramAccountMembersList',\n};\nexport function useSmb_ProgramAccountMembersListQuery<\n TData = Types.Smb_ProgramAccountMembersListQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountMembersListQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Smb_ProgramAccountMembersListQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Smb_ProgramAccountMembersListQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountMembersListDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountMembersListQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountMembersListQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountMembersListQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountMembersListQuery>({\n queryKey: [Smb_ProgramAccountMembersListDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountNumberOfMembersByTypeDocument = {\n operationName: 'programAccountMembers',\n operationString: `query programAccountMembers($guestId: BigInt!, $input: ProgramAccountsProgramAccountMembersInput!, $language: String!, $after: String!) {\n _programAccountMembers {\n size\n }\n programAccountMembers(\n guestId: $guestId\n input: $input\n language: $language\n after: $after\n ) {\n _id\n }\n}`,\n originalOpName: 'smb_ProgramAccountNumberOfMembersByType',\n};\nexport function useSmb_ProgramAccountNumberOfMembersByTypeQuery<\n TData = Types.Smb_ProgramAccountNumberOfMembersByTypeQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountNumberOfMembersByTypeQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Smb_ProgramAccountNumberOfMembersByTypeQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Smb_ProgramAccountNumberOfMembersByTypeQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountNumberOfMembersByTypeDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountNumberOfMembersByTypeQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountNumberOfMembersByTypeQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountNumberOfMembersByTypeQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountNumberOfMembersByTypeQuery>({\n queryKey: [Smb_ProgramAccountNumberOfMembersByTypeDocument, variables],\n ...options,\n });\n}\n\nexport const ProgramAccountInviteKeyDocument = {\n operationName: 'programAccountInviteKey',\n operationString: `query programAccountInviteKey($guestId: BigInt!, $language: String!, $inviteKey: String!) {\n programAccountInviteKey(\n guestId: $guestId\n language: $language\n inviteKey: $inviteKey\n ) {\n accountStatus\n accountId\n accountName\n memberId\n memberStatus\n }\n}`,\n originalOpName: 'programAccountInviteKey',\n};\nexport function useProgramAccountInviteKeyQuery<\n TData = Types.ProgramAccountInviteKeyQuery,\n TError = DXError\n>(\n variables: Types.ProgramAccountInviteKeyQueryVariables,\n options?: Omit<UseQueryOptions<Types.ProgramAccountInviteKeyQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.ProgramAccountInviteKeyQuery, TError, TData>({\n queryKey: [ProgramAccountInviteKeyDocument, variables],\n ...options,\n });\n}\nexport function serverSideProgramAccountInviteKeyQuery(\n queryClient: QueryClient,\n variables: Types.ProgramAccountInviteKeyQueryVariables,\n options?: FetchQueryOptions<Types.ProgramAccountInviteKeyQuery>\n) {\n return queryClient.fetchQuery<Types.ProgramAccountInviteKeyQuery>({\n queryKey: [ProgramAccountInviteKeyDocument, variables],\n ...options,\n });\n}\n\nexport const SmbTermsAndConditionsDocument = {\n operationName: 'policy',\n operationString: `query policy($language: String!) {\n policy(language: $language, policyDocumentType: smbTermsAndConditions) {\n name\n description\n shortDescription\n content {\n heading(format: md)\n description(format: md)\n orderedList(format: md)\n unorderedList(format: md)\n __typename\n }\n __typename\n }\n}`,\n originalOpName: 'smbTermsAndConditions',\n};\nexport function useSmbTermsAndConditionsQuery<\n TData = Types.SmbTermsAndConditionsQuery,\n TError = DXError\n>(\n variables: Types.SmbTermsAndConditionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.SmbTermsAndConditionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.SmbTermsAndConditionsQuery, TError, TData>({\n queryKey: [SmbTermsAndConditionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmbTermsAndConditionsQuery(\n queryClient: QueryClient,\n variables: Types.SmbTermsAndConditionsQueryVariables,\n options?: FetchQueryOptions<Types.SmbTermsAndConditionsQuery>\n) {\n return queryClient.fetchQuery<Types.SmbTermsAndConditionsQuery>({\n queryKey: [SmbTermsAndConditionsDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_UpdateProgramAccountDocument = {\n operationName: 'updateProgramAccount',\n operationString: `mutation updateProgramAccount($guestId: BigInt!, $language: String!, $accountId: Int!, $input: ProgramAccountsProgramAccountUpdateRequestInput!, $mfaInput: ProgramAccountsMFAInput) {\n updateProgramAccount(\n guestId: $guestId\n language: $language\n accountId: $accountId\n input: $input\n mfaInput: $mfaInput\n ) {\n data {\n accountId\n accountStatus\n accessToken\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_UpdateProgramAccount',\n};\nexport function useSmb_UpdateProgramAccountMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.Smb_UpdateProgramAccountMutation,\n TError,\n [typeof Smb_UpdateProgramAccountDocument, Types.Smb_UpdateProgramAccountMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_UpdateProgramAccountMutation,\n TError,\n [typeof Smb_UpdateProgramAccountDocument, Types.Smb_UpdateProgramAccountMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_UpdateProgramAccountMemberEmailTotpDocument = {\n operationName: 'updateProgramAccountMember',\n operationString: `mutation updateProgramAccountMember($accountId: Int!, $language: String!, $memberId: Int!, $input: ProgramAccountsUpdateMemberInput!, $mfaInput: ProgramAccountsMFAInput!) {\n updateProgramAccountMember(\n accountId: $accountId\n language: $language\n memberId: $memberId\n input: $input\n mfaInput: $mfaInput\n ) {\n data {\n accessToken\n emailAddressMasked\n status\n }\n error {\n code\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_UpdateProgramAccountMemberEmailTotp',\n};\nexport function useSmb_UpdateProgramAccountMemberEmailTotpMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_UpdateProgramAccountMemberEmailTotpMutation,\n TError,\n [\n typeof Smb_UpdateProgramAccountMemberEmailTotpDocument,\n Types.Smb_UpdateProgramAccountMemberEmailTotpMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_UpdateProgramAccountMemberEmailTotpMutation,\n TError,\n [\n typeof Smb_UpdateProgramAccountMemberEmailTotpDocument,\n Types.Smb_UpdateProgramAccountMemberEmailTotpMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const TravelPartnersDocument = {\n operationName: 'travelPartners',\n operationString: `query travelPartners($language: String!) {\n travelPartners(language: $language, sort: {by: partnerName}) {\n partnerCode\n partnerName\n }\n}`,\n originalOpName: 'travelPartners',\n};\nexport function useTravelPartnersQuery<TData = Types.TravelPartnersQuery, TError = DXError>(\n variables: Types.TravelPartnersQueryVariables,\n options?: Omit<UseQueryOptions<Types.TravelPartnersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.TravelPartnersQuery, TError, TData>({\n queryKey: [TravelPartnersDocument, variables],\n ...options,\n });\n}\nexport function serverSideTravelPartnersQuery(\n queryClient: QueryClient,\n variables: Types.TravelPartnersQueryVariables,\n options?: FetchQueryOptions<Types.TravelPartnersQuery>\n) {\n return queryClient.fetchQuery<Types.TravelPartnersQuery>({\n queryKey: [TravelPartnersDocument, variables],\n ...options,\n });\n}\n\nexport const UpdateGuestAccountPreferencesDocument = {\n operationName: 'updateGuestAccountPreferences',\n operationString: `mutation updateGuestAccountPreferences($language: String!, $guestId: BigInt!, $input: GuestAccountPreferencesInput!) {\n updateGuestAccountPreferences(\n guestId: $guestId\n input: $input\n language: $language\n ) {\n data {\n roomprefs {\n accessible\n bedtype\n closeToElevator\n highFloor\n mostImportant\n smoking\n }\n travelPartners {\n active\n enrollmentDate\n enrollmentDateFmt\n expireDate\n expireDateFmt\n partnerCode\n partnerName\n partnerNumber\n partnerType\n preferred\n }\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n notifications {\n message\n title\n }\n }\n}`,\n originalOpName: 'updateGuestAccountPreferences',\n};\nexport function useUpdateGuestAccountPreferencesMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestAccountPreferencesMutation,\n TError,\n [\n typeof UpdateGuestAccountPreferencesDocument,\n Types.UpdateGuestAccountPreferencesMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestAccountPreferencesMutation,\n TError,\n [\n typeof UpdateGuestAccountPreferencesDocument,\n Types.UpdateGuestAccountPreferencesMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestAddressesDocument = {\n operationName: 'updateGuestAddresses',\n operationString: `mutation updateGuestAddresses($guestId: BigInt!, $language: String!, $input: [GuestAddressInput]!) {\n updateGuestAddresses(guestId: $guestId, language: $language, input: $input) {\n data {\n addressId\n addressLine1\n addressLine2\n addressType\n city\n company\n country\n postalCode\n preferred\n state\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateGuestAddresses',\n};\nexport function useUpdateGuestAddressesMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestAddressesMutation,\n TError,\n [typeof UpdateGuestAddressesDocument, Types.UpdateGuestAddressesMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestAddressesMutation,\n TError,\n [typeof UpdateGuestAddressesDocument, Types.UpdateGuestAddressesMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestBenefitPreferencesDocument = {\n operationName: 'updateGuestBenefitPreferences',\n operationString: `mutation updateGuestBenefitPreferences($input: [GuestBenefitPreferencesInput]!, $guestId: BigInt!) {\n updateGuestBenefitPreferences(guestId: $guestId, input: $input) {\n data {\n brandCode\n benefitId\n benefitValue\n }\n error {\n code\n notifications {\n code\n message\n message\n }\n message\n code\n }\n }\n}`,\n originalOpName: 'updateGuestBenefitPreferences',\n};\nexport function useUpdateGuestBenefitPreferencesMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestBenefitPreferencesMutation,\n TError,\n [\n typeof UpdateGuestBenefitPreferencesDocument,\n Types.UpdateGuestBenefitPreferencesMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestBenefitPreferencesMutation,\n TError,\n [\n typeof UpdateGuestBenefitPreferencesDocument,\n Types.UpdateGuestBenefitPreferencesMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestEmailsDocument = {\n operationName: 'updateGuestEmails',\n operationString: `mutation updateGuestEmails($guestId: BigInt!, $language: String!, $input: [GuestEmailInput]!, $totp: String!) {\n updateGuestEmails(\n guestId: $guestId\n language: $language\n input: $input\n mfaInput: {totp: $totp}\n ) {\n data {\n emailId\n emailAddressMasked\n preferred\n }\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateGuestEmails',\n};\nexport function useUpdateGuestEmailsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestEmailsMutation,\n TError,\n [typeof UpdateGuestEmailsDocument, Types.UpdateGuestEmailsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestEmailsMutation,\n TError,\n [typeof UpdateGuestEmailsDocument, Types.UpdateGuestEmailsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestPasswordDocument = {\n operationName: 'updateGuestPassword',\n operationString: `mutation updateGuestPassword($guestId: BigInt!, $input: GuestSetPasswordInput!, $language: String!) {\n updateGuestPassword(language: $language, guestId: $guestId, input: $input) {\n data\n }\n}`,\n originalOpName: 'updateGuestPassword',\n};\nexport function useUpdateGuestPasswordMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestPasswordMutation,\n TError,\n [typeof UpdateGuestPasswordDocument, Types.UpdateGuestPasswordMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestPasswordMutation,\n TError,\n [typeof UpdateGuestPasswordDocument, Types.UpdateGuestPasswordMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestPaymentMethodsDocument = {\n operationName: 'updateGuestPaymentMethods',\n operationString: `mutation updateGuestPaymentMethods($guestId: BigInt!, $language: String!, $input: [GuestPaymentMethodInput]!) {\n updateGuestPaymentMethods(guestId: $guestId, language: $language, input: $input) {\n data {\n paymentId\n cardCode\n cardName\n cardExpireDate\n lastFour: cardNumberMasked(format: lastFour)\n cardNumberMasked: cardNumberMasked(format: masked)\n cardExpireDateMed: cardExpireDateFmt(format: \"medium\")\n cardExpireDateLong: cardExpireDateFmt(format: \"long\")\n expired\n preferred\n }\n error {\n code\n message\n context\n notifications {\n message\n code\n fields\n }\n }\n }\n}`,\n originalOpName: 'updateGuestPaymentMethods',\n};\nexport function useUpdateGuestPaymentMethodsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestPaymentMethodsMutation,\n TError,\n [typeof UpdateGuestPaymentMethodsDocument, Types.UpdateGuestPaymentMethodsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestPaymentMethodsMutation,\n TError,\n [typeof UpdateGuestPaymentMethodsDocument, Types.UpdateGuestPaymentMethodsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestPhoneNumbersDocument = {\n operationName: 'updateGuestPhoneNumbers',\n operationString: `mutation updateGuestPhoneNumbers($guestId: BigInt!, $language: String!, $input: [GuestPhoneInput]!, $totp: String!) {\n updateGuestPhoneNumbers(\n guestId: $guestId\n language: $language\n input: $input\n mfaInput: {totp: $totp}\n ) {\n data {\n phoneId\n phoneType\n phoneExtension\n phoneNumberMasked(format: masked)\n preferred\n validated\n phoneNumber2FAStatus\n phoneCountry\n }\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateGuestPhoneNumbers',\n};\nexport function useUpdateGuestPhoneNumbersMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestPhoneNumbersMutation,\n TError,\n [typeof UpdateGuestPhoneNumbersDocument, Types.UpdateGuestPhoneNumbersMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestPhoneNumbersMutation,\n TError,\n [typeof UpdateGuestPhoneNumbersDocument, Types.UpdateGuestPhoneNumbersMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestPreferredLanguageDocument = {\n operationName: 'updateGuestPersonalizations',\n operationString: `mutation updateGuestPersonalizations($language: String!, $guestId: BigInt!, $input: GuestPersonalizationsInput!) {\n updateGuestPersonalizations(\n language: $language\n guestId: $guestId\n input: $input\n ) {\n data {\n preferredLanguage\n }\n error {\n message\n context\n notifications {\n message\n fields\n }\n }\n }\n}`,\n originalOpName: 'updateGuestPreferredLanguage',\n};\nexport function useUpdateGuestPreferredLanguageMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestPreferredLanguageMutation,\n TError,\n [\n typeof UpdateGuestPreferredLanguageDocument,\n Types.UpdateGuestPreferredLanguageMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestPreferredLanguageMutation,\n TError,\n [\n typeof UpdateGuestPreferredLanguageDocument,\n Types.UpdateGuestPreferredLanguageMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestTravelAccountsDocument = {\n operationName: 'updateGuestTravelAccounts',\n operationString: `mutation updateGuestTravelAccounts($guestId: BigInt!, $language: String!, $input: GuestTravelAccountsInput!) {\n updateGuestTravelAccounts(guestId: $guestId, language: $language, input: $input) {\n data {\n corporateAccount\n travelAgentNumber\n unlimitedBudgetNumber\n aarpNumber\n aaaNumber\n aaaInternationalNumber\n travelAgentNumber\n governmentMilitary\n }\n error {\n code\n message\n }\n }\n}`,\n originalOpName: 'updateGuestTravelAccounts',\n};\nexport function useUpdateGuestTravelAccountsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestTravelAccountsMutation,\n TError,\n [typeof UpdateGuestTravelAccountsDocument, Types.UpdateGuestTravelAccountsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestTravelAccountsMutation,\n TError,\n [typeof UpdateGuestTravelAccountsDocument, Types.UpdateGuestTravelAccountsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestUsernameDocument = {\n operationName: 'updateGuestUsername',\n operationString: `mutation updateGuestUsername($guestId: BigInt!, $language: String!, $confirmNewUsername: String!, $newUsername: String!) {\n updateGuestUsername(\n guestId: $guestId\n language: $language\n input: {confirmNewUsername: $confirmNewUsername, newUsername: $newUsername}\n ) {\n data\n error {\n code\n }\n }\n}`,\n originalOpName: 'updateGuestUsername',\n};\nexport function useUpdateGuestUsernameMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestUsernameMutation,\n TError,\n [typeof UpdateGuestUsernameDocument, Types.UpdateGuestUsernameMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestUsernameMutation,\n TError,\n [typeof UpdateGuestUsernameDocument, Types.UpdateGuestUsernameMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestMarketingSubscriptionOptOutDocument = {\n operationName: 'updateGuestMarketingSubscriptionOptOut',\n operationString: `mutation updateGuestMarketingSubscriptionOptOut($language: String!, $email: String!) {\n updateGuestMarketingSubscriptionOptOut(\n language: $language\n emailAddress: $email\n ) {\n data\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateGuestMarketingSubscriptionOptOut',\n};\nexport function useUpdateGuestMarketingSubscriptionOptOutMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.UpdateGuestMarketingSubscriptionOptOutMutation,\n TError,\n [\n typeof UpdateGuestMarketingSubscriptionOptOutDocument,\n Types.UpdateGuestMarketingSubscriptionOptOutMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestMarketingSubscriptionOptOutMutation,\n TError,\n [\n typeof UpdateGuestMarketingSubscriptionOptOutDocument,\n Types.UpdateGuestMarketingSubscriptionOptOutMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateSubscriptionsDocument = {\n operationName: 'updateSubscriptions',\n operationString: `mutation updateSubscriptions($language: String!, $guestId: BigInt!, $input: SubscriptionsInput!) {\n updateSubscriptions(language: $language, guestId: $guestId, input: $input) {\n data {\n subscriptions {\n optOuts {\n survey\n marketing\n global\n }\n marketingSubscriptions\n hhonorsSubscriptions\n }\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateSubscriptions',\n};\nexport function useUpdateSubscriptionsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateSubscriptionsMutation,\n TError,\n [typeof UpdateSubscriptionsDocument, Types.UpdateSubscriptionsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateSubscriptionsMutation,\n TError,\n [typeof UpdateSubscriptionsDocument, Types.UpdateSubscriptionsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\n","import type { CpmDataBundle, KeyedMappingDefinition } from '@dx-ui/cpm-sdk';\nimport type { AuthClient } from '@dx-ui/framework-auth-provider';\nimport { getOneLinkProps, serverSideOneLinkConfig } from '@dx-ui/framework-i18n';\nimport { getServerSideSafeLanguage, makeServerQueryClient } from '@dx-ui/framework-react-query';\nimport { type QueryClient } from '@tanstack/react-query';\nimport type { Request as ExpressRequest } from 'express';\nimport { serverSideTranslations } from 'next-i18next/serverSideTranslations';\nimport { REACT_QUERY_CONFIG } from '../../config/react-query';\nimport nextI18nextConfig from '../../next-i18next.config';\nimport type {\n Brand_CountriesQuery,\n Brand_HiltonForBusinessQuery,\n Brand_NonMemberQuery,\n FeatureTogglesQuery,\n HonorsTierBenefitsQuery,\n} from '@dx-ui/queries-dx-guests-ui';\nimport { auth } from '../auth';\nimport { getSupportedLanguages } from '../featureToggles';\nimport { getDehydratedQueryState } from '../getDehydratedState';\nimport { getSpeedBumpFeatureConfig } from '@dx-ui/osc-speedbump';\nimport { getBrandRefreshProps } from '@dx-ui/framework-theme';\nimport { serverSideFeatureTogglesQuery } from '../../queries/generated/react-query';\nimport { featureFlags } from '../constants/featureFlags';\nimport type { FeatureTogglesQueryData } from '@dx-ui/utilities-feature-toggles-configs';\nimport { logError, logWarning } from '@dx-ui/framework-logger';\nimport { generateError } from '@dx-ui/utilities-generate-error';\n\nexport const QUERY_LANGUAGE_KEY = ['queryLanguage'];\n\ntype Metrics = {\n trackingData: {\n pageView: string;\n pageData: {\n pageDetail?: string[];\n pageName?: string;\n pageType: string;\n subSection?: string;\n subSubSection?: string;\n pageCategory?: string;\n primaryCategory?: string;\n isCmsPage?: boolean;\n expType?: string;\n };\n };\n};\n\ntype PageProps = {\n countriesData?: Brand_CountriesQuery;\n cmsData?: Brand_HiltonForBusinessQuery;\n cpmData?: CpmDataBundle<KeyedMappingDefinition>;\n env?: unknown;\n featureToggles?: FeatureTogglesQueryData['featureToggles'];\n forwardUrl?: string;\n hasCustomCanonicalUrl?: boolean;\n layout?: Record<string, string | null | boolean>;\n memberBenefitsData?: HonorsTierBenefitsQuery;\n metrics?: Metrics;\n nonMemberData?: Brand_NonMemberQuery;\n remoteIp?: string;\n};\n\ninterface CoreServerSideProps {\n authClient?: AuthClient;\n context: GetServerSidePropsContext;\n dehydratedOriginalOpNames?: string[];\n isOneLinkPage?: boolean;\n namespaces: string[];\n pageProps: PageProps;\n queryClient?: QueryClient;\n includeConfigRules?: boolean;\n}\n\nasync function coreServerSideProps({\n dehydratedOriginalOpNames,\n authClient: authClientProp,\n context,\n namespaces,\n pageProps,\n queryClient: queryClientProp,\n includeConfigRules,\n}: CoreServerSideProps) {\n const authClient = authClientProp || auth(context.req as unknown as Request);\n const queryClient =\n queryClientProp ||\n makeServerQueryClient({\n ...REACT_QUERY_CONFIG,\n serverResponse: context.res,\n authClient,\n });\n\n const originalLocale = getServerSideSafeLanguage(context);\n const oneLinkConfig = await serverSideOneLinkConfig(queryClient).catch((error) => {\n logError('SERVER_SIDE_PROPS', generateError(error), `Error in ${serverSideOneLinkConfig.name}`);\n return null;\n });\n const appNameConfig: string = REACT_QUERY_CONFIG.appName;\n const oneLinkProps = getOneLinkProps(\n originalLocale || context.locale,\n appNameConfig,\n context.resolvedUrl,\n oneLinkConfig\n );\n const [translations, { configRules, supportedLanguages }, featureTogglesData] = await Promise.all(\n [\n serverSideTranslations(oneLinkProps.sstLocale, namespaces, nextI18nextConfig).catch(\n (error) => {\n logError(\n 'SERVER_SIDE_PROPS',\n generateError(error),\n `Error in ${serverSideTranslations.name}`\n );\n\n return {};\n }\n ),\n getSupportedLanguages({\n client: queryClient,\n path: (context.req as ExpressRequest)?.path,\n locales: context.locales,\n }),\n serverSideFeatureTogglesQuery(queryClient, {\n flags: featureFlags,\n }).catch((error) => {\n logWarning(\n 'SERVER_SIDE_PROPS',\n generateError(error),\n `Error in ${serverSideFeatureTogglesQuery.name} | ${featureFlags}`\n ); // eslint-disable-line no-console\n return { featureToggles: [] } as FeatureTogglesQuery;\n }),\n getSpeedBumpFeatureConfig(queryClient).catch((error) => {\n logError(\n 'SERVER_SIDE_PROPS',\n generateError(error),\n `Error in ${getSpeedBumpFeatureConfig.name}`\n );\n }),\n ]\n );\n queryClient.setQueryData(QUERY_LANGUAGE_KEY, oneLinkProps.sstLocale);\n const featureToggles = [\n ...(pageProps?.featureToggles || []),\n ...featureTogglesData.featureToggles,\n ];\n\n return {\n ...pageProps,\n ...translations,\n ...oneLinkProps,\n ...(includeConfigRules && { configRules }),\n ...getBrandRefreshProps({ featureToggles }),\n supportedLanguages,\n featureToggles,\n dehydratedState: getDehydratedQueryState({\n queryClient,\n dehydratedOriginalOpNames,\n }),\n };\n}\n\ntype IncludedGuestIdProp = { guestId: number };\ntype OptionalGuestIdProp = { guestId?: never };\n\ntype CoreReturnProps = Awaited<ReturnType<typeof coreServerSideProps>>;\n\ntype ServerSideProps =\n | (CoreServerSideProps & OptionalGuestIdProp)\n | (CoreServerSideProps & IncludedGuestIdProp);\n\ntype ReturnGuestIdProp<T extends ServerSideProps> = T extends { guestId: number }\n ? IncludedGuestIdProp\n : OptionalGuestIdProp;\n\nexport async function serverSideProps<T extends ServerSideProps>({ guestId, ...coreProps }: T) {\n const props = await coreServerSideProps(coreProps).catch((error) => {\n logError('SERVER_SIDE_PROPS', generateError(error), `Error in ${coreServerSideProps.name}`);\n return {};\n });\n\n return {\n props: {\n ...(!!guestId && { guestId }),\n ...props,\n } as CoreReturnProps & ReturnGuestIdProp<T>,\n };\n}\n","import { allEnv } from '@dx-ui/framework-env';\n\nimport type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport type { GetServerSidePropsContext } from 'next';\nimport { getServerSideSafeLanguage } from '@dx-ui/framework-react-query';\nimport type { AuthClient } from '@dx-ui/framework-auth-provider';\nimport { serverSideGuest_GetHHonorsNumberQuery } from '@dx-ui/queries-dx-guests-ui';\nimport type { QueryClient } from '@tanstack/react-query';\nimport { logError } from '@dx-ui/framework-logger';\nimport { generateError } from '@dx-ui/utilities-generate-error';\n\nconst { OHW_BASE_URL } = allEnv();\n\n/**\n * Get base application url.\n */\nconst getUrlHost = () => new URL(OHW_BASE_URL).origin;\n\n/**\n * Get full path for asset located in dx-assets-ui.\n * @param path - Asset path ('/modules/assets/fonts/loew/black.woff2')\n */\nexport const getAssetUrl = (path: string) => getExternalUrl(`/modules/assets${path}`);\n\n/**\n * @param path - Page path ('/en/locations/')\n */\nconst getExternalUrl = (path: string) => new URL(path, getUrlHost()).toString();\n\n/**\n * Get login url\n * @param forwardPageURI\n * @param language\n */\nconst getLoginUrl = ({\n language,\n forwardPageURI,\n}: {\n language: string;\n forwardPageURI?: string | null;\n}) => {\n const loginUrl = new URL(getExternalUrl(`/${language}/hilton-honors/login/`));\n if (forwardPageURI) {\n const refererUrl = new URL(forwardPageURI, getUrlHost());\n const { searchParams } = refererUrl;\n searchParams.set('forwardPageURI', forwardPageURI);\n searchParams.delete('language');\n loginUrl.search = searchParams.toString();\n }\n\n return loginUrl;\n};\n\n/**\n * Get relative login url\n */\nexport const getLoginRedirectUrl = (\n resolvedUrl: string,\n query: ParsedUrlQuery,\n locale: SupportedLanguage\n) => {\n const redirectSearchQuery = new URLSearchParams(query as Record<string, string>);\n redirectSearchQuery.set('forwardPageURI', encodeURIComponent(`/${locale}${resolvedUrl}`));\n return `${OHW_BASE_URL}${locale}/hilton-honors/login/?${redirectSearchQuery.toString()}`;\n};\n\nexport const getServerSideLoginRedirectUrl = (context: GetServerSidePropsContext) => {\n const originalLocale = getServerSideSafeLanguage(context);\n const language = (originalLocale || context.locale) as SupportedLanguage;\n return getLoginRedirectUrl(context.resolvedUrl, context.query, language);\n};\n\nconst getGuestIdAndRedirectFn = async ({\n authClient,\n locale,\n queryClient,\n redirectUrl,\n}: {\n authClient: AuthClient;\n locale: SupportedLanguage;\n queryClient: QueryClient;\n redirectUrl: string;\n}) => {\n let guestId = authClient.getGuestId();\n\n if (guestId) {\n const data = await serverSideGuest_GetHHonorsNumberQuery(queryClient, {\n language: locale,\n guestId,\n }).catch((error) => {\n logError(\n 'URL_BUILDER',\n generateError(error),\n `Error in ${serverSideGuest_GetHHonorsNumberQuery.name}`\n );\n return null;\n });\n if (!data?.guest?.hhonors?.hhonorsNumber) {\n guestId = null;\n }\n }\n\n return {\n guestId,\n logoutAndRedirect: async () => {\n await authClient.logout();\n return {\n redirect: {\n permanent: false,\n destination: redirectUrl,\n },\n };\n },\n };\n};\n\nexport { getExternalUrl, getGuestIdAndRedirectFn, getLoginUrl, getUrlHost };\n","const getQueryParameters = (url: string): Record<string, string> => {\n const queryString = url?.split('?')[1];\n const params: Record<string, string> = {};\n\n if (queryString) {\n queryString.split('&').forEach((param) => {\n const [name, value] = param.split('=') as [string, string];\n params[name] = value;\n });\n }\n\n return params;\n};\n\nconst doesUrlHaveQueryParameters = (url: string): boolean =>\n /\\?/.test(url?.split('/')?.slice(-1)[0] || '');\n\nconst getTranslateRuleUrl = (url: URL): string => {\n let translateRuleUrl = url.pathname;\n if (!translateRuleUrl?.endsWith('/')) {\n translateRuleUrl = translateRuleUrl + '/';\n }\n\n return translateRuleUrl;\n};\n\nexport { doesUrlHaveQueryParameters, getQueryParameters, getTranslateRuleUrl };\n","/**\n * Type of default actions supported by metrics\n *\n * @module ActionTypes\n * @internal\n */\nconst ActionTypes = {\n PAGE_VIEW: 'pageView', // request page view track\n TRACK: 'track', // request custom link track\n};\n\nexport default ActionTypes;\n","const EXCLUDES = ['constructor'].concat(Object.getOwnPropertyNames(Object.getPrototypeOf({})));\n\nexport function filterKeysByType(obj, total = [], type = 'function') {\n return Object.getOwnPropertyNames(obj).filter((key) => {\n return (\n total.indexOf(key) === -1 &&\n EXCLUDES.indexOf(key) === -1 &&\n key.indexOf('_') !== 0 && // consider it's private\n // eslint-disable-next-line no-prototype-builtins\n obj.hasOwnProperty(key) &&\n typeof obj[key] === type\n );\n });\n}\n\nexport function aggregateApisByType(obj, total = []) {\n const keys = [];\n while (obj !== null) {\n // eslint-disable-line no-eq-null\n const arr = filterKeysByType(obj, total);\n keys.push(...arr);\n obj = Object.getPrototypeOf(obj);\n }\n return keys;\n}\n\n// extracts lists of methods from each service object.\nexport default function extractApis(services) {\n services = Array.isArray(services) ? services : [services];\n const apis = services.reduce((total, service) => {\n const obj = service.constructor === Object ? service : Object.getPrototypeOf(service);\n const keys = aggregateApisByType(obj, total);\n total.push(...keys);\n return total;\n }, []);\n\n return apis;\n}\n","/* eslint-disable no-empty */\nimport ActionTypes from './ActionTypes';\nimport { aggregateApisByType } from './utils/extractApis';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = function () {};\n\nfunction isService(obj) {\n const functionProps = aggregateApisByType(obj);\n return functionProps.length > 0;\n}\n\nexport const defaultService = {\n [ActionTypes.PAGE_VIEW]: noop,\n [ActionTypes.TRACK]: noop,\n};\n\nexport default function createService(options = {}) {\n const { api } = options;\n let instance = defaultService;\n function instantiate() {\n const ClassType = api;\n return new ClassType(options);\n }\n if (typeof api === 'function') {\n let inst;\n try {\n inst = api(options);\n } catch {\n } finally {\n if (!inst || !isService(inst)) {\n inst = instantiate();\n }\n if (isService(inst)) {\n instance = inst;\n }\n }\n } else if (api && typeof api === 'object' && isService(api)) {\n instance = api;\n }\n const name = options.name || instance.name;\n return { name, apis: instance };\n}\n","// to support Promise-like object.\nexport default function isPromise(value) {\n return value && typeof value.then === 'function';\n}\n","const attr2obj = (elem, prefix = 'data') => {\n const attrs = elem.attributes;\n const dataAttrs = {};\n const rdashAlpha = /-([\\da-z])/gi;\n const fcamelCase = (all, letter) => {\n return letter.toUpperCase();\n };\n const camelCase = (string) => {\n return string.replace(rdashAlpha, fcamelCase);\n };\n\n if (elem.nodeType === 1) {\n let i = attrs.length;\n while (i--) {\n const name = attrs[i].name;\n if (name.indexOf(`${prefix}-`) === 0) {\n const camelName = camelCase(name.slice(prefix.length + 1));\n dataAttrs[camelName] = elem.getAttribute(name);\n }\n }\n }\n return dataAttrs;\n};\n\nexport default attr2obj;\n","import EventListener from 'fbjs/lib/EventListener';\nimport attr2obj from './utils/attr2obj';\n\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport class TrackBindingPlugin {\n constructor({ attributePrefix = 'data-metrics', traverseParent = false } = {}) {\n this._attributePrefix = attributePrefix;\n this._traverseParent = traverseParent;\n }\n\n listen(callback, rootElement = document.body) {\n if (typeof callback !== 'function') {\n throw new Error('callback needs to be a function.');\n }\n\n if (rootElement && rootElement.nodeType !== 1) {\n throw new Error('rootElement needs to be a valid node element.');\n }\n\n if (this._clickHandler) {\n this.remove();\n }\n\n this._rootElement = rootElement;\n this._clickHandler = EventListener.listen(\n rootElement,\n 'click',\n this._handleClick.bind(this, callback)\n );\n\n return {\n target: this,\n remove: this.remove.bind(this),\n };\n }\n\n remove() {\n if (this._clickHandler) {\n this._clickHandler.remove();\n this._clickHandler = null;\n }\n }\n\n /**\n * A click handler to perform custom link tracking, any element with 'metrics-*' attribute will be tracked.\n *\n * @method _handleClick\n * @param {Object} event\n * @private\n */\n _handleClick(callback, event) {\n if (isModifiedEvent(event) || !isLeftClickEvent(event)) {\n return;\n }\n\n let elem = event.target || event.srcElement;\n let dataset = this._getData(elem);\n\n if (this._traverseParent) {\n const rootElement = this._rootElement;\n while (elem !== rootElement) {\n elem = elem.parentElement || elem.parentNode;\n dataset = { ...this._getData(elem), ...dataset };\n }\n }\n\n if (!Object.keys(dataset).length) {\n return;\n }\n\n const eventName = dataset && dataset.eventName;\n const mergePagedefaults = dataset && dataset.mergePagedefaults;\n delete dataset.mergePagedefaults;\n\n if (eventName) {\n delete dataset.eventName;\n callback(eventName, dataset, mergePagedefaults === 'true');\n }\n }\n\n _getData(elem) {\n return attr2obj(elem, this._attributePrefix);\n }\n}\n\nexport default function useTrackBindingPlugin({\n callback,\n rootElement,\n attributePrefix,\n traverseParent,\n}) {\n const trackBindingPlugin = new TrackBindingPlugin({\n attributePrefix,\n traverseParent,\n });\n return trackBindingPlugin.listen(callback, rootElement);\n}\n","import EventEmitter from 'eventemitter3';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nimport warning from 'fbjs/lib/warning';\nimport ActionTypes from './ActionTypes';\nimport createService from './createService';\nimport extractApis from './utils/extractApis';\nimport isPromise from './utils/isPromise';\nimport useTrackBindingPlugin from './useTrackBindingPlugin';\n\nlet qs = {};\nif (canUseDOM) {\n try {\n qs = Object.fromEntries(new URLSearchParams(window.location.search));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('react-metrics Error - failed to parse query:', e);\n }\n}\n\nconst defaults = {\n pageViewEvent: 'pageLoad',\n pageDefaults: () => ({}),\n requestTimeout: 15 * 1000,\n};\n\nclass Transaction {\n constructor() {\n this.pvTransactions = {};\n this.transactionId = 0;\n }\n\n create() {\n return ++this.transactionId;\n }\n\n current() {\n return this.transactionId;\n }\n\n get(tId) {\n return this.pvTransactions[tId];\n }\n\n set(tId, value) {\n this.pvTransactions[tId] = value;\n }\n\n remove(tId) {\n if (tId && this.pvTransactions[tId]) {\n delete this.pvTransactions[tId];\n }\n }\n\n keys() {\n return Object.keys(this.pvTransactions);\n }\n}\n\nexport class Metrics extends EventEmitter {\n constructor(options = {}) {\n if (!options.vendors) {\n throw new Error(\"'vendors' option is required.\");\n }\n super();\n this.enabled = options.enabled !== false;\n // undocumented option for unit test.\n this.canUseDOM = options.canUseDOM !== undefined ? !!options.canUseDOM : canUseDOM;\n if (!this.canUseDOM) {\n this.enabled = false;\n }\n this.debug = !!options.debug || qs.metrics_debug === 'true';\n this.customParams = options.customParams || {};\n this.pageDefaults = options.pageDefaults || defaults.pageDefaults;\n this.pageViewEvent = options.pageViewEvent || defaults.pageViewEvent;\n this.requestTimeout = options.requestTimeout || defaults.requestTimeout;\n this.cancelOnNext = options.cancelOnNext !== undefined ? !!options.cancelOnNext : true;\n this.vendors = Array.isArray(options.vendors) ? options.vendors : [options.vendors];\n this.services = this.vendors.map((vendor) => createService(vendor));\n this.apiList = extractApis(this.services.map((service) => service.apis));\n this.transaction = new Transaction();\n this.routeState = {};\n this.apiImpl = this.apiList.reduce((impl, api) => {\n impl[api] = (...args) => this._prepareTrack(api, ...args);\n return impl;\n }, {});\n Object.freeze(this.apiImpl);\n }\n\n listen(type, callback) {\n // if type is not specified, listen for all the apis.\n if (typeof type === 'function') {\n callback = type;\n type = null;\n }\n\n if (type) {\n this.on(type, callback);\n } else {\n this.apiList.forEach((api) => {\n this.on(api, callback);\n });\n }\n\n return () => {\n if (type) {\n this.removeListener(type, callback);\n } else {\n this.apiList.forEach((api) => {\n this.removeListener(api, callback);\n });\n }\n };\n }\n\n setRouteState(state) {\n this._cancelPreviousPromiseIfPending();\n this.routeState = state;\n }\n\n /* eslint-disable consistent-return */\n useTrackBinding(rootElement, attributePrefix) {\n if (!this.enabled) {\n return;\n }\n\n // if 'false' is passed as first param, detach listeners\n if (rootElement === false) {\n this._removeTrackBindingListener();\n return;\n }\n\n invariant(\n typeof this.api.track === 'function',\n \"Metrics 'track' method needs to be defined for declarative tracking.\"\n );\n\n if (this._trackBindingListener) {\n this._removeTrackBindingListener();\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n this._trackBindingListener = useTrackBindingPlugin({\n callback: this._handleClick.bind(this),\n rootElement,\n attributePrefix,\n });\n\n return this._removeTrackBindingListener.bind(this);\n }\n\n destroy() {\n this._removeListeners();\n this._removeTrackBindingListener();\n }\n\n get api() {\n return this.apiImpl;\n }\n /**\n * @method _callServices\n * @param type\n * @param promise\n * @returns {Promise.<T>}\n * @private\n */\n _callServices(type, promise) {\n return promise.then((params) => {\n params = params || [];\n const results = [];\n const services = this.services;\n const requestTimeout = this.requestTimeout;\n\n function isCompleted() {\n return results.length === services.length;\n }\n\n function clearTimer(timer) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n return new Promise((resolve) => {\n function process(result) {\n if (this.isTimeout) {\n return;\n }\n this.isTimeout = true;\n clearTimer(this.timer);\n results.push(result);\n if (isCompleted()) {\n resolve(results);\n }\n }\n\n services.map((service) => {\n const { apis, name } = service;\n const apiExists = apis && apis[type];\n if (apiExists) {\n warning(\n typeof apis[type] === 'function',\n `'${type}'${name ? `(${name} Service)` : ''} is not a function`\n );\n }\n let requestPromise =\n apiExists && typeof apis[type] === 'function' ? apis[type](...params) : undefined;\n if (!isPromise(requestPromise)) {\n requestPromise = Promise.resolve(requestPromise);\n }\n requestPromise.isTimeout = false;\n requestPromise.timer = setTimeout(process.bind(requestPromise), requestTimeout, {\n name,\n params,\n error: new Error(`Request time out after ${requestTimeout} ms.`),\n status: 'failure',\n });\n return requestPromise\n .then((response) => ({\n name,\n params,\n response,\n status: 'success',\n }))\n .catch((error) => ({\n name,\n params,\n error,\n status: 'failure',\n }))\n .then(process.bind(requestPromise));\n });\n });\n });\n }\n /**\n * Cancels page view promise if it's still pending while the route has changed.\n *\n * @method _cancelPreviousPromiseIfPending\n * @private\n */\n _cancelPreviousPromiseIfPending() {\n this.routeState = {};\n this.transaction.keys().forEach((tId) => {\n const entry = this.transaction.get(tId);\n if (entry && entry.cancelOnNext) {\n entry.shouldCancel = true;\n }\n });\n }\n\n /**\n * @method _createTransaction\n * @param args\n * @private\n */\n _createTransaction(args) {\n const tId = this.transaction.current();\n const cancelOnNext = this.cancelOnNext;\n this.transaction.set(tId, {\n promise: args[0],\n cancelOnNext,\n });\n args.push(tId);\n }\n /**\n * @method _clearTransaction\n * @param tId\n * @private\n */\n _clearTransaction(tId) {\n this.transaction.remove(tId);\n }\n /**\n * @method _doTrack\n * @param type\n * @param promise\n * @param tId\n * @private\n */\n _doTrack(type, promise, tId) {\n promise = this._callServices(type, promise);\n const dispatchEvent = function (status, response, error) {\n const eventFacade = {\n type,\n status,\n };\n if (response) {\n eventFacade.response = response;\n } else if (error) {\n eventFacade.error = error;\n }\n if (tId) {\n eventFacade.transactionId = tId;\n this._clearTransaction(tId);\n }\n this.emit(type, eventFacade);\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log('track result', eventFacade);\n }\n }.bind(this);\n\n promise\n .then((response) => {\n dispatchEvent(\n response.every((item) => item.status === 'success') ? 'success' : 'failure',\n response\n );\n })\n .catch((error) => {\n dispatchEvent('failure', null, error);\n });\n }\n /**\n * Returns the default tracking data provided by a helper object.\n *\n * @method __getDefaultData\n * @return {Object}\n * @private\n */\n _getDefaultData(state) {\n return this.pageDefaults(state);\n }\n /**\n * Returns a merged data between the host passed object and the default tracking data provided by a helper object.\n *\n * @method __mergeWith\n * @return {Object}\n * @private\n */\n _mergeWith(data, state) {\n return Object.assign({}, this._getDefaultData(state), this.customParams, data);\n }\n /**\n * Checks if this promise should be cancelled by rejecting it before it's sent to the facade.\n *\n * @method __addCancelHook\n * @param {Promise} promise\n * @returns {Promise}\n * @private\n */\n _addCancelHook(promise) {\n const tId = this.transaction.create();\n return promise.then((data) => {\n return this.transaction.get(tId).shouldCancel\n ? Promise.reject(new Error('Page view cancelled'))\n : data;\n });\n }\n /**\n * Modify the data to include 'eventName' before it's sent to the facade.\n *\n * @method __addEventNameToPromise\n * @param {String} eventName\n * @param {Promise} promise\n * @param {boolean} shouldMerge\n * @returns {Promise}\n * @private\n */\n _addEventNameToPromise(eventName, promise, shouldMerge) {\n return promise.then(\n function (state, data) {\n data = [shouldMerge ? this._mergeWith(data, state) : data];\n data.unshift(eventName);\n return data;\n }.bind(this, this.routeState)\n );\n }\n /**\n * Run checks to the arguments passed to 'pageView' and 'track', set default page view eventName if it's not provided.\n * Also merges the default data with the passed pageView data, and optionally for track data if a flag is set.\n *\n * @method __inspectArguments\n * @param {String} type\n * @param args\n * @returns {Array}\n * @private\n */\n _inspectArguments(type, ...args) {\n let shouldMerge = true;\n if (type !== ActionTypes.PAGE_VIEW) {\n // don't merge `pageDefaults` with track params unless it's explicitly requested by the third argument.\n shouldMerge = false;\n if (type === ActionTypes.TRACK) {\n invariant(\n typeof args[0] === 'string',\n \"Metrics 'track' method requires 'eventName' string as the first argument and object or promise as the second argument.\"\n );\n }\n // this might be confusing but for now, use the last argument as a flag for merge when it's boolean.\n if (args.length >= 3 && typeof args[args.length - 1] === 'boolean') {\n shouldMerge = args[args.length - 1];\n }\n }\n\n // set default page view event name when missing.\n let [eventName, params] = args;\n if (!params && typeof eventName !== 'string') {\n params = eventName;\n eventName = type === ActionTypes.PAGE_VIEW ? this.pageViewEvent : null;\n }\n\n // make sure `params` is a promise.\n if (!isPromise(params)) {\n params = Promise.resolve(params);\n }\n\n // add cancel hook so that it can be cancelled(rejected) if the promise is still pending when the route changes.\n if (type === ActionTypes.PAGE_VIEW) {\n params = this._addCancelHook(params);\n }\n\n // PAGE_VIEW or TRACK should always have `eventName`.\n if (eventName) {\n params = this._addEventNameToPromise(eventName, params, shouldMerge);\n }\n args = [type, params];\n\n if (type === ActionTypes.PAGE_VIEW) {\n this._createTransaction(args);\n }\n\n return args;\n }\n /**\n * @method _prepareTrack\n * @param type\n * @param args\n * @private\n */\n _prepareTrack(type, ...args) {\n if (!this.enabled) {\n return;\n }\n args = this._inspectArguments(type, ...args);\n this._doTrack(...args);\n }\n /**\n * A click handler to perform custom link tracking, any element with 'metrics-*' attribute will be tracked.\n *\n * @method _handleClick\n * @param {Object} params\n * @private\n */\n _handleClick(...args) {\n this.api.track(...args);\n }\n _removeListeners() {\n this.removeAllListeners();\n }\n _removeTrackBindingListener() {\n if (this._trackBindingListener) {\n this._trackBindingListener.remove();\n this._trackBindingListener = null;\n }\n }\n}\n\nexport function isMetrics(value) {\n return (\n value &&\n typeof value.listen === 'function' &&\n typeof value.setRouteState === 'function' &&\n typeof value.useTrackBinding === 'function' &&\n typeof value.destroy === 'function' &&\n typeof value.api === 'object'\n );\n}\n\nexport default function createMetrics(options) {\n const metrics = new Metrics(options);\n return {\n listen: metrics.listen.bind(metrics),\n setRouteState: metrics.setRouteState.bind(metrics),\n useTrackBinding: metrics.useTrackBinding.bind(metrics),\n destroy: metrics.destroy.bind(metrics),\n get enabled() {\n return metrics.enabled;\n },\n get api() {\n return metrics.api;\n },\n };\n}\n","import createMetrics from './core/createMetrics';\n\nexport { createMetrics };\n","/* eslint-disable no-console */\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport unset from 'lodash/unset';\nimport isEmpty from 'lodash/isEmpty';\nimport type { DigitalData, Satellite } from '../types/types';\nimport { logError } from '@dx-ui/framework-logger';\n\nexport type Options = {\n digitalData?: DigitalData;\n server?: boolean;\n debug?: boolean;\n seedFile?: string;\n};\n\n/**\n * Performs the tracking calls to Adobe Tag Manager.\n * Pulled from https://github.com/nfl/react-metrics/blob/master/examples/vendors/AdobeTagManager.js\n * @module AdobeTagManager\n * @class\n * @internal\n */\nexport default class AdobeTagManager {\n options: Options;\n digitalData: DigitalData;\n pageName: string;\n name: string;\n _promise?: Promise<Satellite | undefined>;\n _satellite?: Satellite;\n constructor(options: Options = {}) {\n this.options = options;\n this.digitalData = options.digitalData || {};\n this.pageName = '';\n this.name = 'Adobe Tag Manager';\n // TODO - Will reliably turn on onmiture debugging vs (_satellite.setDebug(true))\n if (!this.options.server) {\n localStorage.setItem('sdsat_debug', String(this.options.debug));\n }\n }\n\n public setEventInfo(...args: string[]) {\n this._addEventInfo(...args);\n }\n\n public track(eventName: string, params?: unknown, shouldAddEvent?: boolean) {\n if (shouldAddEvent) {\n this._addEventInfo(eventName);\n }\n if (!this.options.server) {\n return new Promise((resolve) => {\n this._load()\n .then((satellite) => {\n this._satellite = this._satellite || satellite;\n this._track(eventName, params);\n resolve({\n eventName,\n params,\n });\n })\n .catch(() => {\n const error = new Error('Omniture: Failed to load seed file');\n logError('AdobeTagManager._load.seedScript.onerror', error);\n resolve(undefined);\n });\n });\n } else {\n return false;\n }\n }\n\n _track(eventName: string, params: unknown) {\n const data = isEmpty(params) ? this.digitalData : params;\n window.digitalData = data as DigitalData;\n if (this._satellite) {\n this._satellite.track?.(eventName);\n }\n }\n\n _load() {\n this._cleanAndSetData();\n return (\n this._promise ||\n (this._promise = new Promise((resolve) => {\n if (window._satellite && window._satellite.track) {\n resolve(window._satellite);\n this.dispatchReady();\n } else {\n const seedScript =\n (document.querySelector('[data-name=\"launch\"]') as HTMLScriptElement) ||\n document.createElement('script');\n\n seedScript.onload = () => {\n resolve(window._satellite);\n this.dispatchReady();\n };\n\n seedScript.onerror = () => {\n const error = new Error('Adobe analytics script failed to load seed file');\n logError('AdobeTagManager._load.seedScript.onerror', error);\n resolve(undefined);\n };\n\n seedScript.src = String(this.options.seedFile);\n seedScript.setAttribute('async', 'true');\n document.head.appendChild(seedScript);\n }\n }))\n );\n }\n\n _addEventInfo(...names: string[]) {\n names = Array.isArray(names) ? names : [names];\n const events = names.map((name) => ({ eventInfo: { eventAction: name } }));\n this.digitalData.event?.push(...events);\n }\n\n _resetEvents() {\n this.digitalData.event = [];\n }\n\n _set(path: string, value: unknown) {\n set(this.digitalData, path, value);\n }\n\n _unset(path: string, _value?: string) {\n unset(this.digitalData, path);\n }\n\n /**\n * Nov 7, 2018: the following fields are what Hilton's custom Adobe Launch script will expect.\n * Check if the required fields exist and initialize them if they do not.\n * @method _cleanAndSetData\n * @private\n */\n _cleanAndSetData() {\n const propertySearchLocationPath = 'page.attributes.propertySearchLocation';\n const propertySearchLocation = get(this.digitalData, propertySearchLocationPath);\n if (propertySearchLocation === undefined) {\n this._set(propertySearchLocationPath, '');\n }\n\n const propertySearchDateInfoPath = 'page.attributes.propertySearchDateInfo';\n const propertySearchDateInfo = get(this.digitalData, propertySearchDateInfoPath);\n if (propertySearchDateInfo === undefined) {\n this._set(propertySearchDateInfoPath, '00:00:00:00');\n }\n\n const productIDPath = 'product[0].productInfo.productID';\n const productID = get(this.digitalData, productIDPath);\n if (productID === undefined) {\n this._set('product', [{ productInfo: { productId: '' } }]);\n }\n\n window.digitalData = this.digitalData;\n }\n\n private dispatchReady() {\n window.dispatchEvent(new CustomEvent('metrics-ready'));\n }\n}\n","import type { Options } from '../AdobeTagManager/AdobeTagManager';\nimport type AdobeTagManager from '../AdobeTagManager/AdobeTagManager';\n\ntype MetricsConfigOptions = Options & { Interface: typeof AdobeTagManager };\n\nconst metricsConfig = ({\n debug,\n digitalData,\n Interface,\n seedFile,\n server,\n}: MetricsConfigOptions) => ({\n enabled: true,\n vendors: [\n {\n name: 'Adobe Tag Manager',\n api: new Interface({\n debug,\n digitalData,\n seedFile,\n server,\n }),\n },\n ],\n debug,\n});\n\nexport default metricsConfig;\n","export const ImageClickID = {\n Scroll: 'scroll',\n Img: 'img',\n} as const;\n\nexport type ImageClickIDType = ValuesOf<typeof ImageClickID>;\n\nexport const ImageFunction = {\n NoValue: 'no_value',\n Modal: 'modal',\n Link: 'link',\n} as const;\n\nexport type ImageFunctionType = ValuesOf<typeof ImageFunction>;\n\nexport const ImageType = {\n NoValue: 'no_value',\n Dynamic: 'dynamic',\n Carousel: 'carousel',\n Collage: 'collage',\n Full: 'full',\n Half: 'half',\n Headliner: 'headliner',\n Hero: 'hero',\n Filmstrip: 'filmstrip',\n Patchwork: 'patchwork',\n Offset: 'offset',\n Gallery: 'gallery',\n Masthead: 'Masthead',\n Sticky: 'sticky',\n} as const;\n\nexport type ImageTypeType = ValuesOf<typeof ImageType>;\n\n// Common fields for all Image components\nexport type BaseImageMetrics = {\n click: {\n clickID: ImageClickIDType;\n };\n osc: {\n image: {\n itemTitle?: string;\n headline?: string;\n position?: number;\n count?: number;\n function?: ImageFunctionType;\n type?: ImageTypeType;\n };\n };\n};\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { logWarning } from '@dx-ui/framework-logger';\nimport type { DigitalData } from '../types/types';\n\nexport function clearImageAnalyticsData() {\n if (!isBrowser) return;\n\n if (!window.digitalData) {\n logWarning('clearImageAnalyticsData()', new Error('window.digitalData is not defined.'));\n return;\n }\n\n const imageKeysToDelete: (keyof DigitalData)[] = ['click', 'osc'];\n\n imageKeysToDelete.forEach((key) => {\n if (window.digitalData && key in window.digitalData) {\n delete window.digitalData[key];\n }\n });\n}\n","import get from 'lodash/get';\nimport set from 'lodash/set';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { env } from '@dx-ui/framework-env';\n\nexport const ANALYTICS_GLOBAL_CLICK_EVENT = 'global_click';\nexport const ANALYTICS_NO_VALUE = 'no_value';\n\nconst isAnalyticsImageTrackingEnabled = env('ANALYTICS_OSC_TRACKING_ENABLED') === 'true';\n\n/**\n * Track an event with the given name and metrics\n */\nexport function trackEvent(eventName: string, metrics: Record<string, unknown>) {\n if (!isAnalyticsImageTrackingEnabled) return; // Early return if tracking is disabled\n\n if (isBrowser && window.digitalData && window._satellite?.track) {\n const { digitalData } = window;\n const satellite = window._satellite;\n\n Object.entries(metrics).forEach(([key, value]) => {\n // Handle array values\n if (Array.isArray(value)) {\n const existingValue = get(digitalData, key);\n if (Array.isArray(existingValue)) {\n // Merge arrays for exisitng values\n set(digitalData, key, [...existingValue, ...value]);\n } else {\n // Set the array directly\n set(digitalData, key, value);\n }\n } else {\n // Set the value as usual for non-array values\n set(digitalData, key, value);\n }\n });\n\n satellite?.track?.(eventName);\n } else {\n /* eslint-disable no-console */\n console.warn('digitalData or _satellite not found');\n }\n}\n","import { createMetrics } from './react-metrics';\nimport AdobeTagManager from './AdobeTagManager/AdobeTagManager';\nimport metricsConfig from './config/metricsConfig';\nexport * from './types/imageMetrics';\nexport * from './types/types';\nexport * from './utils/clearImageAnalyticsData';\nexport * from './utils/trackEvent';\nexport * from './utils/utils';\n\nexport { AdobeTagManager, createMetrics, metricsConfig };\n","import { createContext } from 'react';\nimport type { AuthClient } from './auth-client';\nimport type { GuestQuery } from './gql/types';\nimport type { LoginResponse } from './types';\n\nexport type AuthInfo = Record<string, unknown>;\n\nexport type AuthState = {\n authClient: AuthClient | null;\n /** whether or not the current session is authenticated */\n isAuthenticated: boolean;\n authInfo?: AuthInfo;\n login: (response: LoginResponse) => Promise<void>;\n logout: () => Promise<void>;\n refreshGuestInfo: () => Promise<void>;\n guestInfo: GuestQuery['guest'] | null;\n guestId: number | null;\n isLoading: boolean;\n isCorpUser: boolean;\n};\n\nexport const initialContext: AuthState = {\n authClient: null,\n isAuthenticated: false,\n logout: () => Promise.resolve(),\n login: () => Promise.resolve(),\n refreshGuestInfo: () => Promise.resolve(),\n guestInfo: null,\n guestId: null,\n isLoading: false,\n isCorpUser: false,\n};\n\nconst AuthContext = createContext<AuthState>(initialContext);\nAuthContext.displayName = 'AuthContext';\n\nexport { AuthContext };\n","/* eslint-disable no-console */\nimport { useCallback, useEffect, useReducer, useRef } from 'react';\n\nimport * as React from 'react';\nimport type { AuthClient } from './auth-client';\nimport type { AuthInfo } from './auth-context';\nimport { AuthContext } from './auth-context';\nimport type { GuestQuery } from './gql/types';\nimport type { LoginResponse } from './types';\nimport { flushSync } from 'react-dom';\nimport { logWarning } from '@dx-ui/framework-logger';\n\ntype State = {\n loggedIn: boolean;\n guestInfo: GuestQuery['guest'] | null;\n isLoading: boolean;\n authInfo: AuthInfo | undefined;\n authClient: AuthClient;\n};\n\ntype LogoutAction = {\n type: 'logout';\n};\n\ntype GetGuestInfoAction = {\n type: 'GuestInfo';\n data: GuestQuery['guest'];\n};\n\ntype StartFetchingGuestInfo = {\n type: 'StartFetchingGuestInfo';\n};\n\ntype SetAuthInfo = {\n type: 'SetAuthInfo';\n data: AuthInfo;\n};\n\nfunction reducer(\n state: State,\n action: LogoutAction | GetGuestInfoAction | StartFetchingGuestInfo | SetAuthInfo\n) {\n if (action.type === 'logout') {\n return {\n ...state,\n loggedIn: false,\n isLoading: false,\n guestInfo: null,\n };\n }\n if (action.type === 'StartFetchingGuestInfo') {\n return {\n ...state,\n loggedIn: true,\n isLoading: true,\n guestInfo: null,\n };\n }\n if (action.type === 'GuestInfo') {\n return {\n ...state,\n loggedIn: true,\n isLoading: false,\n guestInfo: action.data,\n };\n }\n if (action.type === 'SetAuthInfo') {\n return {\n ...state,\n authInfo: action.data,\n };\n }\n return state;\n}\n\nexport function AuthProvider({\n authClient,\n children,\n onLoginAttempt,\n onLogout,\n initialState,\n}: {\n authClient: AuthClient;\n children: React.ReactNode;\n onLoginAttempt?: (response: LoginResponse) => Promise<AuthInfo>;\n onLogout?: () => Promise<AuthInfo>;\n initialState?: AuthInfo;\n}) {\n const [state, dispatch] = useReducer<typeof reducer>(reducer, {\n authClient,\n loggedIn: !!authClient.getIsLoggedIn(),\n isLoading: authClient.getIsLoggedIn(),\n guestInfo: null,\n authInfo: initialState,\n });\n\n const mounted = useRef<boolean>(false);\n const safeDispatch = useCallback(function (v: Parameters<typeof dispatch>[0]) {\n if (mounted.current) {\n dispatch(v);\n }\n }, []);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n function logoutCb() {\n safeDispatch({\n type: 'logout',\n });\n onLogout?.()\n .then((info) => safeDispatch({ type: 'SetAuthInfo', data: info }))\n .catch((error: Error) => logWarning('AUTH_ON_LOGOUT', error));\n }\n function loginFaliureCb() {\n safeDispatch({\n type: 'logout',\n });\n }\n function loginSuccessCb(response: LoginResponse) {\n flushSync(() =>\n safeDispatch({\n type: 'StartFetchingGuestInfo',\n })\n );\n\n onLoginAttempt?.(response)\n .then((info) => safeDispatch({ type: 'SetAuthInfo', data: info }))\n .catch((error: Error) => logWarning('AUTH_ON_LOGIN_ATTEMPT', error));\n authClient\n .getGuestInfo()\n ?.then((info) => {\n if (info) {\n safeDispatch({\n type: 'GuestInfo',\n data: info?.guest,\n });\n } else {\n safeDispatch({\n type: 'logout',\n });\n }\n })\n .catch((error: Error) => logWarning('AUTH_GET_GUEST_INFO', error));\n }\n authClient.on('logout', logoutCb);\n authClient.on('loginSuccess', loginSuccessCb);\n authClient.on('loginFailure', loginFaliureCb);\n\n authClient\n .getGuestInfo()\n ?.then((info) => {\n if (info?.guest) {\n safeDispatch({\n type: 'GuestInfo',\n data: info?.guest,\n });\n } else {\n safeDispatch({\n type: 'logout',\n });\n }\n })\n .catch((error: Error) => logWarning('AUTH_GET_GUEST_INFO', error));\n\n return () => {\n authClient.off('logout', logoutCb);\n authClient.off('loginSuccess', loginSuccessCb);\n authClient.off('loginFailure', loginFaliureCb);\n };\n }, [authClient, onLoginAttempt, onLogout, safeDispatch]);\n\n const value = {\n authClient,\n isAuthenticated: state.loggedIn,\n logout: () => authClient.logout(),\n login: (response: LoginResponse) => authClient.login(response),\n refreshGuestInfo: () => authClient.refreshGuestInfo(),\n guestInfo: state.guestInfo,\n authInfo: state.authInfo,\n guestId: authClient.getGuestId() || null,\n isLoading: state.isLoading,\n isCorpUser: authClient.isCorpUser(),\n };\n\n return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;\n}\n\nexport function useAuth() {\n const context = React.useContext(AuthContext);\n if (context === undefined) {\n throw new Error(`useAuth must be used within a AuthProvider`);\n }\n return context;\n}\n","const VALID_SAME_SITES = ['none', 'lax', 'strict'];\n\nfunction getDefaultDomain() {\n // eslint-disable-next-line no-restricted-globals\n return location.hostname === 'localhost' ? 'localhost' : '.hilton.com';\n}\n\nexport const setCookie = (\n name: string,\n value: string,\n expires: number | null,\n path = '',\n domain = 'hilton.com',\n secure = true,\n escape = true,\n sameSite = 'lax'\n) => {\n if (undefined === domain) {\n domain = getDefaultDomain();\n }\n\n if (sameSite !== 'lax' && sameSite !== null) {\n sameSite = sameSite.toLowerCase();\n\n if (!VALID_SAME_SITES.includes(sameSite)) {\n throw new TypeError(`sameSite must be one of the following: ${VALID_SAME_SITES}`);\n }\n }\n\n // set time, it's in milliseconds\n const today = new Date(Date.now());\n\n /*\n if the expires variable is set, make the correct\n expires time, the current script below will set\n it for x number of days, to make it for hours,\n delete * 24, for minutes, delete * 60 * 24\n */\n if (expires) {\n expires = expires * 1000 * 60 * 60 * 24;\n }\n const expires_date = new Date(today.getTime() + (expires ?? 0));\n\n const cookieValue = escape ? encodeURIComponent(value) : value;\n\n document.cookie =\n name +\n '=' +\n cookieValue +\n (expires ? ';expires=' + expires_date.toUTCString() : '') +\n (path ? ';path=' + path : '') +\n (domain ? ';domain=' + domain : '') +\n (secure ? ';secure' : '') +\n (sameSite ? ';sameSite=' + sameSite : '');\n};\n\nexport const getCookie = (cname: string) => {\n const name = cname + '=';\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) === ' ') {\n c = c?.substring(1);\n }\n if (c?.indexOf(name) === 0) {\n return decodeURIComponent(c.substring(name.length, c.length));\n }\n }\n return '';\n};\n\nexport const deleteCookie = (name: string, path: string, domain?: string) => {\n if (undefined === domain) {\n domain = getDefaultDomain();\n }\n if (getCookie(name))\n document.cookie =\n name +\n '=' +\n (path ? ';path=' + path : '') +\n (domain ? ';domain=' + domain : '') +\n ';expires=Thu, 01-Jan-1970 00:00:01 GMT';\n};\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const GuestDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n guestId\n userName\n hhonors {\n hhonorsNumber\n isFamilyAndFriends\n isLongTenure10\n isSMBMember\n isTeamMember\n isTeamMemberSpouse\n isOwner\n isLongTenure20\n isOwnerHGV\n isOwnerHGVNew\n isB2BMember\n programAccountSummary(filter: {accountStatus: \"active\"}) {\n accountId\n accountName\n }\n summary {\n points: totalPointsFmt\n tier\n tierName\n totalPoints\n totalPointsFmt\n }\n packages {\n packageName\n }\n }\n personalinfo {\n name {\n firstName @toTitleCase\n lastName @toTitleCase\n nameFmt @toTitleCase\n nameLocalizations {\n firstName\n lastName\n nameFmt\n }\n }\n emails(filter: {preferred: true}) {\n emailAddressHashed\n }\n }\n }\n}`,\n originalOpName: 'guest',\n};\nexport function useGuestQuery<TData = Types.GuestQuery, TError = DXError>(\n variables: Types.GuestQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestQuery, TError, TData>({\n queryKey: [GuestDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestQuery(\n queryClient: QueryClient,\n variables: Types.GuestQueryVariables,\n options?: FetchQueryOptions<Types.GuestQuery>\n) {\n return queryClient.fetchQuery<Types.GuestQuery>({\n queryKey: [GuestDocument, variables],\n ...options,\n });\n}\n","import { EventEmitter } from 'events';\nimport type { CookieSetOptions } from 'universal-cookie';\nimport Cookies from 'universal-cookie';\nimport { setCookie } from './cookie-utils';\nimport type { GuestQuery, GuestQueryVariables } from './gql/types';\nimport { GuestDocument } from './gql/queries';\nimport type { AuthResponse, LoginResponse, WSO2TokenCookie, WebGuestMetadataCookie } from './types';\nimport type { IncomingMessage, OutgoingMessage } from 'http';\nimport { mergeCacheControl } from '@dx-ui/framework-merge-cache-control';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { logError, logInfo } from '@dx-ui/framework-logger';\nimport { triggerInCompleteEvent, isQueryIncomplete } from '@dx-ui/framework-incomplete-event';\n\ntype AuthArgs = {\n authEndpoint: string;\n gqlEndpoint: string;\n request?: IncomingMessage;\n response?: OutgoingMessage | null;\n minExpiresTTL?: number;\n appId: string;\n restore?: Extract;\n ssr?: boolean;\n appName: string;\n language?: string;\n};\n\nexport type Extract = {\n guestInfo?: GuestQuery | null;\n authenticationCookie: WSO2TokenCookie | null;\n};\n\ntype SessionHeaders = 'hltClientMessageId' | 'referer' | 'dx-platform' | 'hltClientSessionId';\n\nexport class AuthClient extends EventEmitter {\n private cookies: Cookies;\n\n public authEndpoint = '';\n\n public gqlEndpoint = '';\n\n public webGuestMetadataCookie: WebGuestMetadataCookie | null = null;\n\n private authenticationCookie: WSO2TokenCookie | null = null;\n\n private userRefreshTokenPromise: null | Promise<WSO2TokenCookie | null> = null;\n\n private minExpiresTTL: number;\n\n private requestTimeoutMs = 30000;\n\n private appTokenPromise: null | Promise<WSO2TokenCookie | null> = null;\n\n private appId = '';\n\n private guestInfoPromise: Promise<null | GuestQuery> | null = null;\n\n private serverResponse: null | OutgoingMessage | undefined;\n\n private ssrMode = false;\n\n private headers: Partial<Record<SessionHeaders, string>> | null = null;\n\n private appName: string | null;\n\n private language = 'en';\n\n private attemptsToGetGuestInfo = 0;\n\n public constructor({\n authEndpoint,\n gqlEndpoint,\n minExpiresTTL,\n appId,\n request,\n response,\n restore,\n ssr,\n appName,\n language,\n }: AuthArgs) {\n super();\n\n this.cookies = new Cookies(request?.headers?.cookie);\n // Force refresh Cookies.cookies private property\n this.cookies.getAll();\n this.authEndpoint = authEndpoint;\n this.gqlEndpoint = gqlEndpoint;\n this.minExpiresTTL = minExpiresTTL || 5 * 60;\n this.appId = appId;\n this.ssrMode = ssr ?? false;\n this.serverResponse = response;\n this.appName = appName || null;\n this.language = language || 'en';\n // check for refresh and do it if necessary\n this.authenticationCookie = restore?.authenticationCookie ?? this.getTokensFromCookie();\n this.webGuestMetadataCookie = this.cookies.get('webGuestMetadata');\n this.headers = this.getRequestHeaders(request);\n\n if (this.webGuestMetadataCookie) {\n if (this.webGuestMetadataCookie.webGuestTokenType === 'tempLogin') {\n // user exited OTP flow early and needs new app token\n this.fetchAppToken().catch((error: Error) =>\n logError(\n 'FRAMEWORK_AUTH_PROVIDER',\n error,\n 'Calling fetchAppToken() when guestId does not exist on authenticationCookie.'\n )\n );\n } else if (this.getIsLoggedIn()) {\n this.guestInfoPromise = this.fetchGuestInfo();\n }\n } else {\n // old wso2AuthToken flow\n if (this.authenticationCookie?.guestId) {\n try {\n if (this.shouldRefreshToken()) {\n this.guestInfoPromise = this.refreshLoggedInUserToken().then(() =>\n this.fetchGuestInfo()\n );\n } else {\n this.guestInfoPromise = restore?.guestInfo\n ? Promise.resolve(restore?.guestInfo)\n : this.fetchGuestInfo();\n }\n } catch {\n this.fetchAppToken().catch((error: Error) =>\n logError(\n 'FRAMEWORK_AUTH_PROVIDER',\n error,\n 'Calling fetchAppToken() when guestId exists on authenticationCookie.'\n )\n );\n }\n } else if (this.isCorpUser()) {\n // this is a corp user\n if (this.shouldRefreshToken()) {\n this.refreshLoggedInUserToken().catch((error: Error) =>\n logError(\n 'FRAMEWORK_AUTH_PROVIDER',\n error,\n 'Calling refreshLoggedInUserToken() when shouldRefreshToken returns true and isCorpUser() is true.'\n )\n );\n }\n } else {\n // unsure which flow we are in, so call /token\n this.fetchAppToken().catch((error: Error) =>\n logError(\n 'FRAMEWORK_AUTH_PROVIDER',\n error,\n 'Calling fetchAppToken() when guestId does not exist on authenticationCookie.'\n )\n );\n }\n }\n }\n\n /**\n * @description is the user logged in (not anon user)\n */\n public getIsLoggedIn() {\n if (this.webGuestMetadataCookie) {\n return this.isCorpUser() || !!this.webGuestMetadataCookie.guestId;\n }\n return this.isCorpUser() || !!this.authenticationCookie?.guestId;\n }\n\n /**\n * @description returns the guest endpoint\n */\n public getGqlEndpoint() {\n return this.gqlEndpoint;\n }\n\n /**\n * @description returns the auth endpoint\n */\n public getAuthEndpoint() {\n return this.authEndpoint;\n }\n\n /**\n * @description take all server side info, convert to json for later restore\n */\n public async extract(): Promise<Extract> {\n if (this.getIsLoggedIn()) {\n const guestInfo = await this.getGuestInfo();\n return {\n guestInfo,\n authenticationCookie: this.authenticationCookie,\n };\n }\n\n return {\n authenticationCookie:\n this.authenticationCookie?.tokenType === 'Bearer' ? this.authenticationCookie : null,\n };\n }\n\n /**\n * @description refresh the user (or app token), makes API calls to dx-auth-ui and stores a new token\n */\n public refreshToken(): Promise<null> {\n if (this.webGuestMetadataCookie) {\n return Promise.resolve(null);\n }\n // if logged in refresh the user token,\n if (this.getAuthenticationCookie()?.guestId || this.isCorpUser()) {\n return this.refreshLoggedInUserToken().then(() => null);\n }\n // otherwise fetch app token\n return this.fetchAppToken().then(() => null);\n }\n\n /**\n * @description get authorization header that should be sent along with all graphql requests. If logged in guest it will use guest's token, otherwise will use anon app token\n */\n public async getAuthorizationHeader() {\n if (this.webGuestMetadataCookie) {\n return Promise.resolve('');\n }\n // if refreshes are in flight wait\n if (this.userRefreshTokenPromise) {\n await this.userRefreshTokenPromise;\n }\n if (this.appTokenPromise) {\n await this.appTokenPromise;\n }\n const token = this.getAuthenticationCookie();\n if (token?.tokenType && token?.accessToken) {\n return `${token?.tokenType} ${token?.accessToken}`;\n }\n // there is no token set, fallback to auth token\n const apptoken = await this.fetchAppToken();\n if (apptoken) {\n return `${apptoken?.tokenType} ${apptoken?.accessToken}`;\n }\n // todo: figure out what to return if we can't get user token or auth token\n return '';\n }\n\n /**\n * @description get hltClientMessageId, referer, dx-platform, and hltClientSessionId headers\n */\n public getRequestHeaders(request?: IncomingMessage) {\n const headers = {} as Partial<Record<SessionHeaders, string>>;\n request?.rawHeaders?.forEach((value, index, array) => {\n if (/^(hltClientMessageId|referer|dx-platform|hltClientSessionId)$/i.test(value)) {\n headers[value as SessionHeaders] = array[index + 1];\n }\n });\n return headers;\n }\n\n /**\n * @description resulting promise for guest information\n */\n public getGuestInfo() {\n return this.guestInfoPromise;\n }\n\n /**\n * @description get guestId\n */\n public getGuestId() {\n if (this.webGuestMetadataCookie) {\n return this.webGuestMetadataCookie.guestId;\n }\n return this.authenticationCookie?.guestId;\n }\n\n private getAuthenticationCookie() {\n return this.authenticationCookie;\n }\n\n public isCorpUser() {\n if (this.webGuestMetadataCookie) {\n return this.webGuestMetadataCookie.userRealm === 'corp';\n }\n return this.authenticationCookie?.userRealm === 'corp';\n }\n\n private getAppNameParam() {\n return this.appId ? `?appName=${this.appName}` : '';\n }\n\n private refreshLoggedInUserToken() {\n const guestId = this.getAuthenticationCookie()?.guestId;\n // no guestId, nothing to refresh\n if (!guestId && !this.isCorpUser()) {\n return Promise.resolve(null);\n }\n if (this.userRefreshTokenPromise) {\n return this.userRefreshTokenPromise;\n }\n const currentToken = this.getAuthenticationCookie();\n this.userRefreshTokenPromise = fetch(\n `${this.authEndpoint}/dx-customer/auth/${\n this.isCorpUser() ? 'corp' : 'guests'\n }/refresh${this.getAppNameParam()}`,\n {\n method: 'POST',\n cache: 'no-cache',\n headers: {\n ...this.headers,\n 'Content-type': 'application/json; charset=utf-8',\n Accept: 'application/json; charset=utf-8',\n Authorization: `${currentToken?.tokenType} ${currentToken?.accessToken}`,\n },\n }\n ).then(async (res) => {\n if (!res.ok) {\n // logout\n this.invalidateSession();\n\n return this.getAuthenticationCookie();\n }\n\n const json = await res.json();\n\n if (json.error) {\n this.invalidateSession();\n return this.getAuthenticationCookie();\n }\n const { UserClaims, ...rest } = json;\n\n // save to cookies\n this.setUserSessionData({\n userInfo: UserClaims,\n tokenInfo: { ...rest },\n });\n // save to this instance\n this.authenticationCookie = {\n guestId: this.authenticationCookie?.guestId || null,\n accessToken: rest.access_token,\n expiresIn: rest.expires_in,\n tokenType: rest.token_type,\n timestamp: Date.now(),\n userRealm: UserClaims?.userRealm,\n };\n this.userRefreshTokenPromise = null;\n return this.getAuthenticationCookie();\n });\n return this.userRefreshTokenPromise;\n }\n\n public updateAccessToken(accessToken: string) {\n if (this.webGuestMetadataCookie) {\n return;\n }\n const currentAuthenticationCookie = this.getAuthenticationCookie();\n if (currentAuthenticationCookie) {\n const updatedWso2AuthTokenCookie = { ...currentAuthenticationCookie, accessToken };\n if (isBrowser) this.setwso2AuthTokenCookie(updatedWso2AuthTokenCookie);\n this.authenticationCookie = updatedWso2AuthTokenCookie;\n }\n }\n\n public async login({ data, error }: LoginResponse) {\n // let the appToken finish processing, if necessary, so that appTokenPromise, doesn't resolve and overwrite the authentication token\n if (this.appTokenPromise) {\n await this.appTokenPromise;\n }\n if (data) {\n this.setUserSessionData(data);\n\n if (!this.webGuestMetadataCookie) {\n this.authenticationCookie = this.authResponseToAuthCookie(data);\n }\n\n this.guestInfoPromise = this.fetchGuestInfo();\n await this.guestInfoPromise;\n\n this.emit('loginSuccess', data);\n }\n if (error) {\n this.emit('loginFailure', error);\n }\n }\n\n public async logout({ redirectToLoginPage }: { redirectToLoginPage?: boolean } = {}) {\n const logoutUrl = `${this.authEndpoint}/dx-customer/auth/${\n this.isCorpUser() ? 'corp' : 'guests'\n }/logout${this.getAppNameParam()}`;\n const authorization = await this.getAuthorizationHeader();\n\n await fetch(logoutUrl, {\n method: 'POST',\n cache: 'no-cache',\n headers: {\n ...this.headers,\n 'Content-type': 'application/json; charset=utf-8',\n Accept: 'application/json; charset=utf-8',\n ...(!this.webGuestMetadataCookie && { Authorization: authorization }),\n credentials: 'include',\n },\n });\n\n // In anonymous session user cannot be part of SMB program. Clear out value from localStorage if it exists\n if (isBrowser) {\n window.localStorage.removeItem('smbContext');\n window.localStorage.removeItem('smbProgramId');\n }\n\n this.invalidateSession();\n if (redirectToLoginPage) {\n this.redirectToLoginPage();\n }\n }\n\n private redirectToLoginPage() {\n if (typeof window !== 'undefined') {\n const url = `/${this.language}/${\n this.isCorpUser() ? `auth2/api/saml/logout/${this.appName}/` : 'hilton-honors/login/'\n }`;\n window.location.assign(url);\n }\n }\n\n private invalidateSession() {\n this.guestInfoPromise = null;\n this.cookies.remove('wso2AuthToken', {\n path: '/',\n domain: '.hilton.com',\n secure: false,\n sameSite: 'lax',\n });\n this.cookies.remove('authentication', {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n });\n this.cookies.remove('loggedIn', {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n });\n this.cookies.remove('fname', {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n });\n\n this.webGuestMetadataCookie = null;\n this.authenticationCookie = null;\n this.emit('logout');\n }\n\n private authResponseToAuthCookie(data: AuthResponse) {\n const authenticationCookie: WSO2TokenCookie = {\n accessToken: data?.tokenInfo?.access_token,\n expiresIn: data?.tokenInfo?.expires_in,\n tokenType: data?.tokenInfo?.token_type,\n timestamp: Date.now(),\n guestId: data?.userInfo?.guestId || null,\n };\n\n return authenticationCookie;\n }\n\n /**\n * For backwards compatability and to keep our header size small we're using wso2Cookie,\n * even though it actually contains a dx-auth-api token\n * @param data\n */\n private setWso2Cookie(data: AuthResponse) {\n if (typeof window !== 'undefined') {\n const wso2Cookie: WSO2TokenCookie = {\n accessToken: data.tokenInfo.access_token,\n expiresIn: data.tokenInfo.expires_in,\n tokenType: data.tokenInfo.token_type,\n timestamp: Date.now(),\n guestId: data.userInfo?.guestId || null,\n };\n this.setwso2AuthTokenCookie(wso2Cookie);\n // - end of the madness\n }\n }\n\n private setwso2AuthTokenCookie(wso2Cookie: WSO2TokenCookie) {\n // using this cookie package because we do NOT want to use encodeURIComponent when setting\n setCookie(\n 'wso2AuthToken',\n JSON.stringify(wso2Cookie),\n null,\n '/',\n '.hilton.com',\n true,\n false,\n 'lax'\n );\n }\n\n private setUserSessionData(data: AuthResponse) {\n this.webGuestMetadataCookie = this.cookies.get('webGuestMetadata');\n\n if (!this.webGuestMetadataCookie) {\n this.setWso2Cookie(data);\n }\n\n this.setCookie('loggedIn', true, {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n });\n }\n\n private shouldRefreshToken() {\n const token = this.getAuthenticationCookie();\n if (!token) {\n return true;\n }\n const timeout = token?.expiresIn + token?.timestamp;\n return timeout ? timeout - Date.now() / 1000 <= this.minExpiresTTL : true;\n }\n\n private getTokensFromCookie() {\n // first read from authentication if it exists and use that\n const authenticationCookie: AuthResponse = this.cookies.get('authentication');\n if (authenticationCookie && authenticationCookie?.userInfo?.guestId) {\n const wso2AuthShape: WSO2TokenCookie = {\n accessToken: authenticationCookie.tokenInfo?.access_token,\n expiresIn: authenticationCookie?.tokenInfo?.expires_in,\n timestamp: Date.now(),\n tokenType: authenticationCookie?.tokenInfo?.token_type,\n guestId: authenticationCookie?.userInfo?.guestId,\n };\n return wso2AuthShape;\n }\n\n // otherwise fallback to reading wso2AuthToken\n const wso2AuthToken: WSO2TokenCookie = this.cookies.get('wso2AuthToken');\n if (wso2AuthToken) {\n return wso2AuthToken;\n }\n return null;\n }\n\n private fetchAppToken() {\n if (this.ssrMode) {\n // resolve basic auth\n this.appTokenPromise = Promise.resolve({\n accessToken: Buffer.from(`${this.appId}:${this.appId}`).toString('base64'),\n expiresIn: Date.now() / 1000 + 3600,\n tokenType: 'Basic',\n timestamp: Date.now(),\n guestId: null,\n });\n }\n if (this.appTokenPromise) {\n return this.appTokenPromise;\n }\n\n const endpoint = `${\n this.authEndpoint\n }/dx-customer/auth/applications/token${this.getAppNameParam()}`;\n this.appTokenPromise = fetch(endpoint, {\n method: 'POST',\n cache: 'no-cache',\n headers: {\n ...this.headers,\n 'Content-type': 'application/json; charset=utf-8',\n Accept: 'application/json; charset=utf-8',\n credentials: 'include',\n },\n body: JSON.stringify({\n app_id: this.appId,\n }),\n }).then(async (resp) => {\n if (resp.ok) {\n if (this.cookies.get('webGuestMetadata')) {\n this.webGuestMetadataCookie = this.cookies.get('webGuestMetadata');\n return null;\n }\n const json = await resp.json();\n this.authenticationCookie = {\n accessToken: json.access_token,\n expiresIn: json.expires_in,\n tokenType: json.token_type,\n timestamp: Date.now(),\n guestId: null,\n };\n\n this.appTokenPromise = null;\n return this.authenticationCookie;\n }\n this.appTokenPromise = null;\n return null;\n });\n return this.appTokenPromise;\n }\n\n private setCookie(\n name: string,\n value: unknown,\n options: CookieSetOptions = {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n }\n ) {\n try {\n this.cookies.set(name, value, options);\n // eslint-disable-next-line no-empty\n } catch {}\n }\n\n public async refreshGuestInfo(): Promise<void> {\n if (this.webGuestMetadataCookie) {\n return;\n }\n this.guestInfoPromise = this.fetchGuestInfo();\n await this.guestInfoPromise;\n }\n\n private async fetchGuestInfo(): Promise<GuestQuery | null> {\n if (this.attemptsToGetGuestInfo > 2) {\n if (this.webGuestMetadataCookie) {\n await this.logout();\n return null;\n }\n this.invalidateSession();\n return null;\n }\n const userAuth = this.getAuthenticationCookie();\n const guestId = userAuth?.guestId || this.webGuestMetadataCookie?.guestId;\n const authHeader = await this.getAuthorizationHeader();\n if (!this.getIsLoggedIn() || !guestId) {\n return null;\n }\n const variables: GuestQueryVariables = {\n guestId,\n language: this.language,\n };\n const requestInit = {\n headers: {\n ...this.headers,\n 'Content-type': 'application/json; charset=utf-8',\n Accept: 'application/json; charset=utf-8',\n ...(!this.webGuestMetadataCookie && { Authorization: authHeader }),\n credentials: 'include',\n },\n };\n this.attemptsToGetGuestInfo++;\n\n const controller = new AbortController();\n const abortTimeout = setTimeout(() => controller.abort(), this.requestTimeoutMs);\n const requestUrl = `${this.gqlEndpoint}${this.getAppNameParam()}&operationName=guest`;\n const res = await fetch(requestUrl, {\n method: 'POST',\n ...requestInit,\n body: JSON.stringify({\n query: GuestDocument.operationString,\n variables,\n operationName: 'guest',\n }),\n signal: controller.signal,\n }).catch((error: Error) => {\n logInfo('AUTH_CLIENT_FETCH_GUEST_INFO', error, `fetchGuestInfo() requestUrl: ${requestUrl}`);\n return null;\n });\n clearTimeout(abortTimeout);\n\n if (!res) {\n return null;\n }\n\n if (isQueryIncomplete(res)) {\n triggerInCompleteEvent({\n requestBody: {\n operationName: 'guest-authClient',\n originalOpName: 'guest',\n },\n });\n }\n\n if (!res.ok) {\n if (!this.webGuestMetadataCookie && res.status === 401) {\n if (this.attemptsToGetGuestInfo <= 1) {\n await this.refreshToken().catch((error: Error) => {\n logInfo('AUTH_CLIENT_FETCH_GUEST_INFO', error, 'fetchGuestInfo()');\n return null;\n });\n } else {\n return null;\n }\n }\n if (this.webGuestMetadataCookie) {\n await this.logout();\n return null;\n }\n return this.fetchGuestInfo();\n }\n mergeCacheControl(res, this.serverResponse || undefined);\n\n const json = await res.json();\n if (json.errors) {\n await this.refreshToken();\n }\n this.attemptsToGetGuestInfo = 0;\n\n return json.data;\n }\n}\n","import type { IncomingMessage, OutgoingMessage } from 'http';\nimport type { Extract } from './auth-client';\nimport { AuthClient } from './auth-client';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\n\nexport interface GqlEndpoints {\n browser: string;\n server: string;\n}\n\nexport interface AuthEndpoints {\n browser: string;\n server: string;\n}\n\nexport type MakeAuthClientArgs = {\n appId: string;\n appName: string;\n authEndpoints: AuthEndpoints;\n gqlEndpoints: GqlEndpoints;\n request?: IncomingMessage;\n response?: OutgoingMessage;\n restore?: Extract;\n ssrMode?: boolean;\n};\n\nexport function makeAuthClient({\n appName,\n request,\n restore,\n ssrMode,\n response,\n authEndpoints,\n gqlEndpoints,\n appId,\n}: MakeAuthClientArgs) {\n return new AuthClient({\n appName,\n request,\n restore,\n authEndpoint: isBrowser ? authEndpoints?.browser : authEndpoints?.server,\n appId,\n gqlEndpoint: isBrowser ? gqlEndpoints?.browser : gqlEndpoints?.server,\n ssr: ssrMode,\n response,\n });\n}\n","import type { GuestQuery } from './gql/types';\n\ntype GetGuestNameProps = {\n guestInfo?: GuestQuery['guest'] | null;\n ignoreLocalizedName?: boolean;\n};\n\nexport const getGuestFirstName = ({ guestInfo, ignoreLocalizedName }: GetGuestNameProps) => {\n const guestNameObj = guestInfo?.personalinfo?.name;\n if (ignoreLocalizedName) {\n return guestNameObj?.firstName || '';\n }\n return guestNameObj?.nameLocalizations?.[0]?.firstName || guestNameObj?.firstName || '';\n};\n\nexport const getGuestLastName = ({ guestInfo, ignoreLocalizedName }: GetGuestNameProps) => {\n const guestNameObj = guestInfo?.personalinfo?.name;\n if (ignoreLocalizedName) {\n return guestNameObj?.lastName || '';\n }\n return guestNameObj?.nameLocalizations?.[0]?.lastName || guestNameObj?.lastName || '';\n};\n\nexport const getGuestNameFmt = ({ guestInfo, ignoreLocalizedName }: GetGuestNameProps) => {\n const guestNameObj = guestInfo?.personalinfo?.name;\n if (ignoreLocalizedName) {\n return guestNameObj?.nameFmt || '';\n }\n return guestNameObj?.nameLocalizations?.[0]?.nameFmt || guestNameObj?.nameFmt || '';\n};\n\nexport const getGuestNameObj = (\n props: GetGuestNameProps\n):\n | (Omit<\n NonNullable<GuestQuery['guest']>['personalinfo']['name'],\n 'nameLocalizations' | 'nameFmt'\n > & {\n nameFmt: string;\n })\n | undefined => {\n return props.guestInfo\n ? {\n nameFmt: getGuestNameFmt(props),\n firstName: getGuestFirstName(props),\n lastName: getGuestLastName(props),\n }\n : undefined;\n};\n","/* istanbul ignore file */\nexport * from './auth-provider';\nexport * from './auth-context';\nexport * from './auth-client';\nexport * from './cookie-utils';\nexport * from './types';\nexport * from './gql/types';\nexport * from './gql/queries';\nexport * from './make-auth-client';\nexport * from './guest-utils';\n","/* istanbul ignore file */\nexport * from './lib';\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { logError } from '@dx-ui/framework-logger';\n\ndeclare global {\n interface Window {\n conductricsSels?: string;\n conductricsClient?: ClientApi | null;\n Conductrics?: {\n ClientApi: {\n new (args?: ConstructorParams): ClientApi;\n };\n };\n conductricsSelsPath?: string;\n }\n}\n\nexport type AgentStatus = ValuesOf<typeof Status>;\n\nexport const Status = {\n OK: 'ok',\n PENDING: 'p',\n} as const;\n\nexport type Arg = {\n g?: string;\n v?: number;\n a?: string;\n s?: AgentStatus;\n};\n\ntype ClientApi = {\n exec: (args: Arg[], cb: (err: Error | false, result?: Result | null) => void) => void;\n};\n\nexport type ConstructorParams = {\n traits?: string[];\n dataLayer?: string;\n inputs?: { [key: string]: string | number | boolean };\n};\n\nexport type Selection = {\n choice: string | undefined;\n status?: AgentStatus;\n meta?: {\n [key: string]: number | string | boolean;\n };\n};\n\n/**\n * @see https://support.conductrics.com/v3.0/docs/runtime-api-commands\n * @description myconductrics\n */\nexport type Result = {\n sels?: {\n [key: string]: string;\n };\n items?: {\n /**\n * @description name of agent\n */\n a?: string;\n /**\n * @description choice the agent made\n */\n c?: string;\n /**\n * @description meta data on the choice\n */\n md?: {\n [key: string]: number | string | boolean;\n };\n /**\n * @description policy the selected agent was made with\n * p for paused selections (if the agent does not currently have status \"running\")\n * r for random selections (random agents always make random selections)\n * f for fixed selections (the result of a targeted selection rule that you've set up)\n * a for adaptive selections (when an agent selects the \"best\" selection using predictive analytics)\n * c for control selections (adaptive agents set aside a small percentage of visitors as a control group, who always get the default variation)\n * s for sticky selections (if a session has already been assigned a selection previously)\n * b for bot selections (if a bot or search crawler is detected on our side, the default selection is returned but the request is not counted in reporting).\n */\n p?: string;\n /**\n * @name status\n * @description \"ok\" or \"p\" for pending\n */\n s?: AgentStatus;\n }[];\n};\n\nexport type Agent = { agentId: string; status?: AgentStatus };\n\nexport function isApiLoaded() {\n if (!isBrowser) {\n return null;\n }\n return !!window?.Conductrics;\n}\n\nexport function initConductrics(params?: ConstructorParams) {\n if (!isBrowser) {\n return null;\n }\n const conductricsClient =\n (window?.Conductrics && new window.Conductrics.ClientApi(params)) || null;\n window.conductricsClient = conductricsClient;\n return null;\n}\n\nfunction getApi() {\n if (!isBrowser) {\n return null;\n }\n return window.conductricsClient;\n}\n\n/**\n * Add selections to window object for external tracking\n * adds test1Name=choice;\n */\nexport function globalizeSelections(choice?: string, agent?: string) {\n const parts = window.conductricsSels?.split(';').filter(Boolean) || [];\n\n // remove duplicates\n const filteredParts = parts.filter((part) => part.split('=')?.[0] !== agent);\n\n filteredParts.push(`${agent}=${choice}`);\n window.conductricsSels = filteredParts.join(';');\n}\n\n/**\n * \"Normalize\" the passed in agents to match the conductrics API\n */\nfunction normalizeAgents(agent: string | Agent[], s?: AgentStatus) {\n return typeof agent === 'string'\n ? [{ a: agent, ...(!!s && { s }) }]\n : agent.map(({ agentId, status }) => ({\n a: agentId,\n ...(!!status && { s: status }),\n }));\n}\n\nexport function getConductricsSelection(\n agent: string | Agent[],\n status?: AgentStatus\n): Promise<Result | null | undefined> {\n const conductricsApi = getApi();\n if (!conductricsApi) {\n return Promise.resolve(null);\n }\n\n return new Promise((resolve, reject) => {\n const agents = normalizeAgents(agent, status);\n conductricsApi?.exec(agents, (error, result) => {\n if (error) {\n reject(error);\n }\n resolve(result);\n });\n });\n}\n\nexport function setConductricsSelectionOK(agent: string | Agent[]) {\n return getConductricsSelection(agent, Status.OK);\n}\n\nexport function sendRewardAsync(reward: string, value?: number): Promise<void> {\n const conductricsApi = getApi();\n if (!conductricsApi) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n conductricsApi?.exec([{ g: reward, v: value }], (error) => {\n if (error) {\n logError('sendRewardError', error.message, `Reward ID: ${reward}`);\n reject(error);\n return;\n }\n resolve();\n });\n });\n}\n\nexport function sendReward(reward: string, value?: number) {\n const conductricsApi = getApi();\n if (!conductricsApi) {\n return;\n }\n\n conductricsApi?.exec([{ g: reward, v: value }], () => null);\n}\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type { Selection, ConstructorParams, Agent, Result, AgentStatus } from './conductrics';\nimport {\n isApiLoaded,\n getConductricsSelection,\n initConductrics,\n globalizeSelections,\n} from './conductrics';\nimport { useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useEffect } from 'react';\n\nexport type ConductricsSelection = {\n selection: Selection | null;\n isLoaded: boolean;\n error: Error | null;\n};\n\nexport type AgentsSelection = Record<string, ConductricsSelection>;\n\ntype StateTransformer = (agentId: string) => ConductricsSelection;\n\ntype ConductricsResult = Result | null | undefined;\n\nexport type ClientState = {\n isInitialized: boolean;\n isLoading: boolean;\n error: null | Error;\n};\n\nconst getInitKey = () => 'conductricsInit' + (isBrowser ? window.location.pathname : '');\n\nconst queryKeys = {\n initKey: getInitKey(),\n agentKey: 'conductricsSelections',\n} as const;\n\nconst defaultClientState: ClientState = {\n isInitialized: false,\n isLoading: true,\n error: null,\n};\n\nfunction reduceAgents(\n agents: Agent[],\n stateOrTransformer: ConductricsSelection | StateTransformer\n): AgentsSelection {\n return agents.reduce((acc, { agentId }) => {\n const state =\n typeof stateOrTransformer === 'function' ? stateOrTransformer(agentId) : stateOrTransformer;\n return { ...acc, [agentId]: state };\n }, {});\n}\n\nfunction useConductricsClientQuery() {\n return useQuery<ClientState>({\n queryKey: [getInitKey()],\n initialData: defaultClientState,\n gcTime: Infinity,\n staleTime: Infinity,\n enabled: false,\n });\n}\n\nfunction useConductricsSelectionQuery(agents: Agent[], status?: AgentStatus) {\n const { data: clientState } = useConductricsClientQuery();\n const {\n data,\n isSuccess,\n error: queryError,\n isLoading: queryIsLoading,\n } = useQuery<ConductricsResult, Error, ConductricsResult>({\n queryKey: [queryKeys.agentKey, agents, status],\n queryFn: () => getConductricsSelection(agents, status),\n enabled: clientState.isInitialized,\n retry: false,\n });\n\n useEffect(() => {\n if (isSuccess && data?.sels) {\n Object.entries(data.sels).forEach(([agentId, choice]) => {\n globalizeSelections(choice, agentId);\n });\n }\n }, [isSuccess, data]);\n\n const error = clientState.error || queryError;\n const isLoading = clientState.isLoading || (clientState.isInitialized && queryIsLoading);\n return { data, error, isLoading };\n}\n\nfunction useSelection(agents: Agent[], status?: AgentStatus) {\n const isSingleAgent = agents?.length === 1;\n const { data, error, isLoading } = useConductricsSelectionQuery(agents, status);\n\n const isLoaded = !isLoading;\n const defaultState: ConductricsSelection = { selection: null, isLoaded, error };\n const getSelection = (agentId: string) => {\n const item = data?.items?.find(({ a }) => a === agentId);\n return {\n choice: data?.sels?.[agentId],\n status: item?.s,\n meta: item?.md,\n };\n };\n\n // Bail early if the conductrics API is not available\n if (error) {\n return isSingleAgent ? defaultState : reduceAgents(agents, defaultState);\n }\n\n const selectedAgentsState = reduceAgents(agents, (agentId: string) => {\n const selection = getSelection(agentId);\n return { error, isLoaded, selection };\n });\n\n const agentsState: ConductricsSelection | AgentsSelection = isLoaded\n ? selectedAgentsState\n : reduceAgents(agents, defaultState);\n\n // If there's one selection, send back the specific agent's state due to the function signature\n const firstAgent = agents[0];\n return isSingleAgent && firstAgent ? agentsState[firstAgent?.agentId] : agentsState;\n}\n\n// Supports singular or multiple agents (such as MVT)\nexport function useConductricsSelection(\n agentId: string,\n status?: AgentStatus\n): ConductricsSelection;\nexport function useConductricsSelection(agents: Agent[]): AgentsSelection;\nexport function useConductricsSelection(agentId: string | Agent[], status?: AgentStatus) {\n const agents = typeof agentId === 'string' ? [{ agentId, status }] : agentId;\n return useSelection(agents, status);\n}\n\nexport function useInitConductrics() {\n const client = useQueryClient();\n\n // Prime the cache\n useConductricsClientQuery();\n\n if (isBrowser) {\n if (window.conductricsSelsPath !== window.location.pathname) {\n window.conductricsSelsPath = window.location.pathname;\n window.conductricsSels = undefined;\n }\n }\n\n return (params?: ConstructorParams) => {\n if (isApiLoaded()) {\n initConductrics(params);\n client.setQueryData([getInitKey()], {\n isInitialized: true,\n isLoading: false,\n error: null,\n });\n } else {\n client.setQueryData([getInitKey()], {\n isInitialized: false,\n isLoading: false,\n error: new Error('api-load-error'),\n });\n }\n };\n}\n","import type { AgentsSelection } from '../conductrics-hooks';\n\n/**\n * Determine if an item should be rendered based on conductrics state the item's ExperimentationConfiguration.\n */\nexport function shouldRenderExperiment(\n agents: AgentsSelection,\n config?: CmsExperimentationConfiguration\n) {\n // Item has no config so we should always render it\n if (!config) {\n return true;\n }\n\n const { agentId, variation } = config;\n\n // Config is incomplete - we need both an ID and variation\n if (!agentId || !variation) {\n return true;\n }\n\n const agent = agents[agentId];\n\n // Agent doesn't exist or there has been an error\n if (!agent || !!agent.error) {\n return false;\n }\n\n // Only show the control variant if an agent has not loaded yet\n if (!agent.isLoaded) {\n return variation === 'a';\n }\n\n // CMS has the values in lowercase\n return agent.selection?.choice?.toLowerCase() === variation;\n}\n","export * from './conductrics';\nexport * from './conductrics-hooks';\nexport * from './conductrics-server';\nexport * from './util/should-render-experiment';\n","export * from './lib';\n","/**\n * Defaults that all apps should import.\n */\nexport const defaultPublicVars = [\n 'APP_ENV',\n 'APP_NAME',\n 'APP_VER',\n 'DX_AUTH_API_CLIENT_URI',\n 'DX_AUTH_API_CUSTOMER_APP_ID',\n 'DX_AUTH_UI',\n 'DX_GRAPHQL_CLIENT_URI',\n 'EXTERNAL_HGV_PROGRAM_DETAILS_URL',\n 'HONORS_JOIN_URL',\n 'OHW_BASE_URL',\n 'RUMCS_CAPTURE_CUSTOM_ERRORS',\n 'TRACKING_SEED_FILE',\n 'TMTP_MANAGE_FAMILY_AND_FRIENDS_LINK',\n 'EXTERNAL_TMTP_PROGRAM_DETAILS_URL',\n 'ANALYTICS_OSC_TRACKING_ENABLED',\n 'DISABLE_LOGGER_CONSOLE_ERROR',\n] as const;\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type { EnvKeys, PublicEnv } from './types';\n\n/**\n * Isomorphic function that returns all environment variables.\n * @note This is only available on the client when the `EnvScript` component is used.\n */\nexport function allEnv() {\n return isBrowser ? getClientEnv() : getServerEnv();\n}\n\n/**\n * Isomorphic getter that returns a specific environment variable.\n * @note This is only available on the client when the `EnvScript` component is used.\n * @param key\n */\nexport function env(key: EnvKeys, defaultValue?: string) {\n return allEnv()[key] || defaultValue || '';\n}\n\nfunction getClientEnv() {\n if (!window.__ENV && window.__NEXT_DATA__?.buildId === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Environment variables are not available. Did you forget to include the `EnvScript` component?'\n );\n }\n return window.__ENV || {};\n}\n\nfunction getServerEnv() {\n return process.env as unknown as PublicEnv;\n}\n","export * from './default-public-vars';\nexport * from './helpers';\nexport * from './types';\n","export * from './lib';\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { defaults, hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\n\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n }\n}\n\nvar XmlHttpRequestApi;\n\nif (hasXMLHttpRequest) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\n\nvar ActiveXObjectApi;\n\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\n\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\n\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n};\n\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n var headers = defaults({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (payload) headers['Content-Type'] = 'application/json';\n fetchApi(url, defaults({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions)).then(function (response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n }).catch(callback);\n};\n\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(payload ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n x.withCredentials = !!options.withCredentials;\n\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\n\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n\n callback = callback || function () {};\n\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n\n if (hasXMLHttpRequest || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n};\n\nexport default request;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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; }\n\nimport { defaults } from './utils.js';\nimport request from './request.js';\n\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\n\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, Backend);\n\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n this.loadUrl(url, callback, languages, namespaces);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath([language], [namespace]);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n this.loadUrl(url, callback, language, namespace);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this2 = this;\n\n this.options.request(this.options, url, undefined, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n\n try {\n if (typeof res.data === 'string') {\n ret = _this2.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this3 = this;\n\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this3.options.addPath;\n\n if (typeof _this3.options.addPath === 'function') {\n addPath = _this3.options.addPath(lng, namespace);\n }\n\n var url = _this3.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this3.options.request(_this3.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n\n if (finished === languages.length) {\n if (callback) callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this4 = this;\n\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this4.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\nexport default Backend;","import type { SSRConfig, UserConfig } from 'next-i18next';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { appWithTranslation as nextI18NextAppWithTranslation } from 'next-i18next';\nimport type { AppProps } from 'next/app';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport i18nextHttpBackend from 'i18next-http-backend';\nimport type { OneLinkPageProps } from './onelink-utils';\n\nexport function appWithTranslation<Props extends AppProps<SSRConfig & OneLinkPageProps>>(\n ...[WrappedComponent, rest]: Parameters<typeof nextI18NextAppWithTranslation<Props>>\n) {\n const I18nFrameworkAppWithTranslation = (props: Props) => {\n const language = props.router.locale || 'en';\n const { _nextI18Next, appName, isOneLink, oneLinkConfig } = props.pageProps || {};\n\n if (isBrowser && appName && _nextI18Next?.userConfig && oneLinkConfig) {\n const appPath = oneLinkConfig?.appPaths?.[appName];\n if (appPath) {\n if (isOneLink) {\n const browserLocalePrefix = !!language && language !== 'en' ? `/${language}` : '';\n const browserLocalePath = `${browserLocalePrefix}/${appPath}/locales`;\n _nextI18Next.userConfig = {\n ..._nextI18Next.userConfig,\n use: [i18nextHttpBackend],\n backend: {\n loadPath: `${browserLocalePath}/en/{{ns}}.json`,\n addPath: `${browserLocalePath}/en/{{ns}}.missing.json`,\n },\n };\n } else {\n _nextI18Next.userConfig = {\n ..._nextI18Next.userConfig,\n use: [i18nextHttpBackend],\n backend: {\n loadPath: `/${appPath}/locales/{{lng}}/{{ns}}.json`,\n addPath: `/${appPath}/locales/{{lng}}/{{ns}}.missing.json`,\n },\n };\n }\n }\n }\n\n const userConfig =\n rest || _nextI18Next?.userConfig?.i18n\n ? { ...rest, ...(_nextI18Next?.userConfig as UserConfig) }\n : undefined;\n\n return nextI18NextAppWithTranslation(WrappedComponent, userConfig)(props);\n };\n\n return hoistNonReactStatics(I18nFrameworkAppWithTranslation, WrappedComponent);\n}\n","import { addDays, startOfWeek } from 'date-fns';\n\nconst weekStartsOnLocale: Record<string, 0 | 1> = {\n en: 0,\n ar: 0,\n bg: 1,\n cs: 1,\n da: 1,\n fi: 1,\n fr: 1,\n id: 1,\n nl: 1,\n de: 1,\n it: 1,\n ja: 1,\n ko: 0,\n no: 1,\n pl: 1,\n pt: 1,\n ro: 1,\n ru: 1,\n es: 1,\n sv: 1,\n th: 0,\n tr: 1,\n 'zh-hans': 1,\n 'zh-hant': 1,\n};\n\nexport const fullDateFormat = (date: Date, locale: Intl.Locale) =>\n date.toLocaleDateString(locale, { dateStyle: 'full' });\n\nexport const weekStartsOn = (locale: Intl.Locale) =>\n locale.baseName ? weekStartsOnLocale[locale.baseName] : 0;\n\nexport const getDaysOfWeek = (locale: Intl.Locale) => {\n const startDate = startOfWeek(new Date(), { weekStartsOn: weekStartsOn(locale) });\n const days = [...Array(7)].map((n, i) => {\n const day = addDays(startDate, i);\n return {\n short: day.toLocaleDateString(locale, { weekday: 'short' }),\n long: day.toLocaleDateString(locale, { weekday: 'long' }),\n };\n });\n return days;\n};\n\n/**\n * Converts 12-hour time format string (e.g., \"4:00 PM\") to 24-hour time format (e.g., \"16:00\")\n *\n * @param time - Time string in 12-hour format with AM/PM modifier (e.g., \"4:00 PM\")\n * @returns Time string in 24-hour format (e.g., \"16:00\")\n *\n * @example\n * convertTimeTo24HourFormat(\"4:00 PM\") // returns \"16:00\"\n * convertTimeTo24HourFormat(\"4 pm\") // returns \"16:00\"\n * convertTimeTo24HourFormat(\"12:00 AM\") // returns \"00:00\"\n * convertTimeTo24HourFormat(\"12 am\") // returns \"00:00\"\n * convertTimeTo24HourFormat(\"11:30 AM\") // returns \"11:30\"\n * convertTimeTo24HourFormat(\"11:30 am\") // returns \"11:30\"\n */\nexport function convertTimeTo24HourFormat(time: string) {\n const [timePart, modifier] = time.split(' ');\n const [hoursStr, minutes = '00'] = timePart?.split(':') || [];\n let hours = hoursStr;\n if (hours === '12') {\n hours = '00';\n }\n if (hours && modifier?.toLowerCase() === 'pm') {\n hours = String(parseInt(hours, 10) + 12);\n }\n return `${hours}:${minutes}`;\n}\n\nconst localeDays = {\n sunday: '2023-01-01T00:00:00',\n monday: '2023-01-02T00:00:00',\n tuesday: '2023-01-03T00:00:00',\n wednesday: '2023-01-04T00:00:00',\n thursday: '2023-01-05T00:00:00',\n friday: '2023-01-06T00:00:00',\n saturday: '2023-01-07T00:00:00',\n};\n\nexport type LocaleDayNameKey = keyof typeof localeDays;\n\nexport function getLocaleDayName(locale: Intl.Locale, dayNameKey: LocaleDayNameKey) {\n return new Date(localeDays[dayNameKey]).toLocaleDateString(locale, { weekday: 'long' });\n}\n","export const getIntlNumberLocale = (locale: string) => {\n if (locale === 'ar') {\n return 'ar-ae';\n }\n return locale;\n};\n\nfunction getNumberFormatOptions(locale: string) {\n if (locale === 'ar') {\n return { useGrouping: false };\n }\n return { useGrouping: true };\n}\n\nexport function getLocaleFormattedNumber(\n value: number | null | undefined,\n { locale, options }: { locale: string; options?: Intl.NumberFormatOptions }\n) {\n return typeof value === 'number'\n ? Intl.NumberFormat(\n getIntlNumberLocale(locale),\n options || getNumberFormatOptions(locale)\n ).format(value)\n : '';\n}\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const FeatureConfigsDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs($names: [String!]) {\n featureConfigs(names: $names) {\n name\n conditions\n config\n }\n}`,\n originalOpName: 'featureConfigs',\n};\nexport function useFeatureConfigsQuery<TData = Types.FeatureConfigsQuery, TError = DXError>(\n variables?: Types.FeatureConfigsQueryVariables,\n options?: Omit<UseQueryOptions<Types.FeatureConfigsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FeatureConfigsQuery, TError, TData>({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureConfigsQuery(\n queryClient: QueryClient,\n variables?: Types.FeatureConfigsQueryVariables,\n options?: FetchQueryOptions<Types.FeatureConfigsQuery>\n) {\n return queryClient.fetchQuery<Types.FeatureConfigsQuery>({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\n","import type { QueryClient } from '@tanstack/react-query';\nimport { serverSideFeatureConfigsQuery } from '../generated/queries';\nimport type { Conditions } from '@dx-shared/rule-engine';\nimport { RuleEngine } from '@dx-shared/rule-engine';\nimport type { SupportedLanguage } from './types';\n\ntype AppName = string;\ntype AkamaiName = string;\ntype Ctyhocn = string;\n\nexport type OneLinkConfig =\n | {\n appPaths: Record<AppName, AkamaiName>;\n languages?: Partial<Record<SupportedLanguage, AppName[]>>;\n whitelist?: Record<AppName, Record<SupportedLanguage, Ctyhocn>>;\n conditions: Conditions;\n supportedLanguages: SupportedLanguage[];\n }\n | undefined;\nexport type OneLinkPageProps = Partial<\n Pick<ReturnType<typeof getOneLinkProps>, 'appName' | 'oneLinkConfig' | 'isOneLink'>\n>;\n\nexport function shouldIncludeLanguageParam(\n locale: string,\n appName: string,\n url: string,\n oneLinkConfig?: OneLinkConfig | null\n) {\n try {\n if (oneLinkConfig && locale) {\n const configLocale = locale.match(/^(zh-hans|zh-hant|[a-z]+)/)?.[0] || 'en';\n const conditions = oneLinkConfig.conditions;\n const urlObj = /^https?/.test(url) ? new URL(url) : new URL(url, 'https://www.hilton.com');\n const pathName = urlObj.pathname;\n const ruleEngineResult = conditions\n ? new RuleEngine({\n name: 'onelink-conditions',\n conditions,\n }).run({ language: configLocale, url: pathName, appName })\n : false;\n return ruleEngineResult;\n }\n return false;\n } catch {\n return false;\n }\n}\n\nexport function getOneLinkProps(\n ...[locale, appName, url, oneLinkConfig]: Parameters<typeof shouldIncludeLanguageParam>\n) {\n const isOneLink = shouldIncludeLanguageParam(locale, appName, url, oneLinkConfig);\n const sstLocale = isOneLink ? 'en' : locale;\n return {\n appName,\n oneLinkConfig,\n sstLocale,\n isOneLink,\n };\n}\n\nconst CONFIG_NAME = 'config-ui-translate-onelink';\n\nexport async function serverSideOneLinkConfig(queryClient: QueryClient) {\n return serverSideFeatureConfigsQuery(queryClient, {\n names: [CONFIG_NAME],\n })?.then((data) => {\n return (\n (data.featureConfigs.find((config) => config.name === CONFIG_NAME)\n ?.config as OneLinkConfig) || null\n );\n });\n}\n\nexport const replaceLang = (stringValue: string, lang: string) =>\n stringValue.replace('__LANG__', lang);\n","const commaOverrides = {\n ar: 'ØŒ',\n ja: 'ã€',\n 'zh-hans': 'ã€',\n 'zh-hant': 'ã€',\n};\n\nexport function getLocaleComma({ locale }: { locale: string }) {\n return commaOverrides[locale as keyof typeof commaOverrides] || ',';\n}\n","import type { Rule } from '@dx-shared/rule-engine';\nimport { RuleEngine } from '@dx-shared/rule-engine';\nimport type { QueryClient } from '@tanstack/react-query';\nimport { serverSideFeatureConfigsQuery } from '../generated/queries';\nimport type { SupportedLanguage } from './types';\n\nexport type TranslatedUrlProps = {\n /** path of the url to evaluate in the RuleEngine. */\n path: string;\n /** Langauge to be used for evaluating whether the `path` is translated or not. */\n locale: SupportedLanguage;\n /** name of the feature config rule used to obtain the rule conditions. */\n rule: string;\n /** The default language. if the `locale` and the `defaultLocale` are the same returns true. */\n defaultLocale?: SupportedLanguage;\n /** react-query client used to perform the query to get the conditions */\n queryClient: QueryClient;\n};\n\nexport type LegacyTranslatedUrlProps = Omit<TranslatedUrlProps, 'queryClient'> & {\n endpoint: string;\n appName: string;\n};\n\n/**\n * Determines if a url has been translated. This determination is performed by the [RuleEngine](https://gitlab.svc-m.hhc.hilton.com/pac/hiw/dx-shared/-/tree/develop/packages/rule-engine) and is run with two facts:\n * - url - @see path\n * - language - @see locale\n *\n * @returns boolean - whether the `path` has been translated for `locale`\n */\nexport async function isTranslatedUrl({\n path,\n locale,\n rule,\n queryClient,\n defaultLocale = 'en',\n}: TranslatedUrlProps) {\n if (locale === defaultLocale) {\n return true;\n }\n // Prevent errant 404s on client-side transitions. See https://jira.hilton.com/confluence/x/CYiECg for details\n if (/^\\/_next\\/data\\//.test(path)) {\n return true;\n }\n\n const { featureConfigs } = await serverSideFeatureConfigsQuery(queryClient, { names: [rule] });\n const engine = new RuleEngine(featureConfigs[0] as Rule);\n const facts = {\n url: path,\n language: locale,\n };\n const isTranslated = engine.run(facts);\n return isTranslated;\n}\n\n/**\n * @deprecated - Performs same function as `isTranslatedUrl` but with a straight `fetch` and not `react-query`\n * @returns boolean - whether the `path` has been translated for `locale`\n */\nexport async function isLegacyTranslatedUrl({\n path,\n locale,\n rule,\n endpoint,\n appName,\n defaultLocale = 'en',\n}: LegacyTranslatedUrlProps) {\n if (locale === defaultLocale) {\n return true;\n }\n // Prevent errant 404s on client-side transitions. See https://jira.hilton.com/confluence/x/CYiECg for details\n if (/^\\/_next\\/data\\//.test(path)) {\n return true;\n }\n\n const modifiedEndpoint = `${endpoint}?appName=${appName}&operationName=featureConfigs`;\n const query = `query featureConfigs { \n featureConfigs(names: ${JSON.stringify([rule])}) {\n name\n conditions\n config\n } \n }`;\n const options: RequestInit = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify({\n operationName: 'featureConfigs',\n query,\n }),\n };\n const response = await fetch(modifiedEndpoint, options);\n\n const { data } = await response.json();\n const engine = new RuleEngine(data?.featureConfigs[0] as Rule);\n const facts = {\n url: path,\n language: locale,\n };\n const isTranslated = engine.run(facts);\n return isTranslated;\n}\n\nexport default isTranslatedUrl;\n","/* istanbul ignore file */\nexport * from './app-with-translation';\nexport * from './date-time-utils';\nexport * from './locale-utils';\nexport * from './number-utils';\nexport * from './onelink-utils';\nexport * from './string-utils';\nexport * from './translated-url';\nexport * from './types';\n","export * from './lib';\nexport * from './generated/queries';\n","import type { DXExecutionResult, QueryDebugInfo } from '@dx-ui/types-graphql';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\n\nexport type IncompleteQueryEvent = QueryDebugInfo & {\n message: string;\n};\n\nexport function triggerInCompleteEvent({\n requestBody,\n}: {\n requestBody: Partial<DXExecutionResult['__info__']>;\n}) {\n if (isBrowser) {\n const event = new CustomEvent<IncompleteQueryEvent>('dx-incomplete', {\n detail: {\n message: 'Incomplete data received from server',\n operationName: requestBody?.operationName || '',\n originalOpName: requestBody?.originalOpName || '',\n dxCompleteness: '0',\n isSSR: false,\n },\n });\n window.dispatchEvent(event);\n }\n}\n\nexport function isQueryIncomplete(response: Response) {\n return response.headers.get('dx-completeness') === '0';\n}\n","import type { UserLocation } from '../location-util';\n\nexport const sessionKey = 'userLocation';\n\nexport const initialUserSession: UserLocation = {\n city: undefined,\n continent: undefined,\n country: undefined,\n coordinate: undefined,\n region: undefined,\n zipCode: undefined,\n};\n\nexport const initialContext = {\n ...initialUserSession,\n isLoading: false,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n clear: () => {},\n};\n","import { createContext } from 'react';\nimport { initialContext } from './utils/constants';\nimport type { UserLocation } from './location-util';\n\nexport type ILoadable = {\n isLoading: boolean;\n};\n\nexport type LocationState = {\n clear: () => void;\n lastUpdated?: Date;\n} & ILoadable &\n UserLocation;\n\nexport const LocationContext = createContext<LocationState>(initialContext);\n","type IExpire<T> = {\n expireDate: number;\n instance: T;\n};\n\n/**\n * @param ttl milliseconds\n */\nexport const saveToSession = <T>(object: T, key: string, ttl: number) => {\n const env: IExpire<T> = {\n instance: object,\n expireDate: new Date().getTime() + ttl,\n };\n window.sessionStorage.setItem(key, JSON.stringify(env));\n};\n\nexport const retrieveFromSession = <T>(key: string) => {\n const env: { expireDate: Date; instance: T } | null = window.sessionStorage.getItem(key)\n ? JSON.parse(window.sessionStorage.getItem(key) as string)\n : null;\n\n if (!env) return null;\n\n const ttl = new Date(env.expireDate).getTime() - new Date().getTime();\n\n if (ttl <= 0) {\n window.sessionStorage.removeItem(key);\n return null;\n }\n return env.instance;\n};\n","export type Coordinate = {\n latitude: number;\n longitude: number;\n};\n\nexport type UserLocation = {\n addressBiasCoordinate?: Coordinate;\n addressBiasDegrees?: number;\n city?: string;\n continent?: string;\n coordinate?: Coordinate;\n country?: string;\n marketingBiasCoordinate?: Coordinate;\n marketingBiasDegrees?: number;\n refreshTTL?: number;\n region?: string;\n searchBiasCoordinate?: Coordinate;\n searchBiasDegrees?: number;\n zipCode?: string;\n};\n\n/**\n * Generates the coordinate bias based on the zone degrees provided. Defaults to a zone degree of 10.\n *\n * @param coordinate\n * @param biasDegrees\n */\nexport function getCoordinateBias(coordinate: Coordinate, biasDegrees = 10): Coordinate {\n const calcBias = (point: number): number =>\n Math.floor(point / biasDegrees) * biasDegrees + biasDegrees / 2;\n return {\n latitude: calcBias(coordinate.latitude),\n longitude: calcBias(coordinate.longitude),\n };\n}\n","/* eslint-disable no-console */\nimport * as React from 'react';\nimport type { LocationState } from './location-context';\nimport { LocationContext } from './location-context';\nimport { initialContext, sessionKey } from './utils/constants';\nimport { saveToSession, retrieveFromSession } from './utils/session';\nimport type { UserLocation } from './location-util';\nimport { getCoordinateBias } from './location-util';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\n\nexport const LocationProviderConsumer = LocationContext.Consumer;\n\nexport const LocationProvider = ({ children }: { children: React.ReactNode }) => {\n const [state, dispatch] = React.useState<LocationState>({\n ...initialContext,\n isLoading: true,\n });\n\n const clear = () => {\n window.sessionStorage.removeItem(sessionKey);\n dispatch({ ...initialContext, isLoading: true });\n console.info('cleared userLocation');\n };\n\n const CLIENT_LOCATION_URI = '/en/clientLocation/';\n\n React.useEffect(() => {\n if (!isBrowser) return;\n\n let userLocation: UserLocation | null = null;\n\n try {\n const session = retrieveFromSession<UserLocation>(sessionKey);\n if (session) {\n userLocation = session;\n }\n } catch (err: any) {\n console.info('Unable to find session info with key:', sessionKey, err?.message);\n }\n\n // if in local then dispatch local\n if (userLocation) {\n dispatch({ ...userLocation, isLoading: false, clear });\n } else {\n fetch(CLIENT_LOCATION_URI)\n .then((response: Response) => response.json())\n .then((data) => {\n userLocation = data.userLocation as UserLocation;\n if (userLocation.coordinate) {\n // Default the search bias degrees to 10 if not provided, then calculate the search bias coordinate\n userLocation.searchBiasDegrees = userLocation.searchBiasDegrees || 10;\n userLocation.searchBiasCoordinate = getCoordinateBias(\n userLocation.coordinate,\n userLocation.searchBiasDegrees\n );\n // Default the address bias degrees to 10 if not provided, then calculate the address bias coordinate\n userLocation.addressBiasDegrees = userLocation.addressBiasDegrees || 1;\n userLocation.addressBiasCoordinate = getCoordinateBias(\n userLocation.coordinate,\n userLocation.addressBiasDegrees\n );\n // Default the marketing bias degrees to 4 if not provided, then calculate the marketing bias coordinate\n userLocation.marketingBiasDegrees = userLocation.marketingBiasDegrees || 4;\n userLocation.marketingBiasCoordinate = getCoordinateBias(\n userLocation.coordinate,\n userLocation.marketingBiasDegrees\n );\n }\n // Default the refresh TTL to 1 hour if not provided, and set the user location into session storage\n userLocation.refreshTTL = userLocation.refreshTTL || 3600;\n saveToSession(userLocation, sessionKey, userLocation.refreshTTL * 1000);\n dispatch({ ...userLocation, isLoading: false, clear });\n })\n .catch((error) => {\n console.info('Unable to fetch location information:', error?.message);\n dispatch({ ...initialContext, clear });\n });\n }\n }, [CLIENT_LOCATION_URI]);\n\n return <LocationContext.Provider value={state}>{children}</LocationContext.Provider>;\n};\n\nexport function useLocation() {\n const context = React.useContext(LocationContext);\n if (context === undefined) {\n throw new Error(`useLocation must be used within a LocationProvider`);\n }\n return context;\n}\n","/* istanbul ignore file */\nexport * from './location-provider';\nexport * from './location-context';\nexport * from './location-util';\n","export * from './lib';\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type { DtrumApi } from '@dynatrace/dtrum-api-types';\n\ndeclare global {\n interface Window {\n dtrum?: DtrumApi;\n }\n}\n\n/**\n * Simple wrapper around the Dynatrace RUM API.\n * {@link https://www.dynatrace.com/support/doc/javascriptapi/interfaces/dtrum_types.DtrumApi.html}\n */\nexport const dynatrace = isBrowser ? window.dtrum : undefined;\n","/* eslint-disable no-console */\nimport { env } from '@dx-ui/framework-env';\nimport { dynatrace } from './logger';\nimport * as React from 'react';\n\nconst ERROR_PAGE = 418;\n\nexport const LOG_LEVELS = {\n ERROR: 'ERROR',\n INFO: 'INFO',\n WARN: 'WARN',\n} as const;\n\ntype LOG_KEYS = StringWithAutocompleteOptions<\n | 'APPLICATION_ERROR'\n | 'AUTHENTICATION_ERROR'\n | 'BOOKING_ERROR'\n | 'BOOKING_INFO'\n | 'EVENT_INFO'\n | 'EXTERNAL_ERROR'\n | 'FATAL_ERROR'\n | 'FETCH_ERROR'\n | 'ROUTING_ERROR'\n | 'VALIDATION_ERROR'\n>;\n\n/**\n * Wrapper for {@link https://www.dynatrace.com/support/doc/javascriptapi/interfaces/dtrum_types.DtrumApi.html#reportCustomError | reportCustomError}.\n *\n * Specifies client-side `LOG_LEVEL` of `ERROR` which extends 'WARN' and also enables alerting in Dynatrace if the error rate is high. @see {@link https://docs.dynatrace.com/docs/platform/davis-ai/basics/terminology#alert | Davis AI Basics - Alerting}\n * For server-side, it will leverage `console.error`.\n *\n * @param key The key of the error. For example: 'Booking Error'\n * @param value The error value. For example: 'Payment failed to process.'\n * @param hint A hint to pinpoint the problem.\n * - By default this includes the app version.\n * - Anything over 100 characters will be truncated.\n * - The hint will appear as pipe delimited. For example: `dx-res-ui:234327|hint`\n */\nexport function logError(key: LogArgs[0], value: LogArgs[1], hint = '') {\n log(key, value, LOG_LEVELS.ERROR, hint);\n}\n\n/**\n * Wrapper for {@link https://www.dynatrace.com/support/doc/javascriptapi/interfaces/dtrum_types.DtrumApi.html#reportCustomError | reportCustomError}.\n *\n * Specifies client-side `LOG_LEVEL` of `WARN` which extends 'INFO' and also measures \"Apdex\" performance in Dynatrace. @see {@link https://docs.dynatrace.com/docs/shortlink/apdex | Apdex Ratings}\n * For server-side, it will leverage `console.warn`.\n *\n * @param key The key of the error. For example: 'Hotel Not Found'\n * @param value The error value. For example: 'ctyhocn or propCode not found.'\n * @param hint A hint to pinpoint the problem.\n * - By default this includes the app version.\n * - Anything over 100 characters will be truncated.\n * - The hint will appear as pipe delimited. For example: `dx-res-ui:234327|hint`\n */\nexport function logWarning(key: LogArgs[0], value: LogArgs[1], hint = '') {\n log(key, value, LOG_LEVELS.WARN, hint);\n}\n\n/**\n * Wrapper for {@link https://www.dynatrace.com/support/doc/javascriptapi/interfaces/dtrum_types.DtrumApi.html#reportCustomError | reportCustomError}.\n *\n * Specifies client-side `LOG_LEVEL` of `INFO` which captures the error in Dynatrace. @see {@link https://docs.dynatrace.com/docs/shortlink/application-performance#top-errors | Top Errors} and {@link https://docs.dynatrace.com/docs/shortlink/configure-application-errors | Configure Application Errors}\n * For server-side, it will leverage `console.info`.\n *\n * @param key The key of the error. For example: 'Validation Error'\n * @param value The error value. For example: 'First name does not match the regular expression.'\n * @param hint A hint to pinpoint the problem.\n * - By default this includes the app version.\n * - Anything over 100 characters will be truncated.\n * - The hint will appear as pipe delimited. For example: `dx-res-ui:234327|hint`\n */\nexport function logInfo(key: LogArgs[0], value: LogArgs[1], hint = '') {\n log(key, value, LOG_LEVELS.INFO, hint);\n}\n\n/**\n * Custom hook to enable manual page detection.\n *\n * @param {string} name - New view name. Usually it matches the location.pathname.\n * @param {string} group - The group associated with the page. The app name.\n */\nexport const useManualPageLogger = (name: string, group: string): void => {\n React.useEffect(() => {\n if (!dynatrace) {\n return console.warn('Dynatrace is not available.');\n }\n dynatrace.enableManualPageDetection();\n const modifiedGroup = window.location.pathname.startsWith('/en/') ? group : `${group}-NonEN`;\n const pageResult = dynatrace.setPage({ name, group: modifiedGroup });\n if (pageResult < 0) {\n console.warn('Error setting page group in Dynatrace');\n }\n });\n};\n\ntype LogArgs = Parameters<typeof log>;\n\nfunction log(\n key: LOG_KEYS,\n value: Parameters<typeof stringifyValue>[0],\n level: keyof typeof LOG_LEVELS,\n hint: string\n) {\n if (dynatrace) {\n const errorKey = `${level}:${key}` as const;\n dynatrace.markAsErrorPage(ERROR_PAGE, `DX-UI Logger ${level}`);\n dynatrace.reportCustomError(errorKey, normalizeError(value), buildHint(hint), true);\n dynatrace.sendBeacon(true, true, true);\n\n if (!env('DISABLE_LOGGER_CONSOLE_ERROR') || env('DISABLE_LOGGER_CONSOLE_ERROR') === 'false') {\n const customError = new Error(normalizeError(value), { cause: hint });\n customError.name = errorKey;\n console.error(customError);\n return;\n }\n }\n const fn = level.toLowerCase() as Lowercase<typeof level>;\n console[fn](key, value, hint);\n}\n\nfunction buildHint(hint: string) {\n const version = env('APP_VER');\n return [version, hint].filter(Boolean).join('|');\n}\n\ntype ErrorValue = string | Error | Record<string, unknown>;\n\nfunction stringifyValue(value: ErrorValue) {\n if (typeof value === 'string') {\n return value;\n }\n if (value instanceof Error) {\n return value.message;\n }\n return JSON.stringify(value);\n}\n\nfunction normalizeError(error: ErrorValue) {\n const errorString = stringifyValue(error);\n const firstLeftArrow = errorString.indexOf('<');\n return (firstLeftArrow > 0 ? errorString.slice(0, firstLeftArrow) : errorString).trim();\n}\n","export * from './logger';\nexport * from './helpers';\n","export * from './lib';\n","import type { OutgoingMessage } from 'http';\nexport function mergeCacheControl(\n resp: Response,\n serverResp?: OutgoingMessage & {\n mergeHttpHeaders?: (headers: Record<string, string>) => void;\n }\n) {\n if (serverResp && serverResp.mergeHttpHeaders) {\n const headers: Record<string, string> = {};\n resp.headers.forEach((val: string, key: string) => {\n headers[key] = val;\n });\n serverResp.mergeHttpHeaders(headers);\n }\n}\n","import type { Cookie, CookieSetOptions } from 'universal-cookie';\nimport Cookies from 'universal-cookie';\n\n/**\n * Returns a cookie for a given name. Takes an optional server cookie param if it's from server side.\n * @param name - name of cookie being looked up\n * @param serverCookies - cookie (typically from req.headers)\n */\nexport function getCookie(name: string, serverCookies?: string) {\n const cookie = new Cookies(serverCookies);\n return cookie.get(name);\n}\n\n/**\n * Sets a cookie for a given name/value. Takes an optional cookie options.\n * @param name - name of cookie being set\n * @param value - Cookie\n * @param options - CookieSetOptions\n */\nexport function setCookie(name: string, value: Cookie, options?: CookieSetOptions) {\n const cookie = new Cookies();\n cookie.set(name, value, {\n domain: '.hilton.com',\n sameSite: 'lax',\n path: '/',\n ...options,\n });\n}\n\n/**\n * Deletes a cookie with a given name. Takes an optional cookie options.\n * @param name - name of cookie being deleted\n * @param options - CookieSetOptions\n */\nexport function deleteCookie(name: string, options?: CookieSetOptions) {\n const cookie = new Cookies();\n cookie.remove(name, {\n domain: '.hilton.com',\n path: '/',\n ...options,\n });\n}\n","import { getCookie, setCookie } from '@dx-ui/utilities-cookies';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { addDays, startOfToday } from 'date-fns';\nimport type { IncomingMessage } from 'http';\nimport { isServer } from '@tanstack/react-query';\nimport type { GetServerSidePropsContext } from 'next';\nimport type { DXError } from '@dx-ui/types-graphql';\nimport { ServerAuthError, GraphError } from '@dx-ui/types-graphql';\n\nexport function causedByUnauthorized(error?: DXError) {\n if (error) {\n if (error instanceof ServerAuthError) {\n return error.statusCode === 401;\n }\n if (error instanceof GraphError) {\n return (\n error.graphQLErrors?.some(\n (error) => error?.message === 'Unauthorized' || error?.code === 401\n ) || false\n );\n }\n }\n return false;\n}\n\nexport function causedByForbidden(error?: DXError) {\n if (error) {\n if (error instanceof ServerAuthError) {\n return error.statusCode === 403;\n }\n if (error instanceof GraphError) {\n return (\n error.graphQLErrors?.some(\n (error) => error?.message === 'Forbidden' || error?.code === 403\n ) || false\n );\n }\n }\n return false;\n}\n\nexport function causedByNotFound(error?: DXError) {\n if (error) {\n if (error instanceof ServerAuthError) {\n return error.statusCode === 404;\n }\n if (error instanceof GraphError) {\n return (\n error.graphQLErrors?.some(\n (error) => error?.message === 'Not Found' || error?.code === 404\n ) || false\n );\n }\n }\n return false;\n}\n\nexport function getVisitorId() {\n if (!isBrowser) {\n return null;\n }\n const visitorId: string = getCookie('visitorId');\n return visitorId || setVisitorId();\n}\n\nexport function setVisitorId() {\n if (isBrowser) {\n const uuid = crypto.randomUUID();\n setCookie('visitorId', uuid, {\n expires: addDays(startOfToday(), 90),\n domain: window.location.hostname,\n });\n return uuid;\n }\n return null;\n}\n\nexport function generateReferrer(origin: string, language: string, request?: IncomingMessage) {\n try {\n const pathname = isServer ? `/${language}${request?.url}` : window.location.pathname;\n const url = new URL(pathname, origin);\n return `${url.origin}${url.pathname}`;\n } catch {\n return undefined;\n }\n}\n\nexport function getSafeLanguage(language: string) {\n const zhMapping: { [key: string]: string } = {\n 'zh-cn': 'zh-hans',\n 'zh-hk': 'zh-hant',\n };\n const mappedLang = zhMapping[language] || language;\n const splitLanguage = mappedLang.split('-') as [string, string | undefined];\n return language.includes('zh-') ? splitLanguage.slice(0, 2).join('-') : splitLanguage[0];\n}\n\nexport function getServerSideSafeLanguage(context: GetServerSidePropsContext) {\n const queryContentLocale = Array.isArray(context.query.content)\n ? context.query.content[0]\n : context.query.content;\n const headerOriginalLocale =\n (context?.req.headers?.['x-originallocale'] as string)?.toLowerCase() || undefined;\n const language = queryContentLocale || headerOriginalLocale || context.locale || 'en';\n return getSafeLanguage(language);\n}\n","export function isExtractableFile(value: File | Blob | undefined) {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob)\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isExtractableFile as defaultIsExtractableFile } from './isExtractableFile';\n\nexport function extractFiles(value: any, path = '', isExtractableFile = defaultIsExtractableFile) {\n // Map of extracted files and their object paths within the input value.\n const files = new Map();\n\n // Map of arrays and objects recursed within the input value and their clones,\n // for reusing clones of values that are referenced multiple times within the\n // input value.\n const clones = new Map();\n\n /**\n * Recursively clones the value, extracting files.\n * @kind function\n * @name extractFiles~recurse\n * @param {*} value Value to extract files from.\n * @param {ObjectPath} path Prefix for object paths for extracted files.\n * @param {Set} recursed Recursed arrays and objects for avoiding infinite recursion of circular references within the input value.\n * @returns {*} Clone of the value with files replaced with `null`.\n * @ignore\n */\n function recurse(value: any, path = '', recursed: Set<unknown>) {\n let clone = value;\n\n if (isExtractableFile(value)) {\n clone = null;\n\n const filePaths = files.get(value);\n\n filePaths ? filePaths.push(path) : files.set(value, [path]);\n } else {\n const isList =\n Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);\n const isObject = value && value.constructor === Object;\n\n if (isList || isObject) {\n const hasClone = clones.has(value);\n\n if (hasClone) clone = clones.get(value);\n else {\n clone = isList ? [] : {};\n\n clones.set(value, clone);\n }\n\n if (!recursed.has(value)) {\n const pathPrefix = path ? `${path}.` : '';\n const recursedDeeper = new Set(recursed).add(value);\n\n if (isList) {\n let index = 0;\n\n for (const item of value as any) {\n const itemClone = recurse(item, pathPrefix + index++, recursedDeeper);\n\n if (!hasClone) clone.push(itemClone);\n }\n } else\n for (const key of Object.keys(value)) {\n const propertyClone = recurse(value[key], pathPrefix + key, recursedDeeper);\n\n if (!hasClone) clone[key] = propertyClone;\n }\n }\n }\n }\n\n return clone;\n }\n\n return {\n clone: recurse(value, path, new Set()),\n files,\n };\n}\n","export function filterCookies(cookingString: string, allowedCookies: string[]): string {\n const result = cookingString.split('; ');\n return result\n .filter((cookie) => {\n const [key] = cookie.split('=');\n if (!key) return false;\n return allowedCookies.includes(key);\n })\n .join('; ');\n}\n","import type { IncomingMessage, OutgoingMessage } from 'http';\nimport type { AuthClient } from '@dx-ui/framework-auth-provider';\nimport { mergeCacheControl } from '@dx-ui/framework-merge-cache-control';\nimport type {\n MutationFunction,\n QueryFunction,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type { OneLinkConfig } from '@dx-ui/framework-i18n';\nimport { shouldIncludeLanguageParam } from '@dx-ui/framework-i18n';\nimport {\n causedByForbidden,\n causedByUnauthorized,\n generateReferrer,\n getSafeLanguage,\n getVisitorId,\n} from './default-fetch-fn-utils';\nimport { extractFiles, isExtractableFile } from './extract-files';\nimport FormData from 'form-data';\nimport { logWarning } from '@dx-ui/framework-logger';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type {\n QueryRequestArgs,\n DXExecutionResult,\n QueryDebugInfo,\n QueryKeyArgs,\n} from '@dx-ui/types-graphql';\nimport { ServerAuthError, GraphError } from '@dx-ui/types-graphql';\nimport { generateError } from '@dx-ui/utilities-generate-error';\nimport type { errors } from 'undici';\nimport { isQueryIncomplete, triggerInCompleteEvent } from '@dx-ui/framework-incomplete-event';\nimport { filterCookies } from './cookie-forward';\nimport { env } from '@dx-ui/framework-env';\n\ntype QueryRequest = QueryRequestArgs & MakeDefaultFnArgs;\n\ntype QueryResult = DXExecutionResult['data'];\n\nconst forwardHeaders = ['dx-preview', 'dx-toggles'];\n\nexport async function makeRequest(\n queryRequest: QueryRequest,\n signal?: AbortSignal,\n retries = 0,\n undiciErrorSocketRetries = 0\n): Promise<QueryResult> {\n const {\n appName,\n authClient,\n authenticatedOperationNames,\n handleAuthenticatedOperationError,\n handleRequestEndpoint,\n handleRequestHeaders,\n customHeaders,\n document,\n oneLinkConfig,\n referrer: referrerArg,\n referrerPolicy,\n routerLocale = '',\n serverRequest: serverRequestArg,\n serverResponse,\n ssrMode = false,\n variables,\n variablesToIncludeInParams,\n } = queryRequest;\n\n if (!authClient) {\n throw new Error('auth client not provided');\n }\n const appVersion = env('APP_VER', appName ? `${appName}:0.0.1` : '');\n const serverRequest = serverRequestArg || serverResponse?.req;\n const { operationString: query, operationName, originalOpName } = document;\n const requestBody = { query, operationName, variables };\n const authenticatedOperation = authenticatedOperationNames?.includes(operationName);\n const endpoint = handleRequestEndpoint?.(serverRequest) || authClient.getGqlEndpoint();\n let authHeader: string | null = null;\n\n if (authenticatedOperation && !authClient.getIsLoggedIn()) {\n const accessToken = await handleAuthenticatedOperationError?.().catch(() => null);\n authHeader = accessToken ? `Bearer ${accessToken}` : await authClient.getAuthorizationHeader();\n } else {\n authHeader = await authClient.getAuthorizationHeader();\n }\n\n const visitoridHeader = serverResponse?.req?.headers['visitorid'] as string | undefined;\n const hltClientMessageIdHeader = serverResponse?.req?.headers['hltclientmessageid'] as\n | string\n | undefined;\n\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n ...(!authClient.webGuestMetadataCookie && { Authorization: authHeader }),\n 'dx-platform': (serverResponse?.req?.headers['dx-platform'] as string) ?? 'web',\n ...(visitoridHeader && { visitorid: visitoridHeader }),\n ...(hltClientMessageIdHeader && { hltclientmessageid: hltClientMessageIdHeader }),\n ...customHeaders,\n ...handleRequestHeaders?.(serverRequest),\n };\n\n const bodyLanguage =\n (variables?.language as string | undefined) || (variables?.lang as string | undefined) || 'en';\n const browserUrl = isBrowser ? window.location.href : '';\n const includeLanguageParam = shouldIncludeLanguageParam(\n routerLocale,\n appName || '',\n browserUrl,\n oneLinkConfig\n );\n\n if (ssrMode) {\n headers['dx-trusted-app'] = 'true';\n }\n\n // Always forward these headers from the incoming request\n forwardHeaders.forEach((header) => {\n if (serverResponse?.req?.headers[header]) {\n headers[header] = serverResponse.req.headers[header] as string;\n }\n });\n\n if (serverResponse?.req?.headers['cookie']) {\n headers['cookie'] = filterCookies(serverResponse.req.headers['cookie'], [\n 'webGuestToken',\n 'webGuestMetadata',\n ]);\n }\n\n // Add generated visitorId & messsageId\n const visitorId = getVisitorId();\n if (visitorId || visitoridHeader) {\n const requestId = crypto.randomUUID().replace(/-/g, '');\n const hltClientMessageId = `${visitorId}-${requestId}`;\n //If custom header for visitorid or hltClientMessageid are set, use that instead of the generated one\n headers['visitorid'] = visitoridHeader || visitorId || '';\n headers['hltclientmessageid'] = hltClientMessageIdHeader || hltClientMessageId || '';\n }\n\n // Add referrer\n const referrer = referrerArg || generateReferrer(endpoint, routerLocale, serverRequest);\n\n // Create params from variables\n const paramsFromVariables: Record<string, unknown> = {};\n if (variablesToIncludeInParams?.length) {\n variablesToIncludeInParams.forEach((variable) => {\n const value = variables?.[variable];\n if (value) {\n paramsFromVariables[variable] = value;\n }\n });\n }\n\n // Add params\n const params = new URLSearchParams({\n appName,\n appVersion,\n operationName,\n originalOpName,\n bl: bodyLanguage,\n ...paramsFromVariables,\n ...(includeLanguageParam && { language: getSafeLanguage(routerLocale) }),\n }).toString();\n\n // Append files\n // https://github.com/jaydenseric/apollo-upload-client/blob/master/public/createUploadLink.js\n const { clone, files } = extractFiles(requestBody, '', isExtractableFile);\n const form = new FormData();\n if (files.size) {\n // Automatically set by `fetch` when the `body` is a `FormData` instance.\n delete headers['Content-Type'];\n\n // GraphQL multipart request spec:\n // https://github.com/jaydenseric/graphql-multipart-request-spec\n form.append('operations', JSON.stringify(clone));\n\n const map: Record<number, string[]> = {};\n let i = 0;\n files.forEach((paths) => {\n map[++i] = paths;\n });\n form.append('map', JSON.stringify(map));\n\n i = 0;\n files.forEach((_, file: File) => {\n formDataAppendFile(form, ++i, file);\n });\n }\n\n const finalUrl = `${endpoint}?${params}`;\n\n const response = await fetch(finalUrl, {\n method: 'POST',\n headers,\n referrer,\n referrerPolicy,\n body: files.size ? (form as unknown as BodyInit) : JSON.stringify(requestBody),\n signal,\n }).catch((error) => {\n const safeError = generateError(error);\n if (\n (safeError as errors.SocketError).code === 'UND_ERR_SOCKET' &&\n undiciErrorSocketRetries < 1\n ) {\n return makeRequest(queryRequest, signal, retries, undiciErrorSocketRetries + 1);\n }\n throw error;\n });\n\n const refreshAndRetry = async () => {\n await authClient.refreshToken();\n return makeRequest(queryRequest, signal, retries + 1, undiciErrorSocketRetries);\n };\n if (!response?.ok) {\n const responseText = await response?.text();\n let jsonResult: DXExecutionResult | undefined;\n try {\n jsonResult = JSON.parse(responseText);\n } catch {\n // ignore failed to parse json\n }\n\n const isForbidden = response?.status === 403;\n\n const referenceError = jsonResult?.errors?.map((er) => er['reference-error']);\n referenceError?.forEach((ref) => {\n if (ref) {\n logWarning('403', '403 reference', ref);\n }\n });\n\n if (authenticatedOperation) {\n if (!isForbidden && authClient.getIsLoggedIn() && retries < 1) {\n return refreshAndRetry();\n }\n const errorMessage = jsonResult?.errors?.[0]?.message || '';\n throw new ServerAuthError(response?.status, errorMessage);\n }\n\n const isUnauthorized = response?.status === 401;\n if (isUnauthorized && retries < 1) {\n return refreshAndRetry();\n }\n // handle errors if response is not ok\n const shouldRetry =\n jsonResult && handleResultErrors(jsonResult, authClient, authenticatedOperation, retries);\n if (shouldRetry) return refreshAndRetry();\n\n // request failed for unknown reason\n throw new Error(`request failed ${response?.status} ${responseText}`);\n }\n\n // merge cache headers if server\n if (response instanceof Response) {\n mergeCacheControl(response, serverResponse);\n }\n\n const result: DXExecutionResult = await response.json();\n\n // handle errors if response is ok\n const shouldRetry = handleResultErrors(result, authClient, authenticatedOperation, retries);\n if (shouldRetry) return refreshAndRetry();\n\n if (isQueryIncomplete(response as Response)) {\n triggerInCompleteEvent({\n requestBody: {\n operationName,\n originalOpName,\n },\n });\n }\n\n return {\n ...result.data,\n __info__: {\n dxCompleteness: response.headers.get('dx-completeness'),\n isSSR: typeof window === 'undefined',\n operationName,\n originalOpName,\n },\n };\n}\n\nexport type IncompleteQueryEvent = QueryDebugInfo & {\n message: string;\n};\n\nexport type MakeDefaultFnOneLinkArgs =\n | {\n oneLinkConfig?: never;\n routerLocale?: never;\n }\n | {\n oneLinkConfig: OneLinkConfig | null;\n routerLocale: string;\n };\n\nexport type MakeDefaultFnAuthenticatedOperationErrorArgs =\n | {\n handleAuthenticatedOperationError: () => Promise<string | null>;\n authenticatedOperationNames: string[];\n }\n | {\n handleAuthenticatedOperationError?: never;\n authenticatedOperationNames?: never;\n };\n\nexport type MakeDefaultFnOptionalArgs = MakeDefaultFnOneLinkArgs &\n MakeDefaultFnAuthenticatedOperationErrorArgs;\n\nexport type MakeDefaultFnArgs = {\n appName: string;\n authClient: AuthClient;\n customHeaders?: Record<string, string>;\n customParams?: Record<string, string>;\n handleRequestEndpoint?: (req?: IncomingMessage) => string;\n handleRequestHeaders?: (req?: IncomingMessage) => Record<string, string> | undefined;\n referrer?: string;\n referrerPolicy?: ReferrerPolicy;\n serverRequest?: IncomingMessage;\n serverResponse?: OutgoingMessage;\n ssrMode?: boolean;\n variablesToIncludeInParams?: string[];\n} & MakeDefaultFnOptionalArgs;\n\nexport function makeDefaultQueryFn(args: MakeDefaultFnArgs): QueryFunction<QueryResult, QueryKey> {\n return ({ queryKey, signal }: QueryFunctionContext<QueryKey>): Promise<QueryResult> => {\n const [query, variables] = queryKey as QueryKeyArgs;\n return makeRequest(\n {\n ...args,\n document: query,\n variables,\n },\n signal\n );\n };\n}\n\nexport function makeDefaultMutationFn(args: MakeDefaultFnArgs): MutationFunction {\n return (params): Promise<unknown> => {\n const [mutation, variables] = params as QueryKeyArgs;\n return makeRequest({\n ...args,\n document: mutation,\n variables,\n });\n };\n}\n\nfunction formDataAppendFile(formData: FormData, fieldName: number, file: File) {\n formData.append(fieldName.toString(), file, file.name);\n}\n\nfunction handleResultErrors(\n result: DXExecutionResult,\n authClient: AuthClient,\n authenticatedOperation = false,\n retries: number\n) {\n if (result.errors) {\n const error = new GraphError(result);\n\n if (authenticatedOperation) {\n if (\n (causedByUnauthorized(error) || causedByForbidden(error)) &&\n authClient.getIsLoggedIn() &&\n retries < 1\n ) {\n // return true to retry\n return true;\n }\n }\n throw error;\n }\n return false;\n}\n","import type { AuthClient } from '@dx-ui/framework-auth-provider';\nimport { makeAuthClient } from '@dx-ui/framework-auth-provider';\nimport type { IncomingMessage, OutgoingMessage } from 'http';\nimport type { DefaultOptions } from '@tanstack/react-query';\nimport { dehydrate, QueryClient } from '@tanstack/react-query';\nimport type { MakeDefaultFnArgs } from './default-fetch-fn';\nimport { makeDefaultMutationFn, makeDefaultQueryFn } from './default-fetch-fn';\nimport type { QueryDocument, QueryVariables } from '@dx-ui/types-graphql';\nimport { GraphError, ServerAuthError } from '@dx-ui/types-graphql';\n\nexport type MakeQueryClientArgs = MakeDefaultFnArgs & {\n reactQueryClientOverrideOptions?: DefaultOptions['queries'];\n};\n\nexport const CDN_STALE_TIME = 1000 * 60 * 60 * 6; // 6 hours\n\nfunction retry(failureCount: number, error: unknown) {\n // If there error was a GraphError or ServerAuthError (401/403), then do not retry, we manually retry or handle in the UI\n if (error instanceof ServerAuthError || error instanceof GraphError) {\n return false;\n }\n return failureCount < 2;\n}\n\nexport function makeQueryClient({\n reactQueryClientOverrideOptions = {},\n ssrMode = false,\n ...makeDefaultFnArgs\n}: MakeQueryClientArgs) {\n return new QueryClient({\n defaultOptions: {\n queries: {\n queryFn: makeDefaultQueryFn({\n ...makeDefaultFnArgs,\n ssrMode,\n }),\n ...(!ssrMode\n ? {\n refetchOnWindowFocus: false,\n cacheTime: Infinity,\n retry,\n staleTime: 60 * 60 * 1000, // 1 hour\n ...reactQueryClientOverrideOptions,\n }\n : { ...reactQueryClientOverrideOptions }),\n },\n mutations: {\n mutationFn: makeDefaultMutationFn({\n ...makeDefaultFnArgs,\n ssrMode,\n }),\n retry,\n },\n },\n });\n}\n\nexport function makeServerQueryClient({\n appName,\n authClient,\n customHeaders,\n referrer,\n serverResponse,\n}: {\n appName: string;\n authClient: AuthClient;\n customHeaders?: Record<string, string>;\n referrer?: string;\n serverResponse: OutgoingMessage;\n}) {\n return makeQueryClient({\n appName,\n authClient,\n customHeaders,\n referrer,\n serverResponse,\n ssrMode: true,\n });\n}\n\nexport function getServerSideClients({\n appName,\n customHeaders,\n request,\n response,\n appId,\n authEndpoints,\n gqlEndpoints,\n referrer,\n}: {\n appName: string;\n request?: IncomingMessage;\n response: OutgoingMessage;\n appId: string;\n authEndpoints: {\n browser: string;\n server: string;\n };\n customHeaders?: Record<string, string>;\n referrer?: string;\n gqlEndpoints: {\n browser: string;\n server: string;\n };\n}) {\n const authClient = makeAuthClient({\n appName,\n request,\n ssrMode: true,\n response,\n appId,\n authEndpoints,\n gqlEndpoints,\n });\n const queryClient = makeServerQueryClient({\n appName,\n authClient,\n customHeaders,\n referrer,\n serverResponse: response,\n });\n return { queryClient, authClient };\n}\n\nexport async function makeServerSideGql({\n appName,\n queries,\n request,\n response,\n appId,\n authEndpoints,\n customHeaders,\n gqlEndpoints,\n referrer,\n}: {\n appName: string;\n queries: [QueryDocument, QueryVariables][];\n request?: IncomingMessage;\n response: OutgoingMessage;\n appId: string;\n authEndpoints: {\n browser: string;\n server: string;\n };\n customHeaders?: Record<string, string>;\n gqlEndpoints: {\n browser: string;\n server: string;\n };\n referrer?: string;\n}) {\n const authClient = makeAuthClient({\n appName,\n request,\n ssrMode: true,\n response,\n appId,\n authEndpoints,\n gqlEndpoints,\n });\n const queryClient = makeServerQueryClient({\n appName,\n authClient,\n customHeaders,\n referrer,\n serverResponse: response,\n });\n\n const promises = queries.map((queryKey) => {\n return queryClient.prefetchQuery({ queryKey });\n });\n\n await Promise.all(promises);\n return {\n queryClient,\n authClient,\n dehydratedState: dehydrate(queryClient),\n };\n}\n","import { useRef } from 'react';\nimport type { QueryClient } from '@tanstack/react-query';\nimport { isServer } from '@tanstack/react-query';\nimport type { AuthClient, MakeAuthClientArgs } from '@dx-ui/framework-auth-provider';\nimport { makeAuthClient } from '@dx-ui/framework-auth-provider';\nimport type { MakeQueryClientArgs } from './make-query-client';\nimport { makeQueryClient } from './make-query-client';\nimport type { MakeDefaultFnOptionalArgs } from './default-fetch-fn';\n\nexport type PagePropsUseClients = Pick<\n MakeAuthClientArgs,\n 'appId' | 'appName' | 'authEndpoints' | 'gqlEndpoints'\n> & {\n authClientState?: MakeAuthClientArgs['restore'];\n} & Omit<MakeQueryClientArgs, 'authClient'> &\n MakeDefaultFnOptionalArgs;\n\nexport function useClients(pageProps: PagePropsUseClients) {\n const { appId, appName, authEndpoints, gqlEndpoints, authClientState, ...queryClientProps } =\n pageProps;\n const queryClientRef = useRef<QueryClient | null>(null);\n const authClientRef = useRef<AuthClient | null>(null);\n if (!authClientRef.current) {\n authClientRef.current = makeAuthClient({\n appId,\n appName,\n authEndpoints,\n gqlEndpoints,\n restore: authClientState,\n ssrMode: isServer,\n });\n }\n if (!queryClientRef.current) {\n queryClientRef.current = makeQueryClient({\n ...queryClientProps,\n appName,\n authClient: authClientRef.current,\n ssrMode: isServer,\n });\n }\n return {\n queryClient: queryClientRef.current,\n authClient: authClientRef.current,\n };\n}\n","import type { QueryClient } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport type { IncompleteQueryEvent } from './default-fetch-fn';\nimport { logError } from '@dx-ui/framework-logger';\nimport type { DXExecutionResult, QueryDebugInfo } from '@dx-ui/types-graphql';\n\nexport function useQueryIncomplete({\n queryClient,\n onIncompleteQuery,\n incompleteLoggingEnabled,\n}: {\n queryClient: QueryClient;\n onIncompleteQuery:\n | ((query: QueryDebugInfo) => {\n reportIncomplete: boolean;\n })\n | undefined;\n incompleteLoggingEnabled: boolean | undefined;\n}) {\n useEffect(() => {\n const ssrResults = queryClient.getQueriesData<DXExecutionResult>({\n predicate: (query) => (query.state.data as DXExecutionResult)?.__info__?.isSSR === true,\n });\n const incompleteSSRQueries = ssrResults.filter(([, data]) => {\n return data && data.__info__?.dxCompleteness !== '1';\n });\n\n if (incompleteSSRQueries.length > 0) {\n incompleteSSRQueries.forEach(([, data]) => {\n if (data && data.__info__) {\n const { reportIncomplete } = onIncompleteQuery?.(data.__info__) || {\n reportIncomplete: true,\n };\n if (reportIncomplete && incompleteLoggingEnabled) {\n logError(\n 'SSR_INCOMPLETE',\n `${data?.__info__.operationName} / ${data.__info__?.originalOpName}`\n );\n }\n }\n });\n }\n\n if (typeof window !== 'undefined') {\n const listener = (event: CustomEvent<IncompleteQueryEvent>) => {\n // at this point we have a client side query that had a header dx-completeness: 0\n // log that to logger, after letting callers determine if they should report (report by default)\n const { reportIncomplete } = onIncompleteQuery?.(event.detail) || {\n reportIncomplete: true,\n };\n if (reportIncomplete && incompleteLoggingEnabled) {\n // report to logger if the value is on\n logError(\n 'CLIENT_INCOMPLETE',\n `${event.detail.operationName} / ${event.detail.originalOpName}`\n );\n }\n };\n window.addEventListener('dx-incomplete', listener as EventListener);\n return () => {\n window.removeEventListener('dx-incomplete', listener as EventListener);\n };\n }\n return () => undefined;\n }, [queryClient, onIncompleteQuery, incompleteLoggingEnabled]);\n}\n","import type { PagePropsUseClients } from './use-clients';\nimport { useClients } from './use-clients';\nimport { AuthProvider } from '@dx-ui/framework-auth-provider';\nimport type { DehydratedState } from '@tanstack/react-query';\nimport { HydrationBoundary, QueryClientProvider } from '@tanstack/react-query';\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools';\nimport { useQueryIncomplete } from './use-query-incomplete';\nimport type { QueryDebugInfo } from '@dx-ui/types-graphql';\n\nexport type QueryProviderProps = {\n devtoolsOptions?: React.ComponentProps<typeof ReactQueryDevtools>;\n dehydratedQueryState?: DehydratedState;\n onIncompleteQuery?: (query: QueryDebugInfo) => {\n reportIncomplete: boolean;\n };\n incompleteLoggingEnabled?: boolean;\n} & PagePropsUseClients;\n\nexport function QueryProvider({\n children,\n dehydratedQueryState,\n devtoolsOptions,\n onIncompleteQuery,\n incompleteLoggingEnabled,\n ...useClientProps\n}: React.PropsWithChildren<QueryProviderProps>) {\n const { queryClient, authClient } = useClients(useClientProps);\n\n useQueryIncomplete({ queryClient, onIncompleteQuery, incompleteLoggingEnabled });\n\n return (\n <AuthProvider authClient={authClient}>\n <QueryClientProvider client={queryClient}>\n <HydrationBoundary state={dehydratedQueryState}>{children}</HydrationBoundary>\n {process.env.NODE_ENV === 'development' && (\n <ReactQueryDevtools initialIsOpen={false} {...devtoolsOptions} />\n )}\n </QueryClientProvider>\n </AuthProvider>\n );\n}\n","export * from './query-provider';\nexport * from './make-query-client';\nexport * from './default-fetch-fn';\nexport * from './default-fetch-fn-utils';\n","export * from './lib';\n","export const DEFAULT_BRAND_CODE = 'HI';\n\nexport const DEPRECATED_BRAND_CODES = ['WW', 'HH'];\n\nexport const ELIGIBLE_REFRESH_BRAND_CODES = [DEFAULT_BRAND_CODE, ...DEPRECATED_BRAND_CODES];\n\nexport const ENTERPRISE_THEME_REFRESH_TOGGLE_NAME = 'NHCBP_5821_Enterprise_Refresh';\n","import { DEFAULT_BRAND_CODE, DEPRECATED_BRAND_CODES } from './constants';\n\ntype GetThemeClassNameArgs = Partial<{\n brandCode: StringWithAutocompleteOptions<BrandCode>;\n isBrandRefresh: boolean;\n}>;\n\nconst defaultArguments = {\n brandCode: DEFAULT_BRAND_CODE,\n isBrandRefresh: false,\n} as const satisfies GetThemeClassNameArgs;\n\nexport function getThemeClassName({\n brandCode = defaultArguments.brandCode,\n isBrandRefresh = defaultArguments.isBrandRefresh,\n}: GetThemeClassNameArgs = defaultArguments) {\n const brand = getSupportedBrandCode(brandCode).toLowerCase();\n const base = ['theme', brand].join('-');\n const refresh = isBrandRefresh ? [base, 'refresh'].join('-') : null;\n return [base, refresh].filter(Boolean).join(' ');\n}\n\nfunction getSupportedBrandCode(brandCode: NonNullable<GetThemeClassNameArgs['brandCode']>) {\n return DEPRECATED_BRAND_CODES.includes(brandCode) ? DEFAULT_BRAND_CODE : brandCode;\n}\n","import { getIsFeatureToggleEnabled } from '@dx-ui/utilities-feature-toggles-configs';\nimport {\n DEFAULT_BRAND_CODE,\n ELIGIBLE_REFRESH_BRAND_CODES,\n ENTERPRISE_THEME_REFRESH_TOGGLE_NAME,\n} from './constants';\n\ntype FeatureToggles =\n | NonNullable<\n Parameters<typeof getIsFeatureToggleEnabled>[0]['featureToggleData']\n >['featureToggles'];\n\nexport function getBrandRefreshProps({\n featureToggles,\n brandCode = DEFAULT_BRAND_CODE,\n}: {\n featureToggles: FeatureToggles;\n brandCode?: string;\n}) {\n const isBrandRefresh =\n ELIGIBLE_REFRESH_BRAND_CODES.includes(brandCode) &&\n getIsFeatureToggleEnabled({\n featureToggleData: { featureToggles },\n name: ENTERPRISE_THEME_REFRESH_TOGGLE_NAME,\n });\n return { isBrandRefresh };\n}\n","export * from './get-theme-classname';\nexport * from './theme-toggles';\nexport * from './constants';\n","export * from './lib';\n","import type { SupportedLanguage } from '@dx-ui/framework-i18n';\n\ntype IUriBuilder = {\n host: string;\n brand?: string;\n secure?: boolean;\n language?: MapLanguage;\n};\n\nexport type MapLanguage = SupportedLanguage;\n\nexport class UriBuilder {\n host: string;\n brand?: string;\n secure?: boolean;\n language?: MapLanguage;\n\n constructor(args: IUriBuilder) {\n this.host = args.host;\n this.brand = args.brand;\n this.secure = args.secure;\n this.language = args.language;\n }\n\n build(href: string) {\n const { host, brand, secure, language } = this;\n const schema = secure ? 'https://' : 'http://';\n const lang = language || 'en';\n const path = brand ? `/${brand}${href}` : href;\n\n return `${schema}${host}/${lang}${path}`;\n }\n}\n","import type { BrandCode } from './types';\n\ntype BrandCodeToBrandNameMapper = {\n [key in keyof BrandCode]: string | null;\n};\nexport const brandCodeToBrandNameMapper: BrandCodeToBrandNameMapper = {\n CH: 'conrad-hotels',\n DT: 'doubletree-by-hilton',\n ES: 'embassy-suites',\n EY: 'livsmart-studios',\n GI: 'hilton-garden-inn',\n GU: 'graduate-hotels',\n GV: 'hilton-grand-vacations',\n HH: null,\n HI: 'hilton-hotels',\n HP: 'hampton-by-hilton',\n HT: 'home2-suites',\n HW: 'homewood-suites',\n LX: 'small-luxury-hotels-slh',\n ND: 'nomad-hotels',\n OL: 'lxr-hotels',\n OU: 'autocamp-stays',\n PE: 'spark-by-hilton',\n PO: 'tempo-by-hilton',\n PY: 'canopy-by-hilton',\n QQ: 'curio-collection',\n RU: 'tru-by-hilton',\n SA: 'signia-hilton',\n UA: 'motto-by-hilton',\n UP: 'tapestry-collection',\n WA: 'waldorf-astoria',\n WW: null,\n};\n","export type Dates = {\n arrivalDate?: Date | null;\n flexibleDates?: boolean;\n departureDate?: Date | null;\n};\n\nexport type BaseUriBuilderParams<T1, T2> = {\n urlParams?: T1;\n relative?: boolean;\n locale?: string;\n path?: T2;\n brandCode?: keyof BrandCode;\n baseUrl?: string;\n brandSlug?: string;\n primarySlug?: string;\n} & ({ brandCode?: never } | { brandSlug?: never });\n\nexport type BrandCode = {\n CH: 'CH';\n DT: 'DT';\n ES: 'ES';\n EY: 'EY';\n GI: 'GI';\n GU: 'GU';\n GV: 'GV';\n HH: 'HH';\n HI: 'HI';\n HP: 'HP';\n HT: 'HT';\n HW: 'HW';\n LX: 'LX';\n ND: 'ND';\n OL: 'OL';\n OU: 'OU';\n PE: 'PE';\n PO: 'PO';\n PY: 'PY';\n QQ: 'QQ';\n RU: 'RU';\n SA: 'SA';\n UA: 'UA';\n UP: 'UP';\n WA: 'WA';\n WW: 'WW';\n};\n\nexport type Locale = {\n ar: 'ar';\n cs: 'cs';\n da: 'da';\n de: 'de';\n en: 'en';\n es: 'es';\n fi: 'fi';\n fr: 'fr';\n it: 'it';\n ja: 'ja';\n ko: 'ko';\n nl: 'nl';\n no: 'no';\n pl: 'pl';\n pt: 'pt';\n ro: 'ro';\n ru: 'ru';\n sv: 'sv';\n th: 'th';\n tr: 'tr';\n zh: 'zh';\n};\n\nexport type Person = { age: number | null };\nexport type Adult = Partial<Person>;\nexport type Child = Person;\n\nexport type Room = {\n adults: Adult[] | number;\n children: Child[] | number;\n};\n\nexport type CBPRoom = {\n adults: Adult[];\n children: Child[];\n};\n\nexport type Rates = {\n aarp?: boolean;\n corporateAccount?: string;\n employeeRate?: boolean;\n friendsAndFamilyRate?: boolean;\n government?: boolean;\n groupCode?: string;\n offerId?: number | null;\n ownerHGVRate?: boolean;\n ownerVIPRate?: boolean;\n pnd?: string | null;\n promoCode?: string;\n requestedRatesOnly?: boolean;\n senior?: boolean;\n smbRate?: boolean | null;\n travelAgents?: boolean;\n tripleA?: boolean;\n usePoints?: boolean;\n [prop: string]: string | boolean | number | null | undefined;\n};\n\nexport const RatePlanCodes = {\n AAA: 'HCAAA',\n AARP: 'HCARP',\n GOVERNMENT_MILITARY: 'GDSGOV',\n SENIOR: 'GDSSNR',\n USE_POINTS: 'HCSMR',\n} as const;\n\nexport const RatePlanParamKeys = {\n aarp: 'aarpRate',\n corporateAccount: 'corporateCode',\n employeeRate: 'employeeRate',\n friendsAndFamilyRate: 'friendsAndFamilyRate',\n fromId: 'fromId',\n government: 'governmentOrMilitaryRate',\n groupCode: 'groupCode',\n offerId: 'offerId',\n ownerHGVRate: 'ownerHGVRate',\n ownerVIPRate: 'ownerVIPRate',\n pnd: 'pnd',\n promoCode: 'promotionCode',\n requestedRatesOnly: 'requestedRatesOnly',\n senior: 'seniorRate',\n smbRate: 'smbRate',\n spec_plan: 'spec_plan',\n travelAgentId: 'travelAgentId',\n travelAgents: 'travelAgentRate',\n tripleA: 'aaaRate',\n usePoints: 'redeemPts',\n} as const;\n\nexport const sortByValues = [\n 'distance',\n 'points_ascending',\n 'points_descending',\n 'price_ascending',\n 'price_descending',\n 'brand',\n] as const;\nexport type SortByValues = (typeof sortByValues)[number];\nexport function isSortByValue(someString: string): someString is SortByValues {\n return Boolean(sortByValues.find((value) => someString === value));\n}\n\nexport const tripAdvisorRatings = [\n 'fiveAndUp',\n 'fourAndUp',\n 'threeAndUp',\n 'twoAndUp',\n 'allRatings',\n] as const;\nexport type TripAdvisorRatings = (typeof tripAdvisorRatings)[number];\nexport function isTripAdvisorRating(someString: string): someString is TripAdvisorRatings {\n return Boolean(tripAdvisorRatings.find((rating) => rating === someString));\n}\n","import type { Room, Rates, Dates, Person, CBPRoom } from '../types';\nimport { RatePlanParamKeys } from '../types';\nimport { format } from 'date-fns';\n\n/**\n * create a safe query parameter string for specialRates based parameters\n * @param rates {Rates}\n * @returns string\n */\nexport const buildRatesParams = (params: URLSearchParams, rates: Rates) => {\n Object.keys(rates).forEach((rateKey) => {\n if (rates[rateKey]) {\n params.append(\n RatePlanParamKeys[rateKey as keyof typeof RatePlanParamKeys],\n encodeURI(rates[rateKey] as string)\n );\n }\n });\n};\n\n/**\n * Maps the original Room type to the newer room type that includes child ages for CBP (child based pricing)\n * @param rooms\n * @returns CBPRoom[]\n */\nconst mapRoomsArrayToCBPFormat = (rooms: Room[]) =>\n rooms.reduce((accum, curr) => {\n // if either param is old occuptant number then convert to array of objects, otherwise use new CBP value that is passed\n const adults: Person[] =\n typeof curr.adults === 'number' ? Array(curr.adults).fill({ age: undefined }) : curr.adults;\n const children: Person[] =\n typeof curr.children === 'number'\n ? Array(curr.children).fill({ age: undefined })\n : curr.children;\n accum.push({ adults, children });\n return accum;\n }, [] as CBPRoom[]);\n\n/**\n * create a safe query parameter string for rooms based query parameters\n * @param rooms\n * @returns string\n */\nexport const buildRoomsParams = (params: URLSearchParams, numRooms?: number, rooms?: Room[]) => {\n if (!rooms && !numRooms) return;\n\n if (rooms) {\n const normalizedRooms = mapRoomsArrayToCBPFormat(rooms);\n if (normalizedRooms.length !== numRooms) {\n params.append('numRooms', String(numRooms));\n }\n\n // single room logic param names differ from multiroom\n else if (normalizedRooms.length === 1 && normalizedRooms[0]) {\n params.append('numRooms', String(normalizedRooms.length));\n params.append('numAdults', String(normalizedRooms[0].adults.length));\n params.append('numChildren', String(normalizedRooms[0].children.length));\n params.append(\n 'room1ChildAges',\n normalizedRooms[0].children\n .filter((c) => c.age !== undefined)\n .map((c) => c.age)\n .join(',')\n );\n params.append(\n 'room1AdultAges',\n normalizedRooms[0].adults\n .filter((a) => a.age !== undefined)\n .map((a) => a.age)\n .join(',')\n );\n } else {\n params.append('numRooms', String(normalizedRooms.length));\n normalizedRooms.forEach((room, i) => {\n const currentRoom = normalizedRooms[i];\n params.append(`room${i + 1}NumAdults`, String(room.adults.length));\n params.append(`room${i + 1}NumChildren`, String(room.children.length));\n if (currentRoom)\n params.append(\n `room${i + 1}AdultAges`,\n currentRoom.adults\n .filter((a) => a.age !== undefined)\n .map((a) => a.age)\n .join(',')\n );\n if (currentRoom)\n params.append(\n `room${i + 1}ChildAges`,\n currentRoom.children\n .filter((c) => c.age !== undefined)\n .map((c) => c.age)\n .join(',')\n );\n });\n }\n } else if (numRooms) params.append('numRooms', String(numRooms));\n};\n\n/**\n * Creates a safe query parameter string for dates based query parameters.\n * @param dates\n * @returns string\n */\n\nexport const buildDatesParams = (params: URLSearchParams, dates?: Dates) => {\n if (!dates) return;\n\n if (dates?.arrivalDate) params.append('arrivalDate', format(dates?.arrivalDate, 'yyyy-MM-dd'));\n if (dates?.departureDate)\n params.append('departureDate', format(dates?.departureDate, 'yyyy-MM-dd'));\n if (dates?.flexibleDates !== undefined)\n params.append('flexibleDates', dates?.flexibleDates.toString());\n};\n\nexport type GetGroupOrTransientSubpathProps = {\n groupsPath: string;\n numAttendees: number;\n numRooms: number;\n transientPath: string;\n};\n/**\n *\n * @param groupPath - path that corresponds to 10+ or group booking (example: group-search, group)\n * @param transientPath - path that corresponds to <10 or transient booking (example: search, reservations)\n * @param numRooms - number of rooms requested (typically for hotel rooms)\n * @param numAttendees - number of attendees requested (typically for meeting room)\n */\nexport const getGroupOrTransientSubpath = ({\n groupsPath,\n numAttendees,\n numRooms,\n transientPath,\n}: GetGroupOrTransientSubpathProps) => {\n return numRooms >= 10 || numAttendees > 0 ? groupsPath : transientPath;\n};\n","import type {\n Room,\n Rates,\n Dates,\n SortByValues,\n BaseUriBuilderParams,\n TripAdvisorRatings,\n} from '../types';\nimport { brandCodeToBrandNameMapper } from '../constants';\nimport {\n buildRoomsParams,\n buildRatesParams,\n buildDatesParams,\n getGroupOrTransientSubpath,\n} from '../uri-builder-utils/uri-builder.utils';\n\nexport type Path =\n | 'go-hilton'\n | 'hgv-max'\n | 'find-hotels'\n | 'go-hilton-find-hotels'\n | 'hgv-max-find-hotels'\n | 'search'\n | 'group-search';\n\nexport type SearchUrlParams = {\n adjoiningRoomStay?: boolean;\n availableHotelsOnly?: boolean;\n content?: string;\n dates?: Dates;\n displayCurrency?: string;\n f_amenityIds?: string[];\n f_attributeIds?: string[];\n f_brandCodes?: string[];\n f_price?: [number, number];\n f_tripAdvisorRatings?: TripAdvisorRatings;\n maxPoints?: number | null;\n numAttendees?: number | null;\n numRooms?: number | null;\n placeId?: string | null;\n programAccountId?: number | null;\n query?: string;\n rates?: Rates;\n rooms?: Room[];\n sessionToken?: string;\n sortBy?: SortByValues;\n specialRateTokens?: string[];\n cid?: string;\n};\n\n/**\n * Returns an OHW formatted search URL\n *\n * @param {SearchUrlParams} urlParams\n * @param {boolean} relative - use relative pathing (defaults to absolute pathing)\n * @param {keyof Locale} locale Language locale (defaults to en)\n * @param {Path} path (optional) search path ('go-hilton' | 'find-hotels' | 'go-hilton-find-hotels' | 'search' | 'group-search'). Defaults to 'search'\n * @param {keyof BrandCode} brandCode (optional) Hilton brand code\n *\n * The following paths map to following search experiences\n * go-hilton => search with tmtp options\n * find-hotels => search zero experience\n * go-hilton-find-hotels => search zero with tmtp options\n * search => main search page\n * group-search => 10+ search experience\n *\n * The following url parameters apply to find-hotels, search, go-hilton and go-hilton-find-hotels\n *\n * brandCode\n *\n * locale\n *\n * query\n *\n * placeId\n *\n * arrivalDate\n *\n * departureDate\n *\n * datesFlex\n *\n * sessionToken\n *\n * rooms\n *\n * aarp\n *\n * corporateAccount\n *\n * employeeRate\n *\n * friendsAndFamilyRate\n *\n * government\n *\n * groupCode\n *\n * offerId\n *\n * ownerVIPRate\n *\n * ownerHGVRate\n *\n * pnd\n *\n * promoCode\n *\n * senior\n *\n * travelAgents\n *\n * tripleA\n *\n * usePoints\n *\n * specialRateTokens\n *\n * requestedRatesOnly\n *\n * displayCurrency\n *\n * adjoiningRoomStay\n *\n * maxPoints\n *\n * sortBy\n *\n * f_amenityIds\n *\n * f_attributeIds\n *\n * f_brandCodes\n *\n * f_price\n *\n * f_tripAdvisorRatings\n *\n * availableHotelsOnly\n *\n * The following url parameters apply to group search (10+).\n *\n * query\n *\n * brandCode\n *\n * arrivalDate\n *\n * departureDate\n *\n * numRooms\n *\n * numAttendees\n *\n * sessionToken\n *\n * placeId\n */\nexport const searchUriBuilder = ({\n brandCode = 'HH',\n locale = 'en',\n path = 'search',\n urlParams,\n relative,\n baseUrl,\n brandSlug,\n primarySlug,\n}: BaseUriBuilderParams<SearchUrlParams, Path>) => {\n const {\n adjoiningRoomStay,\n availableHotelsOnly,\n content,\n dates,\n displayCurrency,\n f_amenityIds,\n f_attributeIds,\n f_brandCodes,\n f_price,\n f_tripAdvisorRatings,\n maxPoints,\n numAttendees,\n numRooms,\n placeId,\n programAccountId,\n query = '',\n rates,\n rooms,\n sessionToken,\n sortBy,\n specialRateTokens,\n cid,\n } = urlParams || {};\n\n // use relative pathing if enabled or if user does not provide baseUrl\n let url = relative || (!relative && !baseUrl) ? `/${locale}` : `${baseUrl}/${locale}`;\n const isDateless = !(dates?.arrivalDate || dates?.departureDate);\n const basePath = getGroupOrTransientSubpath({\n numAttendees: numAttendees ?? 0,\n numRooms: numRooms ?? 0,\n transientPath: path,\n groupsPath: 'group-search',\n });\n\n // switch between different search paths, depending on desired experience\n switch (basePath) {\n case 'go-hilton':\n url += '/go-hilton/search/';\n break;\n case 'hgv-max':\n url += '/hgv-max/search/';\n break;\n case 'find-hotels':\n if (primarySlug) {\n url += `/${primarySlug}`;\n }\n url += '/search';\n if (brandSlug) {\n url += `/${brandSlug}`;\n }\n url += '/find-hotels/';\n break;\n case 'go-hilton-find-hotels':\n url += '/go-hilton/find-hotels/';\n break;\n case 'hgv-max-find-hotels':\n url += '/hgv-max/search/find-hotels/';\n break;\n case 'group-search':\n url += '/group-search/';\n break;\n case 'search':\n default:\n url += '/search/';\n }\n\n //only append brand if brandcode actually should be its own search page\n if (basePath === 'search' && brandCodeToBrandNameMapper[brandCode])\n url += `${brandCodeToBrandNameMapper[brandCode]}/`;\n\n //if no url params just return url\n if (!urlParams || !Object.keys(urlParams)) return url;\n\n const params = new URLSearchParams();\n\n const filteredSpecialRateTokens = specialRateTokens?.filter(\n (specialRate) => specialRate !== 'HCARP'\n );\n if (placeId) params.append('placeId', placeId);\n if (dates) buildDatesParams(params, dates);\n // these parameters dont apply to group search (10+)\n if (basePath !== 'group-search') {\n if (rooms) buildRoomsParams(params, numRooms ? numRooms : rooms.length, rooms);\n if (rates) buildRatesParams(params, rates);\n if (filteredSpecialRateTokens)\n params.append('specialRateTokens', filteredSpecialRateTokens.join(','));\n if (displayCurrency) params.append('displayCurrency', displayCurrency);\n if (adjoiningRoomStay) params.append('adjoiningRoomStay', String(adjoiningRoomStay));\n if (isDateless && typeof maxPoints === 'number')\n params.append('maxPoints', maxPoints.toString());\n if (sortBy) params.append('sortBy', sortBy);\n if (f_amenityIds) params.append('f-amenityIds', f_amenityIds.join(','));\n if (f_attributeIds && f_attributeIds?.length)\n params.append('f-attributeIds', f_attributeIds.join(','));\n if (f_brandCodes) params.append('f-brandCodes', f_brandCodes.join(','));\n if (f_price) params.append('f-price', f_price.join(','));\n if (f_tripAdvisorRatings) params.append('f-tripAdvisorRatings', f_tripAdvisorRatings);\n if (availableHotelsOnly) params.append('availableHotelsOnly', String(availableHotelsOnly));\n if (programAccountId) params.append('programAccountId', programAccountId.toString());\n }\n // these parameters only apply to group search (10+ search)\n else {\n if (brandCode) params.append('brandCode', brandCode);\n if (numRooms) params.append('numRooms', numRooms.toString());\n if (numAttendees) params.append('attendee_count', numAttendees.toString());\n }\n // passthrough parameters that apply to all searches\n if (sessionToken) params.append('sessionToken', sessionToken);\n if (cid) params.append('cid', cid);\n if (content) params.append('content', content);\n\n const queryString = params.toString();\n\n return `${url}?query=${encodeURIComponent(query)}${queryString ? '&' : ''}${queryString}`;\n};\n","export * from './search-uri-builder';\n","import type { BaseUriBuilderParams } from '../types';\nimport { brandCodeToBrandNameMapper } from '../constants';\nimport type { SearchUrlParams } from '../search-uri-builder';\n\nexport type BasePath = 'locations' | 'meetings-events';\n\nexport type LocationUrlParams = Omit<SearchUrlParams, 'dates' | 'dateRange'> & {\n redeemPts?: boolean;\n location?: LocationCoords;\n bounds?: Bounds;\n geocodeType?: string;\n placeUri?: string | null;\n};\n\ntype LocationCoords = {\n latitude: number;\n longitude: number;\n};\n\ntype Bounds = {\n northeast: {\n latitude: number;\n longitude: number;\n };\n southwest: {\n latitude: number;\n longitude: number;\n };\n};\n/**\n * Returns an OHW formatted search URL\n *\n * @param {boolean} relative Use relative pathing (defaults to absolute pathing)\n * @param {string} locale Language locale (defaults to en)\n * @param {BasePath} BasePath (optional) dream BasePath ('locations' | 'meetings-events'). Defaults to 'locations'\n * @param {keyof BrandCode} brandCode (optional) Hilton brand code (defaults to HH)\n *\n * The following paths map to following search experiences\n * locations => default locations page\n * meetings-event => Venue search ( 10+ dream ) experience\n *\n * The following url parameters apply to locations page (dream pages)\n *\n * brandName = ''\n *\n * locale = 'en'\n *\n * location = ''\n *\n * displayCurrency = 'LOCAL'\n *\n * redeemPts = false\n *\n * The following url parameters apply to meeting-events page (venue pages)\n *\n * locale = 'en'\n *\n * location = ''\n *\n * sortBy\n *\n * f_amenityIds\n *\n * f_brandCodes\n *\n * f_price\n *\n * f_tripAdvisorRatings\n *\n */\nexport const locationUriBuilder = ({\n locale = 'en',\n path = 'locations',\n brandCode,\n urlParams,\n relative,\n baseUrl,\n}: BaseUriBuilderParams<LocationUrlParams, BasePath>) => {\n const {\n displayCurrency,\n redeemPts,\n sessionToken,\n sortBy,\n f_amenityIds,\n f_brandCodes,\n f_price,\n f_tripAdvisorRatings,\n adjoiningRoomStay,\n placeUri,\n placeId,\n location,\n geocodeType,\n bounds,\n query,\n cid,\n content,\n } = urlParams || {};\n\n // use relative pathing if enabled or if user does not provide baseUrl\n let fullPath =\n relative || (!relative && !baseUrl)\n ? `/${locale}`\n : //if the base URL has a trailing slash, do not append a second one\n `${baseUrl}${baseUrl?.endsWith('/') ? '' : '/'}${locale}`;\n\n // switch between different dream paths depending on desired experience\n switch (path) {\n case 'meetings-events':\n fullPath += '/meetings-events/';\n break;\n case 'locations':\n default:\n fullPath += '/locations/';\n }\n\n if (placeUri) {\n fullPath += placeUri.endsWith('/') ? placeUri : `${placeUri}/`;\n }\n\n const isBrandCodeMatchedWithFilter =\n !f_brandCodes || (f_brandCodes.length === 1 && f_brandCodes[0] === brandCode);\n // brandname parameter should be added to the uri slug to dream locations pages\n if (\n brandCode &&\n !!brandCodeToBrandNameMapper[brandCode] &&\n path === 'locations' &&\n isBrandCodeMatchedWithFilter\n ) {\n fullPath += `${brandCodeToBrandNameMapper[brandCode]}/`;\n }\n\n const params = new URLSearchParams();\n if (path !== 'meetings-events') {\n if (displayCurrency) params.set('displayCurrency', displayCurrency);\n if (redeemPts) params.append('redeemPts', String(redeemPts));\n if (sortBy) params.append('sortBy', sortBy);\n if (f_amenityIds) params.append('f-amenityIds', f_amenityIds.join(','));\n if (f_brandCodes) params.append('f-brandCodes', f_brandCodes.join(','));\n if (f_price) params.append('f-price', String(f_price));\n if (f_tripAdvisorRatings) params.append('f-tripAdvisorRatings', f_tripAdvisorRatings);\n if (adjoiningRoomStay) params.append('adjoiningRoomStay', String(adjoiningRoomStay));\n if (placeId) params.append('placeId', placeId);\n if (query) params.append('query', query);\n if (location) {\n params.append('coords', `${location.latitude},${location.longitude}`);\n if (geocodeType) params.append('geocodeType', geocodeType);\n }\n if (bounds) {\n params.append(\n 'bounds',\n `${bounds.southwest.latitude},${bounds.southwest.longitude},${bounds.northeast.latitude},${bounds.northeast.longitude}`\n );\n }\n if (content) {\n params.append('content', content);\n }\n }\n\n if (sessionToken) params.append('sessionToken', sessionToken);\n if (cid) params.append('cid', cid);\n\n const queryParams = params.toString();\n fullPath += queryParams ? `?${queryParams}` : '';\n return fullPath;\n};\n","export * from './location-uri-builder';\n","import type { Dates, Room, Adult, Child, BaseUriBuilderParams } from '../types';\nimport { format, startOfToday, addDays } from 'date-fns';\nimport { getGroupOrTransientSubpath } from '../uri-builder-utils/uri-builder.utils';\n\nexport type BookRates = {\n aaaRate?: boolean | null;\n aarpRate?: boolean | null;\n corporateCode?: string | null;\n employeeRate?: boolean | null;\n friendsAndFamilyRate?: boolean | null;\n fromId?: string | null;\n governmentRate?: boolean | null;\n groupCode?: string | null;\n offerId?: number | null;\n ownerHGVRate?: boolean | null;\n ownerVIPRate?: boolean | null;\n pnd?: string | null;\n promotionCode?: string | null;\n ratePlanCodes?: string | null;\n redeemPts?: boolean | null;\n roomCategory?: string | null;\n roomTypeCode?: string | null;\n seniorRate?: boolean | null;\n smbRate?: boolean | null;\n travelAgent?: boolean | null;\n travelAgentId?: string | null;\n};\n\nexport type BookPath = 'book' | 'modify';\nexport type BookUrlParams = {\n dates?: Dates;\n rates?: BookRates;\n rooms?: Room[];\n numRooms?: number | null;\n numAttendees?: number | null;\n ctyhocn: string;\n displayCurrency?: string;\n adjoiningRoomStay?: boolean;\n programAccountId?: number | null;\n additionalQS?: {\n [key: string]: string | boolean | undefined;\n };\n};\n\ntype BookUrlQS = { [key: string]: undefined | string | number | null | boolean };\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function bookUriBuilder({\n locale = 'en',\n path = 'book',\n urlParams,\n relative,\n baseUrl,\n page = 'rooms',\n}: BaseUriBuilderParams<BookUrlParams, BookPath> & {\n page?: 'rooms' | 'rates' | 'flexibledates' | 'deeplink' | 'payment';\n}): string {\n const urlparts: string[] = [buildBaseUrl({ relative, baseUrl, locale })];\n\n const numRooms = urlParams?.numRooms ?? urlParams?.rooms?.length ?? 1;\n const numAttendees = urlParams?.numAttendees ? urlParams?.numAttendees : 0;\n\n if (path === 'modify') {\n urlparts.push('modify');\n } else {\n urlparts.push('book');\n }\n\n urlparts.push(\n getGroupOrTransientSubpath({\n numAttendees: numAttendees ?? 0,\n numRooms: numRooms ?? 0,\n transientPath: 'reservation',\n groupsPath: 'group',\n }),\n page\n );\n\n return `${urlparts.join('/')}/?${bookParamBuilder(urlParams)}`;\n}\n\nexport function bookParamBuilder(\n urlParams: BaseUriBuilderParams<BookUrlParams, BookPath>['urlParams']\n) {\n const {\n ctyhocn,\n displayCurrency,\n adjoiningRoomStay,\n dates,\n rooms,\n rates = {},\n additionalQS = {},\n numRooms,\n numAttendees,\n programAccountId,\n } = urlParams || {};\n\n const arrivalDate = dates?.arrivalDate || startOfToday();\n const departureDate = dates?.departureDate || addDays(startOfToday(), 1);\n const nonEmptyAdditionalQS = Object.fromEntries(\n Object.entries(additionalQS).filter(([, v]) => Boolean(v) || v === false)\n );\n\n const querystringObj: BookUrlQS = {\n ctyhocn,\n arrivalDate: formatDate(arrivalDate),\n departureDate: formatDate(departureDate),\n ...rates,\n ...(numRooms == null && !numAttendees && roomsToQS(rooms)),\n ...nonEmptyAdditionalQS,\n };\n\n if (displayCurrency) querystringObj.displayCurrency = displayCurrency;\n if (adjoiningRoomStay) querystringObj.adjoiningRoomStay = adjoiningRoomStay;\n if (numRooms != null) querystringObj.numRooms = numRooms;\n if (numRooms == null && numAttendees) querystringObj.numRooms = 0;\n if (numAttendees) querystringObj.numAttendees = numAttendees;\n if (additionalQS.cid) querystringObj.cid = additionalQS.cid;\n if (programAccountId) querystringObj.programAccountId = programAccountId;\n\n return new URLSearchParams(mapParams(querystringObj)).toString();\n}\n\n// Mimic the behavior of 'querystring' encode.\nfunction mapParams<T extends BookUrlQS>(params: T) {\n return Object.entries(params).reduce((params, [key, value]) => {\n if (typeof value === 'boolean') {\n return { ...params, [key]: String(value) };\n }\n if (typeof value === 'number') {\n return { ...params, [key]: isFinite(value) ? String(value) : '' };\n }\n if (typeof value === 'string') {\n return { ...params, [key]: value };\n }\n return { ...params, [key]: '' };\n }, {} as Record<string, string>);\n}\n\nfunction buildBaseUrl({\n relative,\n baseUrl,\n locale,\n}: {\n relative?: boolean;\n baseUrl?: string;\n locale: string;\n}) {\n return relative || (!relative && !baseUrl) ? `/${locale}` : `${baseUrl}/${locale}`;\n}\n\nfunction formatDate(date: Date) {\n return format(date, 'yyyy-MM-dd');\n}\n\nfunction roomsToQS(rooms?: Room[]) {\n if (!rooms?.length) {\n return {\n room1NumAdults: 1,\n };\n }\n if ((rooms?.length || 1) >= 10) {\n return {\n numRooms: rooms?.length,\n };\n }\n return rooms.reduce((prev, curr, index) => {\n const adults: Adult[] =\n typeof curr.adults === 'number' ? Array(curr.adults).fill({ age: null }) : curr.adults;\n const children: Child[] =\n typeof curr.children === 'number' ? Array(curr.children).fill({ age: null }) : curr.children;\n\n const roomNumber = index + 1;\n if (adults.length) {\n prev[`room${roomNumber}NumAdults`] = adults.length;\n const adultAges = adults\n .filter((a) => a.age !== undefined && a.age !== null)\n .map((a) => a.age);\n if (adultAges.length) {\n prev[`room${roomNumber}AdultAges`] = adultAges.join(',');\n }\n }\n if (children.length) {\n prev[`room${roomNumber}NumChildren`] = children.length;\n const childAges = children.filter((c) => c.age !== null).map((c) => c.age);\n if (childAges.length) {\n prev[`room${roomNumber}ChildAges`] = childAges.join(',');\n }\n }\n\n return prev;\n }, {} as Record<string, number | string>);\n}\n","import type { Maybe } from '@dx-ui/gql-types';\nimport {\n buildDatesParams,\n buildRatesParams,\n buildRoomsParams,\n} from '../uri-builder-utils/uri-builder.utils';\nimport type { Dates, Rates, Room } from '../types';\n\nexport type PropertyUrlParams = {\n dates?: Dates;\n numAttendees?: number | null;\n numRooms?: number | null;\n query?: string;\n rates?: Rates;\n redeemPts?: boolean;\n rooms?: Room[];\n adjoiningRoomStay?: boolean;\n sessionToken?: string;\n specialRateTokens?: string[];\n displayCurrency?: string | null;\n};\n/**\n * Returns an OHW formatted property URL\n *\n * @param {PropertyUrlParams} urlParams\n *\n */\n\nexport const propertyUriBuilder = ({\n baseUrl,\n urlParams,\n}: {\n baseUrl?: Maybe<string>;\n urlParams?: PropertyUrlParams;\n}) => {\n if (!urlParams || !Object.keys(urlParams).length) return baseUrl;\n const {\n dates,\n rooms,\n rates,\n specialRateTokens,\n numRooms,\n sessionToken,\n displayCurrency,\n adjoiningRoomStay,\n } = urlParams ?? {};\n\n const params = new URLSearchParams();\n if (dates) buildDatesParams(params, dates);\n if (rooms) buildRoomsParams(params, numRooms ? numRooms : rooms.length, rooms);\n if (adjoiningRoomStay) params.append('adjoiningRoomStay', adjoiningRoomStay.toString());\n if (displayCurrency) params.append('displayCurrency', displayCurrency);\n if (rates) buildRatesParams(params, rates);\n if (specialRateTokens && !!specialRateTokens.length)\n params.append('specialRateTokens', specialRateTokens.join(','));\n if (sessionToken) params.append('sessionToken', sessionToken);\n\n const queryString = params.toString();\n return `${baseUrl}?${queryString}`;\n};\n","export * from './property-uri-builder';\n","export * from './uri-builder';\nexport * from './search-uri-builder';\nexport * from './location-uri-builder';\nexport * from './book-uri-builder';\nexport * from './types';\nexport * from './property-uri-builder';\n","export * from './lib';\n","import type * as React from 'react';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { useCycle } from '@dx-ui/osc-cycle';\nimport Icon from '@dx-ui/osc-icon';\n\nexport type Alert = {\n index?: number;\n status?: 'normal' | 'urgent' | 'emergency';\n title?: string;\n /**\n * Adds truncation to text if true, true is default state (current)\n */\n isTruncated?: boolean;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Displays a message with an icon if status requires it\n */\nexport const Alert: React.FC<React.PropsWithChildren<Alert>> = ({\n className,\n status = 'urgent',\n title,\n index = 0,\n isTruncated = true,\n children,\n ...rest\n}) => {\n const [t] = useTranslation('osc-alert');\n const { active, total, hasSlides } = useCycle();\n const cycleProps: React.HTMLAttributes<HTMLDivElement> = hasSlides\n ? {\n role: 'group',\n 'aria-roledescription': 'slide',\n 'aria-label': `${index + 1} of ${total}`,\n }\n : {};\n\n return (\n <div\n className={cx(\n 'w-full py-2',\n {\n 'alert-normal': status === 'normal',\n 'alert-urgent': status === 'urgent',\n 'alert-emergency': status === 'emergency',\n hidden: hasSlides && index !== active,\n 'pb-8 md:pb-2': hasSlides,\n },\n className\n )}\n {...cycleProps}\n {...rest}\n >\n <div className=\"container flex items-center justify-center space-x-3\">\n {status === 'urgent' && (\n <>\n <p className=\"sr-only\">{t('urgent')}</p>\n <Icon name=\"alert-triangle\" size=\"md\" className=\"alert-urgent-icon\" variant=\"solid\" />\n </>\n )}\n {status === 'emergency' && (\n <>\n <p className=\"sr-only\">{t('emergency')}</p>\n <Icon name=\"alert-circle\" size=\"md\" className=\"alert-emergency-icon\" variant=\"solid\" />\n </>\n )}\n {!!title && (\n <p\n data-osc-product=\"alert-label\"\n className={cx('max-w-3/5 text-base font-bold', {\n truncate: isTruncated,\n 'max-w-xs lg:max-w-3/5': hasSlides,\n })}\n >\n {title}\n </p>\n )}\n {children}\n </div>\n </div>\n );\n};\n\nexport default Alert;\n","import * as React from 'react';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport type { DialogBaseProps, DialogOptionalProps } from '@dx-ui/osc-dialog-v2';\n\ntype AlertDialog = {\n /**\n * text for the button\n */\n label: string;\n} & DialogBaseProps &\n DialogOptionalProps;\n\n/**\n * wraps the `<Dialog>` component and a button to be used in the alert\n */\nexport const AlertDialog: React.FC<React.PropsWithChildren<AlertDialog>> = ({\n ariaLabel,\n label,\n children,\n title,\n hasChildrenWithTitle,\n ...rest\n}) => {\n const [open, setOpen] = React.useState(false);\n\n const commonProps = {\n ...rest,\n isOpen: open,\n onDismiss: () => setOpen(!open),\n dialogTrigger: (\n <button className=\"btn btn-primary-link\" onClick={() => setOpen(true)} type=\"button\">\n {label}\n </button>\n ),\n };\n\n return title ? (\n <Dialog {...commonProps} title={title} hasChildrenWithTitle={hasChildrenWithTitle}>\n {children}\n </Dialog>\n ) : ariaLabel ? (\n <Dialog {...commonProps} ariaLabel={ariaLabel} hasChildrenWithTitle={hasChildrenWithTitle}>\n {children}\n </Dialog>\n ) : null;\n};\n\nexport default AlertDialog;\n","import type * as React from 'react';\nimport { useCycle } from '@dx-ui/osc-cycle';\nimport type { Alerts } from './alerts';\n\nconst AlertsContent: React.FC<React.PropsWithChildren<Alerts>> = ({ children }) => {\n const { cycleId } = useCycle();\n\n return (\n <div id={cycleId} aria-live=\"polite\" className=\"w-full\">\n {children}\n </div>\n );\n};\n\nexport { AlertsContent };\nexport default AlertsContent;\n","import type * as React from 'react';\nimport { useCycle } from '@dx-ui/osc-cycle';\nimport { Pagination } from '@dx-ui/osc-pagination';\nimport type { Alerts } from './alerts';\n\nconst AlertsControls: React.FC<React.PropsWithChildren<Alerts>> = ({\n label = 'Page',\n hideLabel = true,\n loop,\n}) => {\n const { hasSlides, cycleId, active, total, onNextClick, onPreviousClick } = useCycle();\n\n return hasSlides ? (\n <div className=\"pointer-events-none absolute bottom-0 right-0 pb-1 md:inset-0 md:pb-0\">\n <div className=\"mx-auto flex size-full max-w-screen-2xl items-center justify-end px-4\">\n <Pagination\n controls={cycleId}\n label={label}\n hideLabel={hideLabel}\n current={active}\n total={total}\n onNextClick={onNextClick}\n onPreviousClick={onPreviousClick}\n loop={loop}\n />\n </div>\n </div>\n ) : null;\n};\nexport { AlertsControls };\nexport default AlertsControls;\n","import * as React from 'react';\nimport type { Pagination } from '@dx-ui/osc-pagination';\nimport { Alert } from './alert';\nimport { AlertsContent } from './alerts.content';\nimport { AlertsControls } from './alerts.controls';\nimport { Cycle, type CycleProps } from '@dx-ui/osc-cycle';\n\ntype Alerts = Pick<CycleProps, 'onChangeIndex'> &\n Pick<Pagination, 'label' | 'loop' | 'hideLabel' | 'current'> &\n React.HTMLAttributes<HTMLDivElement>;\n\nconst Alerts: React.FC<React.PropsWithChildren<Alerts>> = ({\n label,\n hideLabel,\n loop,\n children,\n current,\n onChangeIndex,\n ...rest\n}) => {\n const validSlides = React.Children.map(\n children,\n (child) => React.isValidElement(child) && child.type === Alert && child\n )?.filter(Boolean);\n\n const slides = React.Children.map(\n validSlides,\n (child, index) =>\n React.isValidElement(child) &&\n React.cloneElement<Alert>(child as React.ReactElement<React.ComponentProps<typeof Alert>>, {\n index,\n })\n );\n const total = React.Children.count(slides);\n\n return (\n <Cycle current={current} total={total} onChangeIndex={onChangeIndex}>\n <AlertsContent {...rest}>{slides}</AlertsContent>\n <AlertsControls label={label} hideLabel={hideLabel} loop={loop} />\n </Cycle>\n );\n};\n\nexport { Alerts };\nexport default Alerts;\n","export * from './alert';\nexport * from './alert.dialog';\nexport * from './alerts';\nexport * from './alerts.content';\nexport * from './alerts.controls';\n","export * from './lib';\n","import type * as React from 'react';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\nimport type { IconProps } from '@dx-ui/osc-icon';\n\nexport type BannerNotificationProps = {\n /** Content to be displayed in banner notification. */\n children: React.ReactNode;\n /** The status to be use. */\n status: 'error' | 'success' | 'normal';\n customIcon?: IconProps;\n} & React.HTMLAttributes<HTMLDivElement>;\n\nconst STATUS_ROLE_MAPPER = Object.freeze({\n error: 'assertive',\n success: 'polite',\n normal: 'polite',\n});\n\n/**\n * Displays a banner notification message with an icon.\n */\nexport const BannerNotification = ({\n status,\n children,\n className,\n customIcon,\n ...rest\n}: BannerNotificationProps) => {\n return (\n <div\n className={cx(\n 'flex w-full items-center gap-x-2 p-4 sm:px-6',\n {\n 'bg-danger-alt text-danger': status === 'error',\n 'bg-success-alt text-success': status === 'success',\n 'bg-bg-alt text-bg-inverse': status === 'normal',\n },\n className\n )}\n aria-live={STATUS_ROLE_MAPPER[status]}\n aria-atomic={true}\n data-testid=\"bannerNotification\"\n {...rest}\n >\n {customIcon ? (\n <Icon {...customIcon} />\n ) : (\n <>\n {status === 'error' && <Icon name=\"close-circle\" variant=\"solid\" />}\n {status === 'success' && <Icon name=\"check-circle\" variant=\"solid\" />}\n </>\n )}\n {children}\n </div>\n );\n};\n","export * from './lib/banner-notification';\n","import * as React from 'react';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\n\nexport type ControlBackProps = {\n /** used for screen readers and other assistive devices */\n label: string;\n /** the size of the control */\n size?: React.ComponentProps<typeof Icon>['size'];\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\n/**\n * A simple button to be used any time you need an interaction to go back. like for pagination.\n */\nexport const ControlBack = React.forwardRef<HTMLButtonElement, ControlBackProps>(\n ({ className, disabled, label, size = 'md', ...rest }, forwardedRef) => {\n return (\n <button\n ref={forwardedRef}\n type=\"button\"\n className={cx('btn btn-primary-text btn-lg text-current rtl:-scale-x-100', className)}\n disabled={disabled}\n {...rest}\n >\n <span className=\"sr-only\">{label}</span>\n <Icon name=\"arrowhead-left\" size={size} />\n </button>\n );\n }\n);\n\nControlBack.displayName = 'ControlBack';\n\nexport default ControlBack;\n","import * as React from 'react';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\n\nexport type ControlCloseProps = {\n /** used for screen readers and other assistive devices */\n label: string;\n /** the size of the control */\n size?: React.ComponentProps<typeof Icon>['size'];\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\n/**\n * A simple button to be used any time you need an interaction to close something. like a popup.\n */\nexport const ControlClose = React.forwardRef<HTMLButtonElement, ControlCloseProps>(\n ({ className, label, disabled, size = 'md', ...rest }, forwardedRef) => (\n <button\n ref={forwardedRef}\n type=\"button\"\n className={cx('btn btn-primary-text btn-lg', className)}\n disabled={disabled}\n {...rest}\n >\n <span className=\"sr-only\">{label}</span>\n <Icon name=\"close\" size={size} />\n </button>\n )\n);\n\nControlClose.displayName = 'ControlClose';\n\nexport default ControlClose;\n","import * as React from 'react';\nimport cx from 'classnames';\nimport Icon from '@dx-ui/osc-icon';\n\nexport type ControlNextProps = {\n /** used for screen readers and other assistive devices */\n label: string;\n /** the size of the control */\n size?: React.ComponentProps<typeof Icon>['size'];\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\n/**\n * A simple button to be used any time you need an interaction to go forward. like for pagination.\n */\nexport const ControlNext = React.forwardRef<HTMLButtonElement, ControlNextProps>(\n ({ className, disabled, label, size = 'md', ...rest }, forwardedRef) => {\n return (\n <button\n ref={forwardedRef}\n type=\"button\"\n className={cx('btn btn-primary-text btn-lg text-current rtl:-scale-x-100', className)}\n disabled={disabled}\n {...rest}\n >\n <span className=\"sr-only\">{label}</span>\n <Icon name=\"arrowhead-right\" size={size} />\n </button>\n );\n }\n);\n\nControlNext.displayName = 'ControlNext';\n\nexport default ControlNext;\n","export * from './lib/control-back';\nexport * from './lib/control-close';\nexport * from './lib/control-next';\n","import { createContext, useContext } from 'react';\n\ntype CycleContext = {\n active: number;\n cycleId: string;\n total: number;\n hasSlides: boolean;\n onPreviousClick: () => void;\n onNextClick: () => void;\n setActive: (value: number) => void;\n};\nconst CycleContext = createContext<CycleContext>({} as CycleContext);\n\nexport const useCycle = () => {\n const context = useContext(CycleContext);\n if (context === undefined) {\n throw new Error('useCycle must be used within a Cycle Component parent');\n }\n return context;\n};\n\nexport { CycleContext };\nexport default CycleContext;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { CycleContext } from './cycle.context';\n\nexport type CycleProps = {\n total: number;\n onChangeIndex?: (newIndex: number, method?: 'previous' | 'next') => void;\n current?: number;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Adds controls for multiple slide items and `useCycle()` for all logic\n */\nexport const Cycle: React.FC<React.PropsWithChildren<CycleProps>> = ({\n current = 0,\n total,\n children,\n className,\n onChangeIndex,\n id,\n ...rest\n}) => {\n const fallbackId = React.useId();\n const cycleId = id ?? `cycle-${fallbackId}`;\n const [active, setActive] = React.useState(current);\n const hasSlides = total > 1;\n const onPreviousClick = React.useCallback(() => {\n const index = active - 1 < 0 ? total - 1 : active - 1;\n setActive(index);\n onChangeIndex && onChangeIndex(index, 'previous');\n }, [active, total, onChangeIndex]);\n\n const onNextClick = React.useCallback(() => {\n const index = active + 1 >= total ? 0 : active + 1;\n setActive(index);\n onChangeIndex && onChangeIndex(index, 'next');\n }, [setActive, onChangeIndex, active, total]);\n\n const onSetActive = React.useCallback(\n (index: number) => {\n setActive(index);\n onChangeIndex && onChangeIndex(index);\n },\n [setActive, onChangeIndex]\n );\n\n return (\n <CycleContext.Provider\n value={{\n active,\n cycleId,\n hasSlides,\n total,\n onNextClick,\n onPreviousClick,\n setActive: onSetActive,\n }}\n >\n <section className={cx('relative w-full overflow-hidden', className)} {...rest}>\n {children}\n </section>\n </CycleContext.Provider>\n );\n};\n\nexport default Cycle;\n","export * from './lib/cycle';\nexport * from './lib/cycle.context';\n","import Icon from '@dx-ui/osc-icon';\nimport { useIsClient } from 'usehooks-ts';\nimport { isKanji, useLocale, useDateFormat } from '@dx-ui/utilities-dates';\nimport cx from 'classnames';\nimport type * as React from 'react';\n\ntype DatePickerDatesButton = {\n children?: React.ReactNode;\n className?: HTMLDivElement['className'];\n day: Date;\n dayTextColorClassName?: string;\n language: string;\n isReducedSize?: boolean;\n};\n\nconst DatePickerDatesButton: React.FC<React.PropsWithChildren<DatePickerDatesButton>> = ({\n className,\n children,\n day,\n dayTextColorClassName = 'text-primary',\n language,\n isReducedSize,\n}) => {\n const locale = useLocale({ language });\n const kanji = isKanji(locale) as boolean;\n const options = kanji ? { weekday: 'long' as Intl.DateTimeFormatOptions['weekday'] } : {};\n const dateFormatParts = useDateFormat({ date: day, locale, options });\n const isClient = useIsClient();\n\n const reducedSubTextSize = {\n 'text-xs': isReducedSize,\n 'text-base': !isReducedSize,\n };\n\n if (!day) {\n return (\n <span className=\"flex w-36 items-center justify-center whitespace-nowrap sm:w-auto sm:ps-2 sm:first-of-type:ps-0\">\n <Icon name=\"calendar\" size=\"xl\" variant=\"solid\" className=\"text-primary\" />\n {children ? (\n <span data-osc-product=\"date-picker-buttons\" className=\"ms-2 text-sm leading-tight\">\n {children}\n </span>\n ) : null}\n </span>\n );\n }\n\n if (!isClient) {\n return (\n <span className=\"flex w-36 items-center justify-center whitespace-nowrap sm:w-auto sm:ps-2 sm:first-of-type:ps-0\">\n <span className={cx('bg-bg-alt w-20 rounded', kanji ? 'h-12' : 'h-11')} />\n </span>\n );\n }\n\n return kanji ? (\n <span\n aria-hidden\n className={cx(\n 'flex h-12 items-center whitespace-nowrap sm:w-auto sm:ps-2 sm:first-of-type:ps-0',\n className\n )}\n >\n <span className=\"row-span-1 row-start-2\">\n <span className={cx('block uppercase tabular-nums leading-none', reducedSubTextSize)}>\n {dateFormatParts.month.numeric}\n {dateFormatParts.month.text}\n </span>\n </span>\n <span className=\"row-span-4 row-start-1\">\n <span\n className={cx('pe-1 font-bold tabular-nums leading-none', dayTextColorClassName, {\n 'text-3xl md:text-2xl lg:text-3xl': isReducedSize,\n 'text-4xl md:text-3xl lg:text-4xl': !isReducedSize,\n })}\n >\n {dateFormatParts.day.numeric}\n <span className=\"uppercase tabular-nums\">{dateFormatParts.day.text}</span>\n </span>\n <span className={cx('block uppercase tabular-nums leading-none', reducedSubTextSize)}>\n {dateFormatParts.weekday}\n </span>\n </span>\n </span>\n ) : (\n <span\n aria-hidden\n className={cx(\n 'flex w-32 items-end justify-center sm:w-auto sm:ps-2 sm:first-of-type:ps-0',\n className,\n {\n 'h-8': isReducedSize,\n 'h-11': !isReducedSize,\n }\n )}\n >\n <span\n className={cx(\n 'brand-ey:font-normal brand-hi-refresh:font-headline brand-hi-refresh:font-normal brand-hi-refresh:text-primary brand-lx:font-serif brand-lx:text-brand brand-ou:font-headline brand-ou:font-normal pe-1 font-bold tabular-nums leading-[0.9]',\n dayTextColorClassName,\n {\n 'text-4xl': isReducedSize,\n 'text-5xl': !isReducedSize,\n }\n )}\n >\n {dateFormatParts.day.numeric}\n </span>\n <span className=\"flex flex-col\">\n <span\n className={cx(\n 'brand-ey:font-normal brand-lx:font-semibold brand-ou:text-primary block font-bold uppercase tabular-nums leading-none',\n reducedSubTextSize\n )}\n >\n {dateFormatParts.month.text}\n </span>\n <span\n className={cx('brand-ou:text-primary block uppercase tabular-nums', reducedSubTextSize)}\n >\n {dateFormatParts.weekday}\n </span>\n </span>\n </span>\n );\n};\n\nexport { DatePickerDatesButton };\nexport default DatePickerDatesButton;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameMonth} function options.\n */\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport function isSameMonth(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return (\n laterDate_.getFullYear() === earlierDate_.getFullYear() &&\n laterDate_.getMonth() === earlierDate_.getMonth()\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameMonth;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n return +toDate(date) > +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n return +toDate(date) < +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount, options) {\n return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link isFirstDayOfMonth} function options.\n */\n\n/**\n * @name isFirstDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the first day of a month?\n *\n * @description\n * Is the given date the first day of a month?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is the first day of a month\n *\n * @example\n * // Is 1 September 2014 the first day of a month?\n * const result = isFirstDayOfMonth(new Date(2014, 8, 1))\n * //=> true\n */\nexport function isFirstDayOfMonth(date, options) {\n return toDate(date, options?.in).getDate() === 1;\n}\n\n// Fallback for modularized imports:\nexport default isFirstDayOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link isWithinInterval} function options.\n */\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param date - The date to check\n * @param interval - The interval to check\n * @param options - An object with options\n *\n * @returns The date is within the interval\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * // => true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * // => false\n *\n * @example\n * // For date equal to the interval start:\n * isWithinInterval(date, { start, end: date })\n * // => true\n *\n * @example\n * // For date equal to the interval end:\n * isWithinInterval(date, { start: date, end })\n * // => true\n */\nexport function isWithinInterval(date, interval, options) {\n const time = +toDate(date, options?.in);\n const [startTime, endTime] = [\n +toDate(interval.start, options?.in),\n +toDate(interval.end, options?.in),\n ].sort((a, b) => a - b);\n\n return time >= startTime && time <= endTime;\n}\n\n// Fallback for modularized imports:\nexport default isWithinInterval;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link lastDayOfWeek} function options.\n */\n\n/**\n * @name lastDayOfWeek\n * @category Week Helpers\n * @summary Return the last day of a week for the given date.\n *\n * @description\n * Return the last day of a week for the given date.\n * The result will be in the local timezone unless a context is specified.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The last day of a week\n */\nexport function lastDayOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setHours(0, 0, 0, 0);\n _date.setDate(_date.getDate() + diff);\n\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default lastDayOfWeek;\n","import * as React from 'react';\nimport cx from 'classnames';\n\ntype CalendarDay = {\n /**\n * is a date within the selected range\n */\n inRange?: boolean;\n /**\n * applies UI to denote that it is the current date\n */\n isToday?: boolean;\n /**\n * is either the `day` or `endDay`\n */\n selected?: boolean;\n /**\n * applies UI for a highlighted date\n */\n highlighted?: boolean;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\n/**\n * Displays a calendar day as a button\n */\nconst CalendarDay = React.forwardRef<HTMLButtonElement, CalendarDay>(\n ({ className, inRange, isToday, selected, highlighted, ...rest }, forwardedRef) => (\n <button\n className={cx(\n 'disabled:text-text-disabled border-bg focus:border-primary hover:border-primary block h-[37px] w-full min-w-[37px] appearance-none border text-center uppercase ring-inset focus:!shadow-none disabled:cursor-default',\n 'brand-hi-refresh:hover:border-none brand-hi-refresh:hover:bg-primary-alt brand-hi-refresh:hover:text-text-inverse',\n {\n 'bg-bg-alt text-text': !selected && inRange,\n 'bg-bg-alt': !selected && !inRange && isToday,\n 'bg-primary text-text-inverse focus:ring-bg focus:border-primary hover:border-primary hover:ring-bg hover:ring-1 focus:ring-1':\n selected,\n 'font-bold': isToday,\n 'ring-primary ring-1': highlighted,\n className,\n }\n )}\n {...rest}\n type=\"button\"\n ref={forwardedRef}\n />\n )\n);\n\nCalendarDay.displayName = 'CalendarDay';\n\nexport { CalendarDay };\nexport default CalendarDay;\n","import {\n getDaysSplitByWeeks,\n useDaysOfWeek,\n isKanji,\n useDateFormat,\n DEFAULT_LANGUAGE,\n isVietnamese,\n} from '@dx-ui/utilities-dates';\nimport cx from 'classnames';\nimport {\n addDays,\n format,\n isAfter,\n isBefore,\n isFirstDayOfMonth,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n lastDayOfWeek,\n startOfDay,\n startOfMonth,\n startOfWeek,\n subDays,\n} from 'date-fns';\nimport * as React from 'react';\nimport { CalendarDay } from './calendar.day';\n\ntype CalendarMonth = {\n /**\n * selected day or start day when a range is allowed\n */\n day?: Date;\n /**\n * selected end day when a range is allowed\n */\n endDay?: Date;\n /**\n * furthest date available to book\n */\n maxDays?: number;\n /**\n * allow ability to select previous months\n */\n allowPrevious?: boolean;\n /**\n * month to display, should be passed as the first day of the month, can use `startOfMonth(someDate)` from the date-fns lib\n */\n month?: Date;\n /**\n * locale for i18n\n */\n locale: Intl.Locale;\n /**\n * callback when a day is selected\n */\n onDayChange: (day?: Date) => void;\n focusedDay?: number;\n onFocusedDayChange: (d: number, newD?: number) => void;\n isVisibleMonth?: boolean;\n dayLabel?: (d: Date, isStartDay?: boolean) => string;\n /**\n * marked as current date, can be set to any date\n */\n today?: Date;\n /**\n * If using a string, it must be in the `yyyy-MM-dd` format\n */\n highlightedDates?: Array<Date | string>;\n /**\n * If using a string, it must be in the `yyyy-MM-dd` format\n */\n enabledDates?: Array<Date | string>;\n} & React.HTMLAttributes<HTMLDivElement>;\n\nconst FORMAT = 'yyyy-MM-dd';\n\n/**\n * displays a calendar month\n */\nconst CalendarMonth = React.forwardRef<HTMLDivElement, CalendarMonth>(\n (\n {\n day,\n endDay,\n maxDays = 730,\n allowPrevious,\n month: passedMonth,\n onDayChange,\n locale,\n className,\n onFocusedDayChange,\n isVisibleMonth,\n dayLabel,\n today = new Date(),\n highlightedDates: passedHighlightedDates = [],\n enabledDates: passedEnabledDates = [],\n },\n forwardedRef\n ) => {\n const month = passedMonth || startOfMonth(today);\n\n const dateToString = (d: Date | string) => {\n const isDate = d instanceof Date;\n const parsedDate = isDate ? ['', '', ''] : d.split('-');\n const date: Date = isDate\n ? d\n : new Date(\n parseInt(parsedDate[0] ?? '', 10),\n parseInt(parsedDate[1] ?? '', 10) - 1,\n parseInt(parsedDate[2] ?? '', 10)\n );\n return format(date, FORMAT);\n };\n\n const highlightedDates = React.useMemo(\n () => passedHighlightedDates.map(dateToString),\n [passedHighlightedDates]\n );\n\n const enabledDates = React.useMemo(\n () => passedEnabledDates.map(dateToString),\n [passedEnabledDates]\n );\n\n const weeks: Date[][] = React.useMemo(\n () => getDaysSplitByWeeks({ date: month, locale }),\n [month, locale]\n );\n const week = useDaysOfWeek({ locale });\n const formattedDate = useDateFormat({\n date: month,\n locale,\n options: { monthName: 'long' },\n });\n const yearText = isVietnamese(locale) ? 'năm ' : '';\n const header = isKanji(locale)\n ? `${formattedDate.year.numeric}${formattedDate.year.text} ${formattedDate.month.numeric}${formattedDate.month.text}`\n : `${formattedDate.month.text} ${yearText}${formattedDate.year.numeric}`;\n const id = React.useId();\n const monthId = `calendar-month-${id}`;\n\n return (\n <div ref={forwardedRef} className={cx('w-full max-w-6xl select-none', className)}>\n <h2\n className=\"mb-2 block text-center text-lg font-extrabold\"\n id={monthId}\n data-testid=\"calendar-month-header\"\n aria-live=\"polite\"\n >\n {header}\n </h2>\n <table role=\"grid\" className=\"w-full\" aria-labelledby={monthId}>\n <thead>\n <tr>\n {week.map((weekday) => (\n <th scope=\"col\" key={weekday} className=\"text-center text-xs uppercase\">\n <span aria-hidden>{weekday}</span>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {weeks.map((w, i) => (\n <tr key={w[0]?.getTime() ?? i}>\n {w.map((d) => {\n if (d) {\n const selected = (day && isSameDay(d, day)) || (endDay && isSameDay(d, endDay));\n const tab0 =\n selected || isSameDay(d, today) || (isVisibleMonth && isFirstDayOfMonth(d));\n const disabled = enabledDates.length\n ? !enabledDates.includes(format(d, FORMAT))\n : allowPrevious\n ? false\n : isBefore(d, startOfDay(today)) || isAfter(d, addDays(today, maxDays));\n const inRange =\n day && endDay ? isWithinInterval(d, { start: day, end: endDay }) : false;\n const highlighted = highlightedDates.includes(format(d, FORMAT));\n\n const selectDay = () => onDayChange(d);\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n let flag = false;\n switch (e.key) {\n case ' ':\n case 'Enter':\n selectDay();\n flag = true;\n break;\n case 'ArrowRight':\n onFocusedDayChange(d.getTime(), addDays(d, 1).getTime());\n break;\n case 'ArrowLeft':\n onFocusedDayChange(d.getTime(), subDays(d, 1).getTime());\n flag = true;\n break;\n case 'ArrowDown':\n onFocusedDayChange(d.getTime(), addDays(d, 7).getTime());\n flag = true;\n break;\n case 'ArrowUp':\n onFocusedDayChange(d.getTime(), subDays(d, 7).getTime());\n flag = true;\n break;\n case 'Home':\n onFocusedDayChange(d.getTime(), startOfWeek(d).getTime());\n flag = true;\n break;\n case 'End':\n onFocusedDayChange(d.getTime(), lastDayOfWeek(d).getTime());\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n return (\n <td key={d.getTime()} className=\"p-0\">\n {isSameMonth(d, month) ? (\n <CalendarDay\n id={`day-${d.getTime()}`}\n disabled={disabled}\n selected={selected}\n inRange={inRange}\n highlighted={highlighted}\n isToday={isSameDay(d, today)}\n onKeyDown={onKeyDown}\n onClick={(evt: React.MouseEvent<HTMLButtonElement>) => {\n if (evt.clientX && evt.clientY) {\n selectDay();\n }\n }}\n onFocus={() => onFocusedDayChange(d.getTime())}\n tabIndex={tab0 ? 0 : -1}\n >\n <span className=\"sr-only\">{dayLabel ? dayLabel(d) : ''}</span>\n <span aria-hidden>\n {d.toLocaleDateString(DEFAULT_LANGUAGE, {\n day: 'numeric',\n })}\n </span>\n </CalendarDay>\n ) : null}\n </td>\n );\n }\n return null;\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n }\n);\n\nCalendarMonth.displayName = 'CalendarMonth';\n\nexport { CalendarMonth };\nexport default CalendarMonth;\n","import {\n addMonths,\n format,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n startOfMonth,\n subMonths,\n addDays,\n} from 'date-fns';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { ControlBack, ControlNext } from '@dx-ui/osc-controls';\nimport type { CalendarMonth as CalendarMonthType } from './calendar.month';\nimport { CalendarMonth } from './calendar.month';\nimport { sendReward } from '@dx-ui/framework-conductrics';\n\nconst INPUT_FORMAT = 'yyyy-MM-dd';\n\nexport type Calendar = {\n /**\n * Used for giving unique ids based on the form in which it is used\n */\n formId?: string;\n /**\n * When used in a form this will be the key of the `day` i.e. `arrivalDate`\n */\n dayId?: string;\n /**\n * When used in a form this will be the key of the `endDay` i.e. `departureDate`\n */\n endDayId?: string;\n /**\n * Whether or not to allow selecting the same day for both `day` and `endDay`\n */\n allowSameDay?: boolean;\n onEndDayChange?: (day?: Date) => void;\n /**\n * the a11y instructions for the calendar\n */\n instructions?: string;\n /**\n * used in a live region to possibly give context to the selected date(s)\n */\n message?: string;\n /** to display the content of a month tab selector component before the calendar dates view */\n MonthDateSelectorComponent?: ({\n selectedCalendarDate,\n onMonthUpdate,\n }: {\n selectedCalendarDate: Date;\n onMonthUpdate: (d: Date) => void;\n }) => React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement> &\n Pick<\n CalendarMonthType,\n | 'day'\n | 'endDay'\n | 'onDayChange'\n | 'maxDays'\n | 'locale'\n | 'dayLabel'\n | 'allowPrevious'\n | 'today'\n | 'highlightedDates'\n | 'enabledDates'\n >;\n\n/**\n * A component to display calendars for selection of a date or date range. can be used in conjunction with a popup or inline.\n */\nexport const Calendar: React.FC<React.PropsWithChildren<Calendar>> = ({\n allowSameDay,\n allowPrevious,\n children,\n locale,\n day,\n endDay,\n maxDays,\n onDayChange,\n onEndDayChange,\n dayLabel,\n instructions,\n message,\n formId,\n dayId,\n endDayId,\n highlightedDates,\n enabledDates,\n today = new Date(),\n MonthDateSelectorComponent,\n ...rest\n}) => {\n const ref = React.useRef<HTMLDivElement>(null);\n const month0Ref = React.useRef<HTMLDivElement>(null);\n const month1Ref = React.useRef<HTMLDivElement>(null);\n const [focusedDay, setFocusedDay] = React.useState<number>();\n const previousMonthRef = React.useRef<HTMLButtonElement>(null);\n const nextMonthRef = React.useRef<HTMLButtonElement>(null);\n const [month, setMonth] = React.useState(startOfMonth(day || today));\n const [t] = useTranslation('osc-calendar');\n const nextDay = day ? addDays(day, 1) : day;\n const prevDisabled = allowPrevious ? false : isSameMonth(month, today);\n const selectedDateRef = React.useRef(day || today);\n\n const onChangeDay = (d?: Date) => {\n if (onEndDayChange && d) {\n if (day && !endDay) {\n if (allowSameDay) {\n /**\n * Handle cases where `allowSameDay` is true\n */\n if (isSameDay(d, day) || isAfter(d, day)) {\n onEndDayChange(d);\n } else if (isBefore(d, day)) {\n onDayChange(d);\n }\n } else {\n /**\n * Handle cases where `allowSameDay` is false\n */\n // eslint-disable-next-line no-lonely-if\n if (isAfter(d, day)) {\n onEndDayChange(d);\n } else if (isBefore(d, day)) {\n onDayChange(d);\n }\n }\n } else {\n onDayChange(d);\n onEndDayChange(undefined);\n }\n } else {\n onDayChange(d);\n }\n if (MonthDateSelectorComponent && d) {\n selectedDateRef.current = d;\n }\n sendReward('g-date-selector-interaction-total');\n };\n\n const getDayLabel = (d: Date) => {\n if (dayLabel) {\n if (onEndDayChange && d) {\n if (day && !endDay) {\n if (allowSameDay) {\n if (isSameDay(d, day) || isAfter(d, day)) {\n return dayLabel(d, false);\n }\n if (isBefore(d, day)) {\n return dayLabel(d, true);\n }\n } else {\n if (isAfter(d, day)) {\n return dayLabel(d, false);\n }\n if (isBefore(d, day)) {\n return dayLabel(d, true);\n }\n }\n } else {\n return dayLabel(d, true);\n }\n } else {\n return dayLabel(d, true);\n }\n return dayLabel(d);\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return d.toLocaleDateString(locale, { dateStyle: 'full' });\n };\n\n const onMonthChange = (d: Date) => {\n setMonth(d);\n };\n\n const onFocusedDayChange = (d: number, newD?: number, monthNumber?: number) => {\n if (newD) {\n setFocusedDay(newD);\n const monthInFocus = monthNumber === 0 ? month : addMonths(month, 1);\n if (!isSameMonth(monthInFocus, newD)) {\n if (newD > d) {\n if (monthNumber === 0 && !!month1Ref.current?.offsetParent) return;\n onMonthChange(addMonths(month, 1));\n }\n if (newD < d && monthNumber === 0) {\n onMonthChange(subMonths(month, 1));\n }\n }\n }\n };\n\n React.useEffect(() => {\n if (ref.current) {\n requestAnimationFrame(() => {\n const element = ref.current?.querySelector<HTMLButtonElement>(`#day-${focusedDay}`);\n if (element) {\n element.focus();\n }\n });\n }\n }, [focusedDay, ref]);\n\n return (\n <div ref={ref} className=\"w-full max-w-6xl\" data-testid=\"calendar-container\">\n {!!day && (\n <>\n <input\n type=\"hidden\"\n name={dayId}\n id={`${formId}-${dayId}`}\n value={day && format(day, INPUT_FORMAT)}\n />\n <input\n type=\"hidden\"\n name={endDayId}\n id={`${formId}-${endDayId}`}\n value={\n endDay ? format(endDay, INPUT_FORMAT) : day && format(addDays(day, 1), INPUT_FORMAT)\n }\n />\n </>\n )}\n {MonthDateSelectorComponent ? (\n <MonthDateSelectorComponent\n selectedCalendarDate={selectedDateRef.current}\n onMonthUpdate={onMonthChange}\n />\n ) : null}\n <div\n className={cx('flex justify-between', {\n hidden: !!MonthDateSelectorComponent,\n })}\n >\n <ControlBack\n onClick={() => onMonthChange(subMonths(month, 1))}\n ref={previousMonthRef}\n disabled={prevDisabled}\n label={t('previousMonth')}\n />\n <ControlNext\n onClick={() => onMonthChange(addMonths(month, 1))}\n ref={nextMonthRef}\n label={t('nextMonth')}\n />\n </div>\n\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div className=\"max-w-6xl\" role=\"application\" aria-label={instructions} {...rest}>\n <div aria-live=\"polite\" className=\"sr-only\">\n {message}\n </div>\n <div className=\"flex w-full ltr:space-x-6\">\n <CalendarMonth\n ref={month0Ref}\n onDayChange={onChangeDay}\n locale={locale}\n day={day}\n endDay={endDay || nextDay}\n month={month}\n maxDays={maxDays}\n focusedDay={focusedDay}\n onFocusedDayChange={(d, newD) => onFocusedDayChange(d, newD, 0)}\n isVisibleMonth\n dayLabel={getDayLabel}\n allowPrevious={allowPrevious}\n today={today}\n highlightedDates={highlightedDates}\n enabledDates={enabledDates}\n />\n <CalendarMonth\n ref={month1Ref}\n onDayChange={onChangeDay}\n locale={locale}\n day={day}\n endDay={endDay || nextDay}\n maxDays={maxDays}\n month={addMonths(month, 1)}\n className=\"hidden md:block\"\n focusedDay={focusedDay}\n onFocusedDayChange={(d, newD) => onFocusedDayChange(d, newD, 1)}\n dayLabel={getDayLabel}\n allowPrevious={allowPrevious}\n today={today}\n highlightedDates={highlightedDates}\n enabledDates={enabledDates}\n />\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Calendar;\n","export * from './lib/calendar';\nexport * from './lib/calendar.day';\nexport * from './lib/calendar.month';\n","import type { Calendar as CalendarType } from '@dx-ui/osc-calendar';\nimport { Calendar } from '@dx-ui/osc-calendar';\nimport { useLocale } from '@dx-ui/utilities-dates';\nimport { isBefore, addDays } from 'date-fns';\nimport { useTranslation } from 'next-i18next';\nimport { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n/**\n * Sub component containing calendar with shop form business logic applied\n * @returns JSX.Element\n */\n\nexport type DatePickerCalendarProps = {\n day?: Date;\n dayFieldName: string;\n endDay?: Date;\n endDayFieldName: string;\n /**\n * option to only search for single day stays\n */\n isDayUse?: boolean;\n language: string;\n} & Pick<\n CalendarType,\n | 'allowSameDay'\n | 'allowPrevious'\n | 'dayLabel'\n | 'maxDays'\n | 'enabledDates'\n | 'MonthDateSelectorComponent'\n>;\n\nexport const DatePickerCalendar = ({\n allowPrevious,\n allowSameDay,\n day,\n dayFieldName,\n dayLabel,\n isDayUse,\n endDay,\n endDayFieldName,\n enabledDates,\n language,\n maxDays,\n MonthDateSelectorComponent,\n}: DatePickerCalendarProps) => {\n const { t } = useTranslation('osc-date-picker');\n const [message, setMessage] = useState('');\n const { setValue } = useFormContext();\n const locale = useLocale({ language });\n const onDayChange = (d?: Date) => {\n if (d) {\n setValue(dayFieldName, d, { shouldDirty: true, shouldValidate: true });\n const departureDate = isDayUse ? d : endDay && isBefore(endDay, d) ? addDays(d, 1) : endDay;\n setValue(endDayFieldName, departureDate, { shouldDirty: true, shouldValidate: true });\n setMessage(\n t(isDayUse ? 'selectedDayUseMessage' : 'selectedDateMessage', {\n fromDate: d.toLocaleDateString(locale, { dateStyle: 'long' }),\n })\n );\n }\n };\n const onEndDayChange = (d?: Date) => {\n setValue(endDayFieldName, d, { shouldDirty: true, shouldValidate: true });\n if (d) {\n setMessage(\n t('selectedEndDateMessage', {\n fromDate: day?.toLocaleDateString(locale, {\n dateStyle: 'long',\n }),\n toDate: d.toLocaleDateString(locale, { dateStyle: 'long' }),\n })\n );\n }\n };\n\n return (\n <Calendar\n formId=\"date-picker-calendar\"\n dayId=\"arrivalDate\"\n endDayId=\"departureDate\"\n allowPrevious={allowPrevious}\n allowSameDay={allowSameDay}\n maxDays={maxDays}\n locale={locale}\n day={day}\n endDay={endDay}\n onDayChange={onDayChange}\n onEndDayChange={onEndDayChange}\n instructions={t('instructions')}\n message={message}\n enabledDates={enabledDates}\n dayLabel={dayLabel}\n MonthDateSelectorComponent={MonthDateSelectorComponent}\n />\n );\n};\n","import * as React from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { FormInput, FormLabel } from '@dx-ui/osc-form';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport type { DateFormat } from '@dx-ui/utilities-dates';\nimport { useLocale, useDateFormat } from '@dx-ui/utilities-dates';\nimport { addDays, startOfDay } from 'date-fns';\nimport { useTranslation } from 'next-i18next';\nimport DatePickerDatesButton from './date-picker.dates-button';\nimport type { DatePickerCalendarProps } from './date-picker.calendar';\nimport { DatePickerCalendar } from './date-picker.calendar';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { useIsClient } from 'usehooks-ts';\n\nexport type DatePickerProps = {\n dateFieldNamePrefix?: string;\n afterCalendarContent?: React.ReactNode;\n SearchDatesIndicator?: ({ day, endDay }: { day: Date; endDay: Date }) => React.ReactNode;\n /** Removes \"my dates are flexible\" input */\n hideFlexDates?: boolean;\n /** Options for \"When?\" and \"(Required)\" label */\n labelOptions?: {\n whenLabel: boolean;\n requiredDates?: boolean;\n };\n hasFlexDatesDisabled?: boolean;\n children?: (props: { day?: DateFormat; endDay?: DateFormat }) => React.ReactNode;\n isOpen?: boolean;\n /** Callback invoked on confirm/done */\n onConfirm?: () => void;\n /** Callback invoked on modal open */\n onOpen?: () => void;\n /** Callback invoked on cancel/dismiss */\n onDismiss?: () => void;\n /** Callback invoked on reset dates */\n onResetDates?: () => void;\n /**\n * whether or not to set the default day of today. set to `false` if dates are optional\n */\n hasTodayAsDefault?: boolean;\n /** Callback invoked on my flexible dates click */\n onFlexibleDates?: () => void;\n //NHCSEARCH-5363 Flex date verbiage MVT\n flexDatesLabel?: string;\n} & Omit<DatePickerCalendarProps, 'day' | 'dayFieldName' | 'endDay' | 'endDayFieldName'>;\n\nexport type DatesData = {\n flexDates: boolean;\n day?: Date;\n endDay?: Date;\n};\n\n/**\n * Use the `<DatePicker/>` component inside of the ShopForm in order to provide the OSC experience for\n * selecting arrival/departure dates. You can pass a custom button in as `children` and also use `renderProps`\n * to access the `day` and `endDay` for use in your custom button. The default button is `<DatePickerDatesButton/>`\n */\nexport const DatePicker = ({\n afterCalendarContent,\n MonthDateSelectorComponent,\n SearchDatesIndicator,\n allowPrevious,\n allowSameDay = true,\n hasFlexDatesDisabled = false,\n isDayUse = false,\n dateFieldNamePrefix = 'dates',\n hideFlexDates,\n labelOptions,\n language,\n maxDays = 730,\n hasTodayAsDefault = true,\n enabledDates = [],\n children,\n onConfirm,\n onFlexibleDates,\n onOpen,\n onDismiss,\n onResetDates,\n isOpen: openProp,\n //NHCSEARCH-5363 Flex date verbiage MVT\n flexDatesLabel,\n}: DatePickerProps) => {\n const { t } = useTranslation('osc-date-picker');\n const locale = useLocale({ language });\n const [open, setOpen] = React.useState(openProp);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const { setValue, reset, getValues } = useFormContext();\n const dayFieldName = `${dateFieldNamePrefix}.arrivalDate` as const;\n const endDayFieldName = `${dateFieldNamePrefix}.departureDate` as const;\n\n const day = useWatch({ name: dayFieldName }) as Date;\n const endDay = useWatch({ name: endDayFieldName }) as Date;\n\n const [initialValues, setInitialValues] = React.useState<{\n arrivalDate: Date;\n departureDate: Date;\n datesFlex: boolean;\n } | null>(null);\n\n const isDateOptional = !hasTodayAsDefault && !(day && endDay);\n React.useEffect(() => {\n if (!day && hasTodayAsDefault) {\n const dayDefault = startOfDay(new Date());\n const endDayDefault = isDayUse ? dayDefault : addDays(dayDefault, 1);\n\n setValue(dayFieldName, dayDefault, { shouldDirty: true });\n setValue(endDayFieldName, endDayDefault, { shouldDirty: true });\n }\n }, [day, dayFieldName, isDayUse, endDayFieldName, setValue, hasTodayAsDefault]);\n\n const dayLabel = day ? day.toLocaleDateString(locale, { dateStyle: 'long' }) : '';\n const endDayLabel = isDayUse\n ? dayLabel\n : endDay\n ? endDay.toLocaleDateString(locale, { dateStyle: 'long' })\n : '';\n\n const nextDay = day ? addDays(day, 1) : day;\n\n const formatDay = useDateFormat({ date: day, locale });\n const formatEndDay = useDateFormat({ date: endDay, locale });\n\n const openModal = () => {\n setOpen(true);\n setInitialValues(cloneDeep(getValues().dates));\n onOpen?.();\n };\n\n const dismissAndResetToOriginalDates = () => {\n setOpen(false);\n reset({ ...getValues(), dates: { ...initialValues } }, { keepDefaultValues: true });\n onDismiss?.();\n };\n const confirmAndCloseModal = () => {\n setOpen(false);\n //if user selects an arrivalDate but not departure set departureDate to arrivalDate + 1 day. TODO Revisit this once we revise these elements to have update button (or apply btn)\n if (day && !endDay) {\n setValue(endDayFieldName, isDayUse ? day : addDays(day, 1), {\n shouldDirty: true,\n shouldValidate: true,\n });\n }\n onConfirm?.();\n };\n\n // MVT - Display \"Reset Dates\" link\n const [resetDateA11y, setResetDateA11y] = React.useState(false);\n const resetDates = () => {\n setResetDateA11y(true);\n reset(\n {\n ...getValues(),\n dates: { arrivalDate: null, departureDate: null, datesFlex: false },\n },\n { keepDefaultValues: true }\n );\n setTimeout(() => setResetDateA11y(false), 500);\n if (onResetDates) onResetDates();\n };\n const resetButtonCTA = {\n isEnabled: !hasTodayAsDefault,\n label: t('resetDates'),\n resetA11Y: resetDateA11y ? t('allSelectionsReset') : undefined,\n };\n\n const isClient = useIsClient();\n\n return (\n <div className=\"w-full sm:w-auto\">\n {labelOptions?.whenLabel || isDateOptional ? (\n <FormLabel\n label={t('when')}\n required={labelOptions?.requiredDates}\n className=\"brand-ey:font-normal brand-lx:font-semibold flex pb-0.5 max-sm:w-1/4 max-sm:items-start max-sm:justify-start lg:pb-1.5\"\n data-osc-product=\"search-dates-label\"\n />\n ) : null}\n <ActionDialog\n contentDataAttribute=\"data-osc-date-picker\"\n className=\"h-auto\"\n title={day ? t('header') : t('addDates')}\n isOpen={open}\n onDismiss={dismissAndResetToOriginalDates}\n onCancel={dismissAndResetToOriginalDates}\n size=\"2xl\"\n onConfirm={confirmAndCloseModal}\n onReset={resetDates}\n buttonOptions={{ reset: resetButtonCTA }}\n dialogTrigger={\n <button\n className=\"divide-border brand-lx:divide-primary flex w-full appearance-none justify-center divide-x rounded text-start sm:w-auto sm:gap-2 lg:gap-3 rtl:divide-x-reverse\"\n data-osc-product=\"shop-form-dates\"\n id=\"shop-form-dates\"\n ref={buttonRef}\n type=\"button\"\n aria-label={`${t('checkin')} ${dayLabel ? dayLabel : t('addDates')}, ${t('checkout')} ${\n endDayLabel ? endDayLabel : t('addDates')\n }`}\n onClick={openModal}\n data-testid=\"search-dates-button\"\n // This check is necessary to fix a hydration issue\n // See for reference: https://gitlab.svc-m.hhc.hilton.com/pac/hiw/dx-ui/-/merge_requests/4994\n disabled={!isClient}\n >\n {children ? (\n children({ day: formatDay, endDay: formatEndDay })\n ) : (\n <>\n <DatePickerDatesButton day={day} language={language}>\n <span className=\"brand-ou:text-primary block font-bold\">{t('checkin')}</span>\n <span className=\"brand-ou:text-primary block text-xs\">{t('addDates')}</span>\n </DatePickerDatesButton>\n {!isDayUse ? (\n <DatePickerDatesButton day={endDay || nextDay} language={language}>\n <span className=\"brand-ou:text-primary block font-bold\">{t('checkout')}</span>\n <span className=\"brand-ou:text-primary block text-xs\">{t('addDates')}</span>\n </DatePickerDatesButton>\n ) : null}\n </>\n )}\n </button>\n }\n >\n <div\n data-osc-product=\"search-dates\"\n className=\"border-border mx-2 border-b border-solid py-2 \"\n >\n <DatePickerCalendar\n allowPrevious={allowPrevious}\n allowSameDay={allowSameDay}\n day={day}\n dayFieldName={dayFieldName}\n isDayUse={isDayUse}\n endDay={isDayUse ? day : endDay}\n endDayFieldName={endDayFieldName}\n maxDays={maxDays}\n enabledDates={enabledDates}\n dayLabel={(d, checkin) =>\n t('dayLabel', {\n date: d.toLocaleDateString(locale, { dateStyle: 'full' }),\n type: t(checkin ? 'checkin' : 'checkout'),\n })\n }\n language={language}\n MonthDateSelectorComponent={MonthDateSelectorComponent}\n />\n </div>\n {SearchDatesIndicator ? (\n <div className=\"border-border-alt flex justify-center border-b p-4 md:hidden\">\n <SearchDatesIndicator day={day} endDay={endDay} />\n </div>\n ) : null}\n {!hideFlexDates || afterCalendarContent || SearchDatesIndicator ? (\n <div className=\"flex justify-between pb-4 pt-3\">\n {!hideFlexDates ? (\n <FormInput\n label={flexDatesLabel ?? t('flexibleDateLabel')}\n type=\"checkbox\"\n name=\"dates.datesFlex\"\n disabled={hasFlexDatesDisabled}\n onClick={onFlexibleDates}\n />\n ) : null}\n {afterCalendarContent ? afterCalendarContent : null}\n {SearchDatesIndicator ? (\n <div className=\"hidden md:block\">\n <SearchDatesIndicator day={day} endDay={endDay} />\n </div>\n ) : null}\n </div>\n ) : null}\n </ActionDialog>\n </div>\n );\n};\n\nexport default DatePicker;\n","import { useLocale } from '@dx-ui/utilities-dates';\nimport { useTranslation } from 'next-i18next';\nimport { differenceInDays } from 'date-fns';\n\nexport function DateRangeScreenReaderText({\n fromDate,\n language,\n toDate,\n}: {\n fromDate: Date | null | undefined;\n language: string;\n toDate: Date | null | undefined;\n}) {\n const { t } = useTranslation('osc-date-picker');\n const locale = useLocale({ language });\n const fromDateString = fromDate ? fromDate.toLocaleDateString(locale, { dateStyle: 'long' }) : '';\n const toDateString = toDate ? toDate.toLocaleDateString(locale, { dateStyle: 'long' }) : '';\n const nights = fromDate && toDate ? differenceInDays(toDate, fromDate) : 0;\n return (\n <span className=\"sr-only\">\n {t('dateRange', { fromDate: fromDateString, toDate: toDateString, count: nights })}\n </span>\n );\n}\n","export * from './lib/date-picker';\nexport * from './lib/date-picker.calendar';\nexport * from './lib/date-picker.dates-button';\nexport * from './lib/date-picker.screenreader';\n","\"use client\";\n\n// packages/react/dialog/src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { useTranslation } from 'next-i18next';\nimport { ControlClose } from '@dx-ui/osc-controls';\nimport cx from 'classnames';\n\nexport type DialogSizes =\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | '3xl'\n | '4xl'\n | '5xl'\n | '6xl'\n | 'full'\n | 'container';\n\nexport type DialogBaseProps = {\n /** The className for the CloseButton to support custom curated sites */\n closeButtonClassName?: string;\n /** The className for the dialog tag */\n dialogClassName?: string;\n /** The className for the dialog overlay tag */\n dialogOverlayClassName?: string;\n /** The className for the dialog title tag */\n dialogTitleClassName?: string;\n /** The element that opens the dialog that focus should return to */\n dialogTrigger?: React.ReactNode;\n /** The size of the modal. */\n size?: DialogSizes;\n /** Allows passing of additional JSX to dialog. */\n bottomContent?: React.ReactNode;\n /** Whether the overlay is open by default (controlled). */\n isOpen?: boolean;\n /** Handler that is called when the overlay is dismissed. */\n onDismiss?: () => void;\n /** Sets whether header should be sticky in overflow scroll situations when a title is passed. Defaults to false */\n stickyHeader?: boolean;\n /** Optional data attribute to apply to the outer content wrapper */\n contentDataAttribute?: string;\n} & React.ComponentProps<'div'>;\n\nexport type DialogOptionalProps =\n | { ariaLabel?: never; title: string; hasChildrenWithTitle?: never }\n | { ariaLabel: string; title?: never; hasChildrenWithTitle?: never }\n | { ariaLabel?: never; title?: never; hasChildrenWithTitle: boolean };\n\nexport const DialogTitle = Dialog.Title;\n\nexport const DialogBase = React.forwardRef<\n HTMLDivElement,\n React.PropsWithChildren<DialogBaseProps & DialogOptionalProps>\n>(\n (\n {\n ariaLabel,\n children,\n className,\n closeButtonClassName,\n dialogClassName,\n dialogOverlayClassName,\n dialogTitleClassName,\n dialogTrigger,\n isOpen,\n title,\n size = 'md',\n bottomContent,\n onDismiss,\n hasChildrenWithTitle,\n stickyHeader = false,\n contentDataAttribute,\n },\n forwardedRef\n ) => {\n const innerRef = React.useRef<React.ElementRef<'div'>>(null);\n const dialogRef = React.useRef<React.ElementRef<'div'>>(null);\n\n React.useImperativeHandle(forwardedRef, () => dialogRef.current as HTMLDivElement);\n\n return (\n <Dialog.Root open={isOpen}>\n {dialogTrigger ? <Dialog.Trigger asChild>{dialogTrigger}</Dialog.Trigger> : null}\n <Dialog.Portal>\n <Dialog.Overlay className={cx('dialog-overlay sm:py-4 lg:py-12', dialogOverlayClassName)}>\n <Dialog.Content\n /* This is disabled on purpose because we don't use radix-ui/dialog description. See https://www.radix-ui.com/primitives/docs/components/dialog#description */\n aria-describedby={undefined}\n className={cx(\n 'dialog-content-v2 max-h-full rounded-lg sm:max-h-[95vh] md:max-h-[90vh]',\n {\n 'max-w-xs': size === 'xs',\n 'max-w-sm': size === 'sm',\n 'max-w-md': size === 'md',\n 'max-w-lg': size === 'lg',\n 'max-w-xl': size === 'xl',\n 'max-w-2xl': size === '2xl',\n 'max-w-3xl': size === '3xl',\n 'max-w-4xl': size === '4xl',\n 'max-w-5xl': size === '5xl',\n 'max-w-6xl': size === '6xl',\n 'max-w-full': size === 'full',\n 'w-full lg:max-w-[min(90%,calc(1440px-5rem))]': size === 'container',\n 'pt-0': stickyHeader,\n 'pb-0': bottomContent,\n },\n dialogClassName\n )}\n onInteractOutside={onDismiss}\n onEscapeKeyDown={onDismiss}\n {...(contentDataAttribute ? { [contentDataAttribute]: true } : null)}\n >\n <div className=\"h-full\" ref={innerRef}>\n {hasChildrenWithTitle ? null : title ? (\n <div\n className={cx('border-border relative mb-2 border-b pb-3.5', {\n 'sticky top-0 bg-bg z-10 pt-4': stickyHeader,\n })}\n >\n <Dialog.Title\n className={cx(\n 'brand-wa:font-light brand-wa:text-text brand-wa:text-xl brand-wa:md:text-2xl brand-ou:text-primary mx-4 text-center font-bold',\n dialogTitleClassName\n )}\n data-osc-product=\"osc-dialog-title\"\n >\n {title}\n </Dialog.Title>\n {onDismiss && (\n <CloseButton\n className={closeButtonClassName}\n onDismiss={onDismiss}\n stickyHeader={stickyHeader}\n />\n )}\n </div>\n ) : (\n <Dialog.Title aria-label={ariaLabel} className=\"hidden\" />\n )}\n {!title && onDismiss ? (\n <div className=\"relative py-1\">\n <CloseButton onDismiss={onDismiss} stickyHeader={stickyHeader} />\n </div>\n ) : null}\n <div className={cx('p-1', className)}>{children}</div>\n {bottomContent}\n </div>\n </Dialog.Content>\n </Dialog.Overlay>\n </Dialog.Portal>\n </Dialog.Root>\n );\n }\n);\n\nDialogBase.displayName = 'DialogBase';\n\nfunction CloseButton({\n onDismiss,\n stickyHeader,\n className,\n}: Pick<DialogBaseProps, 'onDismiss' | 'stickyHeader'> & { className?: string }) {\n const { t } = useTranslation('osc-dialog');\n return (\n <Dialog.Close asChild>\n <ControlClose\n onClick={onDismiss}\n className={cx(\n 'absolute -end-2',\n {\n '-top-0.5': !stickyHeader,\n 'top-3': stickyHeader,\n },\n className\n )}\n label={t('close')}\n />\n </Dialog.Close>\n );\n}\n","import * as React from 'react';\nimport type { DialogBaseProps, DialogOptionalProps } from './dialog.base';\nimport { DialogBase } from './dialog.base';\n\n/**\n * A modal is an overlay element which blocks interaction with elements outside it.\n *\n * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface. Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.\n *\n * [Radix <Dialog /> Primitive](https://www.radix-ui.com/primitives/docs/components/dialog)\n */\nexport const Dialog: React.FC<React.PropsWithChildren<DialogBaseProps & DialogOptionalProps>> = (\n props\n) => {\n const dialogRef = React.useRef<React.ElementRef<'div'>>(null);\n return <DialogBase {...props} ref={dialogRef} />;\n};\n\nexport default Dialog;\n","import * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport * as AlertDialog from '@radix-ui/react-alert-dialog';\nimport type { DialogBaseProps, DialogOptionalProps } from './dialog.base';\n\nexport type DialogAlertProps = Omit<DialogBaseProps, 'onDismiss' | 'onCancel'> & {\n /**\n * The text of the cancel button\n */\n cancel?: string | null;\n /**\n * The text of the confirm button\n */\n confirm?: string | null;\n /** The element that opens the dialog that focus should return to */\n dialogTrigger?: React.ReactNode;\n /**\n * Callback for when the cancel button is clicked.\n * If this is not provided, the cancel button will not show.\n */\n onCancel?: (event: React.SyntheticEvent<HTMLButtonElement>) => void;\n /**\n * Callback for when the confirm button is clicked.\n */\n onConfirm: (event: React.SyntheticEvent<HTMLButtonElement>) => void;\n /**\n * Whether or not to stack the buttons vertically\n */\n stackedButtons?: boolean;\n} & DialogOptionalProps;\n\n/**\n * A dialog meant for a user to confirm an action. Escape will not close this dialog.\n */\nconst DialogAlert: React.FC<React.PropsWithChildren<DialogAlertProps>> = ({\n ariaLabel,\n children,\n cancel,\n confirm,\n dialogTrigger,\n isOpen,\n onCancel,\n onConfirm,\n stackedButtons = true,\n title,\n ...rest\n}) => {\n const { t } = useTranslation('osc-dialog');\n const dialogRef = React.useRef<React.ElementRef<'div'>>(null);\n const cancelText = cancel ?? t('cancel');\n const confirmText = confirm ?? t('ok');\n\n const handleCancel = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n onCancel?.(event);\n };\n\n const handleConfirm = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n onConfirm(event);\n };\n\n return (\n <AlertDialog.Root open={isOpen}>\n {dialogTrigger ? <AlertDialog.Trigger asChild>{dialogTrigger}</AlertDialog.Trigger> : null}\n <AlertDialog.Portal>\n <AlertDialog.Overlay className=\"dialog-overlay sm:py-4 lg:py-12\">\n <AlertDialog.Content\n className={cx('dialog-content-v2 max-w-sm rounded-lg md:max-h-[90vh]', {\n 'flex flex-col': isOpen,\n })}\n {...rest}\n onEscapeKeyDown={(event) => event.preventDefault()}\n ref={dialogRef}\n >\n <div className=\"text-center\">\n {title ? (\n <AlertDialog.Title className=\"mb-3 text-xl font-bold leading-tight\">\n {title}\n </AlertDialog.Title>\n ) : (\n <AlertDialog.Title aria-label={ariaLabel} className=\"hidden\" />\n )}\n <AlertDialog.Description>{children}</AlertDialog.Description>\n </div>\n <div\n className={cx('flex items-center justify-center gap-2 pt-4', {\n 'flex-col': stackedButtons,\n })}\n >\n {!onCancel ? (\n <AlertDialog.Cancel asChild>\n <button\n type=\"button\"\n className=\"btn btn-primary btn-lg w-full\"\n onClick={handleConfirm}\n >\n {confirmText}\n </button>\n </AlertDialog.Cancel>\n ) : (\n <AlertDialog.Action asChild>\n <button\n type=\"button\"\n className=\"btn btn-primary btn-lg w-full\"\n onClick={handleConfirm}\n >\n {confirmText}\n </button>\n </AlertDialog.Action>\n )}\n {onCancel ? (\n <AlertDialog.Cancel asChild>\n <button\n type=\"button\"\n className=\"btn btn-primary-outline btn-lg w-full\"\n onClick={handleCancel}\n >\n {cancelText}\n </button>\n </AlertDialog.Cancel>\n ) : null}\n </div>\n </AlertDialog.Content>\n </AlertDialog.Overlay>\n </AlertDialog.Portal>\n </AlertDialog.Root>\n );\n};\n\nexport { DialogAlert };\nexport default DialogAlert;\n","import { forwardRef } from 'react';\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\n\ntype ActionButton = {\n adaDescription?: string;\n label?: string;\n} & React.ComponentPropsWithRef<'button'>;\n\ntype ShouldEnableActionButton = ActionButton & { isEnabled?: boolean };\n\nexport type ActionButtonProps = {\n /** Props passed to each button type. */\n buttonOptions?: {\n cancel?: ActionButton;\n confirm?: ActionButton;\n reset?: ShouldEnableActionButton;\n };\n /** Hander called when cancel button is blurred */\n onCancel?: (event: React.SyntheticEvent<HTMLButtonElement>) => void;\n /** Handler called when done button is blurred. */\n onConfirm?: (event: React.SyntheticEvent<HTMLButtonElement>) => void;\n /** Handler called when reset is activated */\n onReset?: () => void;\n /** stacks action buttons in viewport widths md and up */\n shouldStackButtons?: boolean;\n};\n\nconst Button = forwardRef<HTMLButtonElement, ActionButton>(\n ({ label, adaDescription, className, ...rest }, forwardedRef) => {\n return (\n <button {...rest} className={cx('btn btn-lg', className)} ref={forwardedRef} type=\"button\">\n {label}\n {adaDescription ? <span className=\"sr-only\">{adaDescription}</span> : null}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport function ActionButtons({\n buttonOptions = {},\n onReset,\n onConfirm,\n onCancel,\n shouldStackButtons = false,\n}: ActionButtonProps) {\n const { t } = useTranslation('osc-dialog');\n const { cancel, confirm, reset } = buttonOptions;\n const resetBtnEnabled = reset?.isEnabled && reset?.label;\n\n const buttons = [\n {\n ...confirm,\n onClick: onConfirm,\n label: confirm?.label ?? t('done'),\n className: 'btn-primary',\n 'data-testid': 'shop-modal-done-cta',\n ref: confirm?.ref,\n },\n {\n ...cancel,\n onClick: onCancel,\n label: cancel?.label ?? t('cancel'),\n className: 'btn-primary-outline',\n ref: cancel?.ref,\n },\n ].map((props) => (\n <Dialog.Close key={props.label} asChild>\n <Button {...props} key={props.label} />\n </Dialog.Close>\n ));\n\n return (\n <div\n className={cx('bg-bg sticky bottom-0 flex flex-col gap-4 px-1 pb-4 pt-2', {\n 'md:justify-between': resetBtnEnabled,\n 'md:justify-end': !resetBtnEnabled,\n 'md:flex-row': !shouldStackButtons,\n })}\n >\n {resetBtnEnabled ? (\n <div className=\"md:self-center\">\n <button\n className=\"btn-xl btn btn-primary-link w-full rounded-none\"\n data-testid=\"shop-modal-reset-cta\"\n onClick={() => onReset?.()}\n ref={reset?.ref}\n type=\"button\"\n >\n {reset?.label}\n {reset?.adaDescription ? (\n <span className=\"sr-only\" aria-live=\"assertive\" role=\"alert\">\n {reset?.adaDescription}\n </span>\n ) : null}\n </button>\n </div>\n ) : null}\n <div\n className={cx('flex flex-col gap-3', {\n 'md:flex-row': !shouldStackButtons,\n })}\n >\n {buttons}\n </div>\n </div>\n );\n}\n","import * as React from 'react';\nimport { ActionButtons, type ActionButtonProps } from './dialog-action-buttons';\nimport { DialogBase, type DialogBaseProps, type DialogOptionalProps } from './dialog.base';\n\nexport type ActionDialogProps = React.PropsWithChildren<\n DialogBaseProps & ActionButtonProps & DialogOptionalProps\n>;\n\n/**\n * A dialog with two buttons for the user to take an action to cancel or accept.\n */\nexport function ActionDialog({\n buttonOptions,\n onCancel,\n onConfirm,\n onDismiss,\n onReset,\n shouldStackButtons,\n ...dialogProps\n}: ActionDialogProps) {\n const dialogRef = React.useRef<React.ElementRef<'div'>>(null);\n\n const handleCancel = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n onCancel?.(event);\n };\n\n const handleConfirm = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n onConfirm?.(event);\n };\n\n const bottomContent = (\n <ActionButtons\n buttonOptions={buttonOptions}\n onReset={onReset}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n shouldStackButtons={shouldStackButtons}\n />\n );\n return (\n <DialogBase\n {...dialogProps}\n onDismiss={onDismiss}\n bottomContent={bottomContent}\n ref={dialogRef}\n />\n );\n}\n","export * from './dialog';\nexport * from './dialog-alert';\nexport * from './dialog-action';\nexport * from './dialog-action-buttons';\nexport * from './dialog.base';\n","export * from './lib';\n","import { forwardRef } from 'react';\n\nconst FormErrorIcon = forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>>(\n ({ width = 16, height = 16, ...rest }, ref) => (\n <svg\n ref={ref}\n role=\"img\"\n aria-hidden\n height={height}\n width={width}\n viewBox=\"0 0 24 24\"\n {...rest}\n >\n <g fill=\"currentcolor\">\n <circle cx=\"12\" cy=\"12\" r=\"12\" />\n </g>\n <g transform=\"translate(8.000000, 8.000000)\" stroke=\"#FFFFFF\" strokeLinecap=\"square\">\n <path d=\"M1,1 L7.00679887,7.00679887\" strokeWidth=\"2\" />\n <path d=\"M1,7 L7.00679887,0.993201131\" strokeWidth=\"2\" />\n </g>\n </svg>\n )\n);\n\nFormErrorIcon.displayName = 'FormErrorIcon';\n\nexport { FormErrorIcon };\nexport default FormErrorIcon;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport type { FieldError } from 'react-hook-form';\nimport { FormErrorIcon } from './form.error-icon';\n\ntype FormError = {\n error?: Partial<FieldError>;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * The standard error message to be used for forms and form inputs\n */\nconst FormError = React.forwardRef<HTMLDivElement, FormError>(\n ({ error, className, ...rest }, ref) => {\n const messages = (error?.types ? Object.values(error.types) : [error?.message]).filter(\n (v) => typeof v === 'string'\n );\n const hasError = messages.length > 0;\n\n return (\n <div\n ref={ref}\n className={cx(className, {\n hidden: !hasError,\n '!mt-0 block': hasError,\n })}\n {...rest}\n >\n {hasError && (\n <div className=\"flex flex-col space-y-2\">\n {messages.map((message) => (\n <div\n key={String(message)}\n className=\"text-danger mt-1 flex gap-1 text-sm leading-tight rtl:space-x-reverse\"\n >\n <FormErrorIcon />\n <span>{message}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n }\n);\n\nFormError.displayName = 'FormError';\n\nexport { FormError };\nexport default FormError;\n","import * as React from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\n\nimport { FormError } from './form.error';\n\nimport type { SubmitHandler, UseFormProps, UseFormReturn } from 'react-hook-form';\nimport type { FormDataStructure } from './form.types';\n\ntype FormProps = {\n /**\n * This is an override to the main form error message, used to notify the user that there are errors that need to be fixed. This is not for individual field error messages.\n */\n errorMessage?: string;\n /**\n * This will return an object with key/value pairs for each input in the form\n */\n onSubmit?: (data: any, methods: UseFormReturn) => void;\n /**\n * Please reference the [react-hook-form `useForm()` API documentation](https://react-hook-form.com/api/useform)\n */\n useFormProps?: UseFormProps<FormDataStructure>;\n /** Override for the Error Banner Defaults to displaying */\n hasErrorBanner?: boolean | undefined;\n} & Omit<React.FormHTMLAttributes<HTMLFormElement>, 'onSubmit'>;\n\n/**\n * This is the Form Component that sets up `react-hook-form` with a `<FormProvider/>` and a general error message. All inputs in the form should `useFormContext()` either using `FormInput, FormSelect, FormTextarea, FormConnector` or some other custom component.\n */\nexport const Form: React.FC<React.PropsWithChildren<FormProps>> = ({\n errorMessage,\n onSubmit,\n children,\n useFormProps = { mode: 'onTouched', criteriaMode: 'all' },\n hasErrorBanner = true,\n method = 'POST',\n ...rest\n}) => {\n const [t] = useTranslation('osc-form');\n const memoizedFormProps = React.useMemo(() => useFormProps, [useFormProps]);\n\n const methods = useForm<FormDataStructure>({\n mode: 'onTouched',\n criteriaMode: 'all',\n ...memoizedFormProps,\n });\n const {\n formState: { errors, isSubmitted },\n } = methods;\n const hasErrors = Object.keys(errors).length > 0;\n\n const onFormSubmit: SubmitHandler<FormDataStructure> = (data) => {\n if (onSubmit) {\n onSubmit(data, methods);\n }\n };\n\n return (\n <FormProvider {...methods}>\n {hasErrorBanner && (\n <div\n role=\"alert\"\n className={cx('bg-danger-alt text-danger', {\n 'mb-4 p-4': hasErrors && isSubmitted,\n })}\n >\n {hasErrors && isSubmitted && (\n <h2>\n <FormError\n className=\"mt-0 font-semibold\"\n error={{ message: errorMessage || t('errorMessage') }}\n />\n </h2>\n )}\n </div>\n )}\n <form method={method} {...rest} noValidate onSubmit={methods.handleSubmit(onFormSubmit)}>\n {children}\n </form>\n </FormProvider>\n );\n};\n\nexport type { FormProps };\n","import type { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { useFormContext } from 'react-hook-form';\n\ntype FormConnector<T extends FieldValues> = {\n children: JSX.Element | ((props: UseFormReturn<T>) => JSX.Element);\n};\n\nconst FormConnector = <T extends FieldValues>({ children }: FormConnector<T>) => {\n const methods = useFormContext<T>();\n return typeof children === 'function' ? children(methods) : children;\n};\n\nexport { FormConnector };\nexport default FormConnector;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { Spinner } from '@dx-ui/osc-spinner';\n\ntype FormHelpMessage = {\n loading?: boolean;\n message?: string | string[];\n} & React.HTMLAttributes<HTMLDivElement>;\n\nconst FormHelpMessage = React.forwardRef<HTMLDivElement, FormHelpMessage>(\n ({ className, message, loading, id, ...rest }, ref) => {\n const { t } = useTranslation('osc-form');\n const messages = Array.isArray(message) ? message : [message];\n\n return (\n <div id={id} className=\"grid gap-1 pt-1\">\n {loading ? (\n <div className=\"flex gap-2\">\n <Spinner size=\"sm\" />\n <p>{t('loading')}</p>\n </div>\n ) : (\n messages &&\n messages?.map((value, index) => (\n <div\n ref={ref}\n className={cx('text-text-alt items-center space-x-2 text-sm', className)}\n key={`help-message-${index + 1}`}\n {...rest}\n >\n <p>{value}</p>\n </div>\n ))\n )}\n </div>\n );\n }\n);\n\nFormHelpMessage.displayName = 'FormHelpMessage';\n\nexport { FormHelpMessage };\nexport default FormHelpMessage;\n","import type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport type { FormLabelBase } from './form.types';\n\ntype FormLabelHelper = Pick<FormLabelBase, 'required' | 'optional'>;\n\nconst FormLabelHelper: React.FC<React.PropsWithChildren<FormLabelHelper>> = ({\n required,\n optional,\n}) => {\n const [t] = useTranslation('osc-form');\n\n const requiredText = required && t('required');\n const optionalText = optional && t('optional');\n\n const text = requiredText || optionalText;\n\n return text ? (\n <>\n {' '}\n <span className=\"text-text-alt font-normal\">({text})</span>\n </>\n ) : null;\n};\n\nexport { FormLabelHelper };\nexport default FormLabelHelper;\n","import cx from 'classnames';\nimport type * as React from 'react';\nimport { FormLabelHelper } from './form.label-helper';\nimport type { FormLabelBase } from './form.types';\n\ntype FormLabel = FormLabelBase<HTMLLabelElement>;\n\nconst FormLabel: React.FC<React.PropsWithChildren<FormLabel>> = ({\n label,\n required,\n optional,\n hasError,\n className,\n children,\n ...rest\n}) => {\n return (\n <label\n className={cx('label', className, {\n 'text-danger': hasError,\n })}\n {...rest}\n >\n <span>\n {label}\n <FormLabelHelper required={required} optional={optional} />\n </span>\n {children}\n </label>\n );\n};\n\nexport { FormLabel };\nexport default FormLabel;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { FormError } from './form.error';\nimport { FormHelpMessage } from './form.help-message';\nimport { FormLabel } from './form.label';\nimport type { FormInputBase } from './form.types';\n\n/**\n * This component is to be used in place of all `<input>` elements including checkbox and radio\n */\nexport const FormInput: React.FC<\n React.PropsWithChildren<FormInputBase<React.InputHTMLAttributes<HTMLInputElement>>>\n> = ({\n label,\n name,\n required,\n optional,\n registerOptions,\n labelClassName,\n helpMessage,\n loading,\n className,\n containerClassName,\n ...rest\n}) => {\n const id = React.useId();\n const errorId = `input-error-${id}`;\n const helperId = `input-helper-${id}`;\n const [t] = useTranslation('osc-form');\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const fieldError = get(errors, name);\n const hasError = !!fieldError;\n\n let inputClassName = '';\n let labelClass = '';\n switch (rest.type) {\n case 'checkbox':\n inputClassName = 'form-checkbox';\n labelClass = 'label-inline-reverse';\n break;\n case 'radio':\n inputClassName = 'form-radio';\n labelClass = 'label-inline';\n break;\n default:\n inputClassName = 'form-input w-full';\n break;\n }\n\n return (\n <div className={containerClassName}>\n <FormLabel\n label={label}\n required={required}\n optional={optional}\n hasError={hasError}\n className={cx('self-start', labelClass, labelClassName)}\n >\n <input\n type=\"text\"\n {...rest}\n className={cx(inputClassName, className, {\n 'form-error': hasError,\n })}\n aria-invalid={hasError}\n required={required}\n aria-describedby={`${errorId} ${helperId} ${rest?.['aria-describedby'] || ''}`}\n {...register(name, {\n required: required ? t('requiredError') : false,\n ...registerOptions,\n })}\n />\n </FormLabel>\n <FormError id={errorId} error={fieldError} />\n <FormHelpMessage id={helperId} message={helpMessage} loading={loading} />\n </div>\n );\n};\n\nexport default FormInput;\n","import cx from 'classnames';\nimport type * as React from 'react';\nimport { FormLabelHelper } from './form.label-helper';\nimport type { FormLabelBase } from './form.types';\n\ntype FormLegend = FormLabelBase<HTMLLegendElement>;\n\nconst FormLegend: React.FC<React.PropsWithChildren<FormLegend>> = ({\n label,\n required,\n optional,\n hasError,\n className,\n ...rest\n}) => {\n return (\n <legend\n className={cx('label', className, {\n 'text-danger': hasError,\n })}\n {...rest}\n >\n <span>\n {label}\n <FormLabelHelper required={required} optional={optional} />\n </span>\n </legend>\n );\n};\n\nexport { FormLegend };\nexport default FormLegend;\n","import * as React from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport cardValidator from 'card-validator';\nimport cx from 'classnames';\n\nimport type { FormInputBase } from './form.types';\nimport FormError from './form.error';\nimport FormLabel from './form.label';\n\ntype Validator = typeof cardValidator;\n\nconst formatCardNumber = (cardNumber: string, cardValidator: Validator) => {\n const cardData = cardValidator.number(cardNumber);\n if (!cardData.isPotentiallyValid || !cardData?.card) return cardNumber;\n const cardNumberArray = [...cardNumber];\n if (cardData?.isPotentiallyValid && cardData?.card?.type) {\n const validGapIndices = cardData?.card?.gaps?.filter(\n (gapIndex: number) => cardNumber?.length > gapIndex\n );\n validGapIndices?.forEach((gap: number, index: number) => {\n if (cardNumberArray[gap + index] !== ' ') {\n cardNumberArray.splice(gap + index, 0, ' ');\n }\n });\n }\n return cardNumberArray.join('').trim();\n};\n\nconst FormCardNumberInput: React.FC<FormInputBase<React.InputHTMLAttributes<HTMLInputElement>>> = ({\n className,\n containerClassName,\n label,\n labelClassName,\n name,\n registerOptions,\n required = true,\n ...rest\n}) => {\n const {\n formState: { errors },\n register,\n setValue,\n } = useFormContext();\n const [cardType, setCardType] = React.useState<string | null>(null);\n const [t] = useTranslation('osc-form');\n const id = React.useId();\n const errorId = `input-error-${id}`;\n const errorMessage = get(errors, name);\n const MAX_NUMBER_OF_DIGITS = 19;\n const MAX_NUMBER_OF_GAPS = 3;\n return (\n <div className={containerClassName}>\n <FormLabel label={label} required={required} className={cx('self-start', labelClassName)}>\n <div\n className={cx(\n 'form-input flex before:mr-3 before:inline-block before:h-auto before:w-9 before:bg-cover before:rtl:ml-3',\n className,\n {\n 'form-error': !!errorMessage,\n 'before:content-none': !cardType,\n 'before:bg-card-amex': cardType === 'american-express',\n 'before:bg-card-diners-club': cardType === 'diners-club',\n 'before:bg-card-discover': cardType === 'discover' || cardType === 'elo',\n 'before:bg-card-jcb': cardType === 'jcb',\n 'before:bg-card-maestro': cardType === 'maestro',\n 'before:bg-card-mastercard': cardType === 'mastercard',\n 'before:bg-card-unionpay': cardType === 'unionpay',\n 'before:bg-card-visa': cardType === 'visa',\n }\n )}\n >\n <input\n {...rest}\n aria-invalid={!!errorMessage}\n aria-describedby={errorId}\n autoComplete=\"cc-number\"\n className=\"outline-none\"\n inputMode=\"numeric\"\n {...register(name, {\n onChange: ({ target: { value: cardNumber } }) => {\n setValue(name, formatCardNumber(cardNumber, cardValidator));\n setCardType(cardValidator.number(cardNumber)?.card?.type ?? null);\n },\n required: required ? t('invalidCardNumberError') : false,\n setValueAs: (value) => value?.replace(/\\s/g, ''),\n validate: (cardNumber) =>\n !cardNumber ||\n cardValidator.number(cardNumber).isValid ||\n t('invalidCardNumberError'),\n ...registerOptions,\n })}\n required={required}\n size={MAX_NUMBER_OF_DIGITS + MAX_NUMBER_OF_GAPS}\n />\n </div>\n </FormLabel>\n {errorMessage ? <FormError id={errorId} error={errorMessage} /> : null}\n </div>\n );\n};\n\nexport { FormCardNumberInput };\nexport default FormCardNumberInput;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { FormError } from './form.error';\nimport { FormHelpMessage } from './form.help-message';\nimport { FormLabel } from './form.label';\nimport type { FormInputBase } from './form.types';\n\n/**\n * This component is to be used in place of all `<select>` elements including checkbox and radio\n */\nconst FormSelect: React.FC<\n React.PropsWithChildren<FormInputBase<React.SelectHTMLAttributes<HTMLSelectElement>>>\n> = ({\n label,\n name,\n optional,\n required,\n registerOptions,\n labelClassName,\n helpMessage,\n loading,\n className,\n containerClassName,\n children,\n ...rest\n}) => {\n const id = React.useId();\n const errorId = `input-error-${id}`;\n const helperId = `input-helper-${id}`;\n const [t] = useTranslation('osc-form');\n const {\n register,\n formState: { errors },\n } = useFormContext();\n const fieldError = get(errors, name);\n const hasError = !!fieldError;\n\n return (\n <div className={containerClassName}>\n <FormLabel\n label={label}\n required={required}\n optional={optional}\n hasError={hasError}\n className={cx('self-start', labelClassName)}\n >\n <select\n {...rest}\n className={cx(className, {\n 'form-select': !rest.multiple,\n 'form-multiselect': rest.multiple,\n 'form-error': hasError,\n })}\n required={required}\n aria-invalid={hasError}\n aria-describedby={`${errorId} ${helperId}`}\n {...register(name, {\n required: required ? t('requiredError') : false,\n ...registerOptions,\n })}\n >\n {children}\n </select>\n </FormLabel>\n <FormError id={errorId} error={fieldError} />\n <FormHelpMessage id={helperId} message={helpMessage} loading={loading} />\n </div>\n );\n};\n\nexport { FormSelect };\nexport default FormSelect;\n","import cx from 'classnames';\nimport * as React from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { FormError } from './form.error';\nimport { FormHelpMessage } from './form.help-message';\nimport { FormLabel } from './form.label';\nimport type { FormInputBase } from './form.types';\n\n/**\n * This component is to be used in place of all `<textarea>` elements\n */\nconst FormTextarea: React.FC<\n React.PropsWithChildren<FormInputBase<React.TextareaHTMLAttributes<HTMLTextAreaElement>>>\n> = ({\n label,\n name,\n optional,\n required,\n registerOptions,\n labelClassName,\n helpMessage,\n loading,\n className,\n containerClassName,\n maxLength,\n ...rest\n}) => {\n const id = React.useId();\n const errorId = `input-error-${id}`;\n const helperId = `input-helper-${id}`;\n const [t] = useTranslation('osc-form');\n const {\n register,\n watch,\n formState: { errors },\n } = useFormContext();\n const inputName = name;\n const inputValue = watch(inputName);\n const fieldError = get(errors, inputName);\n const hasError = !!fieldError;\n\n const length = inputValue?.length || 0;\n const percent = (maxLength && length / maxLength) || 0;\n const remaining = maxLength && maxLength - length;\n\n return (\n <div className={containerClassName}>\n <FormLabel\n label={label}\n required={required}\n optional={optional}\n hasError={hasError}\n className={cx('self-start', labelClassName)}\n >\n <div className=\"relative\">\n <textarea\n {...rest}\n maxLength={maxLength}\n required={required}\n className={cx('form-textarea w-full', className, {\n 'form-error': hasError,\n })}\n aria-invalid={hasError}\n aria-describedby={`${errorId} ${helperId}`}\n {...register(inputName, {\n required: required ? t('requiredError') : false,\n ...registerOptions,\n })}\n />\n {!!maxLength && (\n <p\n aria-live=\"polite\"\n className={cx(\n 'bg-bg/70 pointer-events-none absolute bottom-2 select-none px-1 pt-1 text-xs font-normal ltr:right-0.5 rtl:left-0.5',\n {\n 'text-text-alt': percent < 0.8,\n 'text-warn': percent >= 0.8 && percent < 1,\n 'text-danger': percent >= 1,\n }\n )}\n data-testid=\"form-textarea-counter\"\n >\n <span aria-hidden>\n {length}/{maxLength}\n </span>\n <span className=\"sr-only\">{t('remaining', { count: remaining })}</span>\n </p>\n )}\n </div>\n </FormLabel>\n <FormError id={errorId} error={fieldError} />\n <FormHelpMessage id={helperId} message={helpMessage} loading={loading} />\n </div>\n );\n};\n\nexport { FormTextarea };\nexport default FormTextarea;\n","export * from './lib/form';\nexport * from './lib/form.connector';\nexport * from './lib/form.error';\nexport * from './lib/form.error-icon';\nexport * from './lib/form.help-message';\nexport * from './lib/form.input';\nexport * from './lib/form.label';\nexport * from './lib/form.label-helper';\nexport * from './lib/form.legend';\nexport * from './lib/form.card-number-input';\nexport * from './lib/form.select';\nexport * from './lib/form.textarea';\nexport * from './lib/form.types';\n","export type IconVariant = 'regular' | 'solid';\n\nexport const IconNames = [\n '360-tour',\n 'access',\n 'accessibility',\n 'add-circle',\n 'add-hotel',\n 'add-square',\n 'add',\n 'adventure-stays',\n 'airport',\n 'alert-circle',\n 'alert-triangle',\n 'all-inclusive',\n 'amazon',\n 'app',\n 'arrow-down-circle',\n 'arrow-down-square',\n 'arrow-down',\n 'arrow-left-circle',\n 'arrow-left-square',\n 'arrow-left',\n 'arrow-right-circle',\n 'arrow-right-square',\n 'arrow-right',\n 'arrow-small-right',\n 'arrow-up-circle',\n 'arrow-up-square',\n 'arrow-up',\n 'arrowhead-down-circle',\n 'arrowhead-down-square',\n 'arrowhead-down',\n 'arrowhead-left-circle',\n 'arrowhead-left-square',\n 'arrowhead-left',\n 'arrowhead-right-circle',\n 'arrowhead-right-square',\n 'arrowhead-right',\n 'arrowhead-small-down',\n 'arrowhead-small-left',\n 'arrowhead-small-right',\n 'arrowhead-small-up',\n 'arrowhead-up-circle',\n 'arrowhead-up-square',\n 'arrowhead-up',\n 'audio-description',\n 'audit-log',\n 'auto-upgrade',\n 'av',\n 'award-selected',\n 'award',\n 'bag',\n 'bagel',\n 'balcony',\n 'banner',\n 'bath',\n 'bathrobe',\n 'beach',\n 'bed',\n 'bell',\n 'bin',\n 'boutique-hotels',\n 'breakfast',\n 'building-of-interest',\n 'bullet',\n 'business-centre',\n 'buy-points',\n 'calendar-search',\n 'calendar',\n 'cancellation',\n 'car-rental',\n 'care',\n 'casino',\n 'champagne',\n 'check-circle',\n 'check-in',\n 'check-out',\n 'check-square',\n 'check-uncontained',\n 'check',\n 'checkbox-unselected',\n 'checkmark-heavy',\n 'checkmark-shining',\n 'choose-your-room',\n 'christmas-tree',\n 'circle-filled',\n 'city',\n 'cleaning-equipment',\n 'cleaning',\n 'clear',\n 'clock',\n 'close-circle',\n 'close-square',\n 'close',\n 'closed-captions',\n 'cocktails',\n 'coffee',\n 'cold-breakfast',\n 'compass',\n 'concierge',\n 'connecting-rooms',\n 'contact',\n 'convert-points',\n 'cookie',\n 'copy',\n 'cosmetics',\n 'credit-card',\n 'credit-cards',\n 'currency',\n 'diamond',\n 'digital-checkout',\n 'digital-key',\n 'dining',\n 'download',\n 'edit',\n 'ellipses',\n 'enlarge',\n 'entertainment',\n 'epay',\n 'ev-charging',\n 'evening-reception',\n 'event',\n 'ewallet',\n 'exercise-bike',\n 'face-covering',\n 'facebook',\n 'family',\n 'fast-forward',\n 'favorite-hotel',\n 'favorite',\n 'filters',\n 'find-hotel',\n 'firearms',\n 'fireplace',\n 'flag',\n 'flower',\n 'food-&-beverage',\n 'free-nights',\n 'full-kitchen',\n 'gallery',\n 'garden-view',\n 'gift',\n 'gluten-free',\n 'gold-bar',\n 'golf-cart',\n 'golf-clubs',\n 'golf-instructions',\n 'golf-practice',\n 'golf',\n 'grain-free',\n 'group',\n 'guarantee-policy',\n 'gym',\n 'hairdryer',\n 'halal',\n 'handle',\n 'happy',\n 'help-circle',\n 'help-square',\n 'help',\n 'hide',\n 'home',\n 'hot-breakfast',\n 'hot-tub',\n 'hotel-location',\n 'hotel-selected',\n 'hotel',\n 'house',\n 'image',\n 'in-room-kitchen',\n 'indoor-pool',\n 'induction-cooktop',\n 'info-circle',\n 'instagram',\n 'inventory',\n 'iron',\n 'key-dispenser',\n 'keys',\n 'kid-friendly',\n 'kids-club',\n 'kitchen',\n 'kitchenette-and-fridge',\n 'kosher',\n 'language',\n 'lift',\n 'link',\n 'living-space',\n 'location',\n 'lock',\n 'lounge',\n 'luggage',\n 'luxury',\n 'lyft',\n 'mail',\n 'map-location',\n 'map-pin',\n 'massage-treatments',\n 'meeting',\n 'megaphone',\n 'menu',\n 'michelin-star',\n 'microwave',\n 'mini-fridge-and-microwave',\n 'mini-fridge',\n 'minibar',\n 'mobile-app',\n 'mobile',\n 'mouse',\n 'movies',\n 'music',\n 'nearby-hotels',\n 'new-hotel',\n 'new-window',\n 'night',\n 'nights-circle',\n 'no-image',\n 'no-pets',\n 'no-smoking',\n 'ocean-view',\n 'optional-services',\n 'order-ahead',\n 'organic',\n 'other-functions',\n 'outdoor-pool',\n 'paid-upgrade',\n 'parking',\n 'pause-circle',\n 'pause',\n 'peleton-amenities',\n 'person',\n 'pet-friendly',\n 'pinterest',\n 'play-circle',\n 'play',\n 'point-of-interest',\n 'points-and-money',\n 'points-promotions',\n 'points',\n 'policies',\n 'pool-points',\n 'pool',\n 'price',\n 'print',\n 'prodigy-home',\n 'prodigy-portal',\n 'pyjamas',\n 'qr-pay',\n 'radio-button-selected',\n 'radio-button-unselected',\n 'rate',\n 'raw',\n 'refresh',\n 'remote',\n 'remove-circle',\n 'remove-square',\n 'remove',\n 'renovated-hotel',\n 'residence',\n 'resort',\n 'restart',\n 'restaurant',\n 'review',\n 'rewards',\n 'rewind',\n 'rideshare',\n 'rollaway-bed',\n 'rollaway-crib',\n 'rollover-nights',\n 'room-guarantee',\n 'room-plan',\n 'room-service',\n 'room-type-setting',\n 'room-upgrade',\n 'safe',\n 'sailing',\n 'sale',\n 'search',\n 'settings',\n 'share',\n 'shopping',\n 'shower',\n 'shuttle-service',\n 'ski',\n 'skip-back',\n 'skip-forward',\n 'slippers',\n 'smoking',\n 'snacks',\n 'snorkel',\n 'sound-off',\n 'sound-on',\n 'spa',\n 'special-rate-plan',\n 'special-requests',\n 'spin',\n 'spray-bottle',\n 'stadium',\n 'star-burst',\n 'star-circle-filled',\n 'star-circle',\n 'star-half',\n 'star',\n 'streaming-tv',\n 'suitcase',\n 'suites',\n 'sunshine',\n 'support',\n 'surfboard',\n 'taxes',\n 'telephone',\n 'tennis',\n 'terrace',\n 'theme-park',\n 'tiktok',\n 'towels',\n 'transcripts',\n 'transfer',\n 'translation',\n 'trumpet',\n 'turndown-service',\n 'tv',\n 'unavailable',\n 'unhappy',\n 'unhide',\n 'unlock',\n 'user-circle',\n 'user-info',\n 'user-square',\n 'user',\n 'users',\n 'vegan',\n 'vegetarian',\n 'wallet',\n 'water-bottle',\n 'waterpark',\n 'wedding-bird',\n 'wedding-cake',\n 'wedding',\n 'whatsapp',\n 'wifi',\n 'x',\n 'yoga',\n 'youtube',\n] as const;\n\nexport const IconSetNames = new Set([...IconNames]);\n","export type SupportedBrand = 'EY' | 'ES' | 'HP';\n\nexport const EYIconNames = [\n 'breakfast',\n 'fitness',\n 'grill',\n 'kitchen',\n 'laundry',\n 'pet-friendly',\n 'studio',\n] as const;\n\nexport const ESIconNames = [\n 'breakfast',\n 'drink',\n 'fitness',\n 'breakfast_inverted',\n 'drink_inverted',\n 'fitness_inverted',\n] as const;\n\nexport const HPIconNames = ['hex', 'hex_inverted'] as const;\n\nexport const EYIconSetNames = new Set([...EYIconNames]);\n\nexport const ESIconSetNames = new Set([...ESIconNames]);\n\nexport const HPIconSetNames = new Set([...HPIconNames]);\n","import { ReactSVG } from 'react-svg';\nimport { IconSetNames } from './osc-icon-map';\nimport { EYIconSetNames, ESIconSetNames, HPIconSetNames } from './osc-brand-icon-map';\nimport type { ESIconNames, EYIconNames, HPIconNames, SupportedBrand } from './osc-brand-icon-map';\nimport type { IconVariant, IconNames } from './osc-icon-map';\n\nexport const sizeToPixelValue = {\n xs: '18',\n sm: '20',\n md: '28',\n lg: '32',\n xl: '40',\n '2xl': '48',\n '3xl': '60',\n '4xl': '72',\n '5xl': '96',\n};\n\nconst basePath = `/modules/assets/svgs/icons`;\nexport const baseIconPath = basePath;\nexport const brandIconPath = `${basePath}/brand`;\n\ntype BaseIconProps = Pick<React.ComponentProps<typeof ReactSVG>, 'title' | 'wrapper'> & {\n /**\n * For passing additional classes to the parent `svg` element\n */\n className?: string;\n /**\n * One of five size options; defaults to medium\n */\n size?: keyof typeof sizeToPixelValue;\n};\n\ntype IconPropsWithBrand<\n BrandCode extends SupportedBrand,\n BrandIconNames extends ReadonlyArray<string>\n> = BaseIconProps & {\n /**\n * Brand code for the icon\n */\n brandCode: BrandCode;\n /**\n * Name of the icon to display from a brand specific set\n */\n name: BrandIconNames[number];\n variant?: never;\n};\n\nexport type OSCIconNames = (typeof IconNames)[number];\n\ntype IconPropsWithVariant = BaseIconProps & {\n brandCode?: never;\n /**\n * Name of the icon to display from the approved set\n */\n name: OSCIconNames;\n /**\n * Controls icon style: regular or solid; defaults to “regularâ€\n */\n variant?: IconVariant;\n};\n\nexport type IconProps =\n | IconPropsWithVariant\n | IconPropsWithBrand<'ES', typeof ESIconNames>\n | IconPropsWithBrand<'EY', typeof EYIconNames>\n | IconPropsWithBrand<'HP', typeof HPIconNames>;\n\nexport function Icon({\n className,\n brandCode,\n name,\n size = 'md',\n title,\n variant = 'regular',\n wrapper = 'span',\n}: IconProps) {\n if (brandCode === 'ES' && !ESIconSetNames.has(name)) {\n return null;\n }\n if (brandCode === 'EY' && !EYIconSetNames.has(name)) {\n return null;\n }\n if (brandCode === 'HP' && !HPIconSetNames.has(name)) {\n return null;\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n if (!brandCode && !IconSetNames.has(name as OSCIconNames)) {\n return null;\n }\n const sizeInPixels = sizeToPixelValue[size];\n const src = brandCode\n ? `${brandIconPath}/${brandCode}/${name}.svg`\n : `${baseIconPath}/${variant}/${name}.svg`;\n\n return (\n <ReactSVG\n beforeInjection={(svg) => {\n !title && svg.setAttribute('aria-hidden', 'true');\n title && svg.setAttribute('aria-label', title);\n svg.setAttribute('fill', 'currentColor');\n svg.setAttribute('width', sizeInPixels);\n svg.setAttribute('height', sizeInPixels);\n svg.setAttribute('viewBox', '0 0 24 24');\n svg.setAttribute('data-testid', `icon-${name}`);\n className && svg.classList.add(...className.split(' '));\n }}\n afterInjection={(svg) => {\n if (svg) {\n const wrapperDiv = svg.parentElement?.parentElement;\n if (wrapperDiv) {\n wrapperDiv.removeAttribute('style');\n }\n }\n }}\n src={src}\n {...(title ? { title } : null)}\n style={{ height: `${sizeInPixels}px`, width: `${sizeInPixels}px` }}\n wrapper={wrapper}\n className=\"pointer-events-none block\"\n />\n );\n}\n\nexport default Icon;\n","import type { HotelAmenityId } from '@dx-ui/gql-types';\nimport type { IconNames } from './osc-icon-map';\n\nexport const AmenityIcons: { [key in HotelAmenityId]: (typeof IconNames)[number] } = {\n adjoiningRooms: 'connecting-rooms',\n adventureStays: 'adventure-stays',\n airportShuttle: 'shuttle-service',\n allInclusive: 'all-inclusive',\n beach: 'beach',\n boutique: 'boutique-hotels',\n businessCenter: 'business-centre',\n casino: 'casino',\n concierge: 'concierge',\n connectedRoom: 'remote',\n digitalKey: 'digital-key',\n dining: 'dining',\n evCharging: 'ev-charging',\n eveningReception: 'evening-reception',\n eveningSocial: 'evening-reception',\n executiveLounge: 'lounge',\n familyFriendly: 'family',\n fitnessCenter: 'gym',\n freeBreakfast: 'breakfast',\n freeParking: 'parking',\n freeWifi: 'wifi',\n golf: 'golf',\n hotelResidence: 'residence',\n indoorPool: 'pool',\n inRoomKitchen: 'in-room-kitchen',\n luxury: 'luxury',\n meetingRooms: 'meeting',\n newHotel: 'new-hotel',\n nonSmoking: 'no-smoking',\n outdoorPool: 'outdoor-pool',\n petsAllowed: 'pet-friendly',\n petsNotAllowed: 'no-pets',\n resort: 'resort',\n roomService: 'room-service',\n ski: 'ski',\n spa: 'spa',\n streamingTv: 'streaming-tv',\n tennisCourt: 'tennis',\n};\n","import { Icon } from './lib/osc-icon';\nimport type { IconNames } from './lib/osc-icon-map';\n\nexport * from './lib/osc-icon';\nexport * from './lib/osc-icon-map';\nexport * from './lib/osc-brand-icon-map';\nexport * from './lib/osc-amenity-icon-map';\n\nexport type IconName = (typeof IconNames)[number];\n\nexport default Icon;\n","import type { Side } from '@dx-ui/osc-popup';\nimport { PopupButton, PopupContent, Popup, usePopup } from '@dx-ui/osc-popup';\nimport { ControlClose } from '@dx-ui/osc-controls';\nimport { useTranslation } from 'next-i18next';\nimport { useRef } from 'react';\nimport { Icon } from '@dx-ui/osc-icon';\n\nexport type InfoPopup = {\n label?: string;\n testId?: string;\n onClick?: () => void;\n side?: Side;\n isOpen?: boolean;\n};\n\nexport const InfoPopupContent: React.FC<React.PropsWithChildren<InfoPopup>> = ({\n children,\n testId,\n label: labelProp,\n onClick,\n side,\n}) => {\n const { closePopup } = usePopup();\n const { t } = useTranslation('osc-info-popup');\n const infoIconRef = useRef<HTMLButtonElement>(null);\n const label = labelProp || t('moreInfo');\n\n return (\n <>\n <PopupButton\n className=\"btn btn-primary-text group\"\n data-testid={`popup-button${testId ? `-${testId}` : ''}`}\n ref={infoIconRef}\n onClick={onClick}\n >\n <span className=\"sr-only\">{label}</span>\n <Icon\n name=\"info-circle\"\n variant=\"regular\"\n size=\"md\"\n className=\"size-6 group-focus-within:hidden group-hover:hidden\"\n />\n <Icon\n name=\"info-circle\"\n variant=\"solid\"\n size=\"md\"\n className=\"hidden size-6 group-focus-within:block group-hover:block\"\n />\n </PopupButton>\n <PopupContent\n className=\"w-fit max-w-prose\"\n data-testid={`popup-content${testId ? `-${testId}` : ''}`}\n side={side}\n >\n <div className=\"flex justify-end\">\n <ControlClose label={t('close', { label })} onClick={closePopup} size=\"sm\" />\n </div>\n <div className=\"text-text mt-1 text-left text-sm font-normal\">{children}</div>\n </PopupContent>\n </>\n );\n};\n\nexport const InfoPopup: React.FC<React.PropsWithChildren<InfoPopup>> = ({\n testId,\n children,\n label,\n onClick,\n side,\n ...rest\n}) => (\n <Popup {...rest}>\n <InfoPopupContent label={label} testId={testId} onClick={onClick} side={side}>\n {children}\n </InfoPopupContent>\n </Popup>\n);\n\nexport default InfoPopup;\n","export * from './lib/info-popup';\n","import type * as Types from './types';\n\nimport {\n useQuery,\n useMutation,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n type UseMutationOptions,\n} from '@tanstack/react-query';\n\nexport const Countries_AddressOptionsDocument = {\n operationName: 'countries_AddressOptions',\n operationString: `query countries_AddressOptions($language: String!, $code: String, $type: AddressOptionsAddressType) {\n countries(language: $language, filter: {code: $code}) {\n code\n name\n addressOptions(type: $type) {\n name\n label\n maxLength\n required\n }\n states(sort: {by: name, order: asc}) {\n value: code\n name\n }\n }\n}`,\n originalOpName: 'countries_AddressOptions',\n};\nexport function useCountries_AddressOptionsQuery<\n TData = Types.Countries_AddressOptionsQuery,\n TError = unknown\n>(\n variables: Types.Countries_AddressOptionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Countries_AddressOptionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Countries_AddressOptionsQuery, TError, TData>({\n queryKey: [Countries_AddressOptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideCountries_AddressOptionsQuery(\n queryClient: QueryClient,\n variables: Types.Countries_AddressOptionsQueryVariables,\n options?: FetchQueryOptions<Types.Countries_AddressOptionsQuery>\n) {\n return queryClient.fetchQuery<Types.Countries_AddressOptionsQuery>({\n queryKey: [Countries_AddressOptionsDocument, variables],\n ...options,\n });\n}\n\nexport const GeocodeDocument = {\n operationName: 'geocode',\n operationString: `query geocode($postalCode: String, $language: String!) {\n geocode(language: $language, postalCode: $postalCode) {\n match {\n address {\n city\n state\n }\n }\n }\n}`,\n originalOpName: 'geocode',\n};\nexport function useGeocodeQuery<TData = Types.GeocodeQuery, TError = unknown>(\n variables: Types.GeocodeQueryVariables,\n options?: Omit<UseQueryOptions<Types.GeocodeQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GeocodeQuery, TError, TData>({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocodeQuery(\n queryClient: QueryClient,\n variables: Types.GeocodeQueryVariables,\n options?: FetchQueryOptions<Types.GeocodeQuery>\n) {\n return queryClient.fetchQuery<Types.GeocodeQuery>({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CountriesDocument = {\n operationName: 'brand_countries',\n operationString: `query brand_countries($after: String, $containsHotels: Boolean, $first: Int, $language: String!, $countryFilter: CountryFilterInput, $regionFilter: CountryStateFilterInput, $cityFilter: CountryCityFilterInput, $getStates: Boolean = false, $getCities: Boolean = false, $getMarketing: Boolean = false, $getCCSMarketing: Boolean = false) {\n countries(\n after: $after\n containsHotels: $containsHotels\n filter: $countryFilter\n first: $first\n language: $language\n sort: {by: name}\n ) {\n code\n callingCode\n dataSubjectRights\n marketingConsent @include(if: $getMarketing)\n marketingOptIn @include(if: $getMarketing)\n marketingOptInForHGV @include(if: $getMarketing)\n marketingOptin @include(if: $getCCSMarketing) {\n dataSubjectRights\n marketingOptinRules {\n category\n optIns {\n autoOptIn\n _id\n customerTextExternal\n name\n subscriptionCodes\n termsAndConditionsBook\n termsAndConditionsJoin\n }\n }\n }\n name: displayName\n states(filter: $regionFilter) @include(if: $getStates) {\n name\n code\n personalDataRequest\n value: code\n cities(filter: $cityFilter, sort: {by: name, order: asc}) @include(if: $getCities) {\n name\n value: name\n brandCodes\n }\n }\n cities(filter: $cityFilter, onlyIfNoStates: true, sort: {by: name, order: asc}) @include(if: $getCities) {\n name\n value: name\n brandCodes\n }\n }\n}`,\n originalOpName: 'brand_countries',\n};\nexport function useBrand_CountriesQuery<TData = Types.Brand_CountriesQuery, TError = unknown>(\n variables: Types.Brand_CountriesQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CountriesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CountriesQuery, TError, TData>({\n queryKey: [Brand_CountriesDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CountriesQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CountriesQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CountriesQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CountriesQuery>({\n queryKey: [Brand_CountriesDocument, variables],\n ...options,\n });\n}\n\nexport const CreateGuestDocument = {\n operationName: 'createGuest',\n operationString: `mutation createGuest($input: EnrollInput!, $language: String!, $recaptchaInput: RecaptchaInput) {\n createGuest(input: $input, language: $language, recaptchaInput: $recaptchaInput) {\n data {\n guestId\n hhonorsNumber\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuest',\n};\nexport function useCreateGuestMutation<TError = unknown, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestMutation,\n TError,\n [typeof CreateGuestDocument, Types.CreateGuestMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestMutation,\n TError,\n [typeof CreateGuestDocument, Types.CreateGuestMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Languages_DefaultCountryCodeDocument = {\n operationName: 'languages_defaultCountryCode',\n operationString: `query languages_defaultCountryCode($language: String!) {\n languages(language: $language, filter: {languageCodeOHW: $language}) {\n defaultCountryCode\n }\n}`,\n originalOpName: 'languages_defaultCountryCode',\n};\nexport function useLanguages_DefaultCountryCodeQuery<\n TData = Types.Languages_DefaultCountryCodeQuery,\n TError = unknown\n>(\n variables: Types.Languages_DefaultCountryCodeQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Languages_DefaultCountryCodeQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Languages_DefaultCountryCodeQuery, TError, TData>({\n queryKey: [Languages_DefaultCountryCodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideLanguages_DefaultCountryCodeQuery(\n queryClient: QueryClient,\n variables: Types.Languages_DefaultCountryCodeQueryVariables,\n options?: FetchQueryOptions<Types.Languages_DefaultCountryCodeQuery>\n) {\n return queryClient.fetchQuery<Types.Languages_DefaultCountryCodeQuery>({\n queryKey: [Languages_DefaultCountryCodeDocument, variables],\n ...options,\n });\n}\n","export const AutoComplete = {\n ADDRESSLINE1: 'address-line1',\n ADDRESSLINE2: 'address-line2',\n CITY: 'address-level2',\n COUNTRY: 'country',\n CURRENTPASSWORD: 'current-password',\n EMAIL: 'email',\n FAMILYNAME: 'family-name',\n GIVENNAME: 'given-name',\n NAME: 'name',\n NEWPASSWORD: 'new-password',\n OFF: 'off',\n POSTALCODE: 'postal-code',\n STATE: 'address-level1',\n STREETADDRESS: 'street-address',\n TEL: 'tel',\n TELNATIONAL: 'tel-national',\n USERNAME: 'username',\n CREDITCARD: 'cc-number',\n} as const;\n","import { useFormContext } from 'react-hook-form';\nimport { FormInput, FormSelect } from '@dx-ui/osc-form';\nimport { useCountries_AddressOptionsQuery, useGeocodeQuery } from './queries/generated/queries';\nimport type { AddressOptionsAddressType } from '@dx-ui/gql-types';\nimport { useCallback, useState, useEffect } from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { AutoComplete } from './auto-complete';\n\nconst getAutoComplete = (name: string) => {\n switch (name) {\n case 'addressLine1':\n case 'businessAddressLine1':\n return AutoComplete.ADDRESSLINE1;\n case 'addressLine2':\n case 'businessAddressLine2':\n return AutoComplete.ADDRESSLINE2;\n case 'city':\n return AutoComplete.CITY;\n case 'state':\n return AutoComplete.STATE;\n case 'postalCode':\n return AutoComplete.POSTALCODE;\n default:\n return '';\n }\n};\n\nexport const Modes = {\n Add: 'add',\n Edit: 'edit',\n} as const;\n\nexport type ModesType = (typeof Modes)[keyof typeof Modes];\n\nexport function AddressFields({\n code = 'US',\n language = 'en',\n type = 'nonBusiness',\n groupName,\n componentState = Modes.Add,\n setLoadingGeocode,\n}: {\n code: string;\n groupName?: string;\n language?: string;\n type?: AddressOptionsAddressType;\n componentState?: ModesType;\n setLoadingGeocode?: React.Dispatch<React.SetStateAction<boolean>>;\n}) {\n const [t] = useTranslation('osc-join-form-form');\n const {\n setError,\n clearErrors,\n setValue,\n watch,\n formState: { touchedFields },\n register,\n getFieldState,\n } = useFormContext();\n\n const [isZipInvalid, setIsZipInvalid] = useState(false);\n\n const shouldHideCityAndStateFields =\n code === 'US' && !isZipInvalid && componentState === Modes.Add;\n\n const getFieldKey = useCallback(\n (field: string): string => (groupName ? `${groupName}.${field}` : field),\n [groupName]\n );\n\n const isPostalCodeTouched = getFieldState(getFieldKey('postalCode'))?.isTouched;\n\n const zipCode = watch(getFieldKey('postalCode'));\n const city = watch(getFieldKey('city'));\n const state = watch(getFieldKey('state'));\n\n const { data: addressFieldData } = useCountries_AddressOptionsQuery(\n { language, code, type },\n { enabled: !!code }\n );\n const states = addressFieldData?.countries?.[0]?.states || [];\n\n // Set 'Please select' option as default for state select element\n useEffect(() => {\n if (componentState === Modes.Add) {\n if (!touchedFields[getFieldKey('state')]) {\n setValue(getFieldKey('state'), states.length > 0 ? 'pleaseSelect' : '');\n }\n }\n }, [getFieldKey, setValue, states, touchedFields, componentState]);\n\n const {\n data: geoLocationData,\n isLoading,\n error,\n } = useGeocodeQuery(\n {\n language,\n postalCode: watch(getFieldKey('postalCode')),\n },\n {\n enabled:\n !!/^(?!0{5,})\\d{5}(-\\d{4})?$/.test(zipCode) &&\n code === 'US' &&\n !(componentState === Modes.Edit && !isPostalCodeTouched),\n }\n );\n\n useEffect(() => {\n if (geoLocationData) {\n if (\n !geoLocationData?.geocode?.match?.address?.city ||\n !geoLocationData?.geocode?.match?.address?.state\n ) {\n setIsZipInvalid(true);\n setValue(getFieldKey('city'), '');\n setValue(getFieldKey('state'), 'pleaseSelect');\n setError(getFieldKey('postalCode'), {\n type: 'validate',\n message: t('address.zipCode.error_lookup'),\n });\n } else {\n clearErrors(getFieldKey('postalCode'));\n clearErrors(getFieldKey('city'));\n setValue(getFieldKey('city'), geoLocationData?.geocode?.match?.address?.city);\n setValue(getFieldKey('state'), geoLocationData?.geocode?.match?.address?.state);\n setIsZipInvalid(false);\n }\n } else if (error) {\n const errors = JSON.parse(JSON.stringify(error));\n for (const error of errors.graphQLErrors) {\n if (error?.message === 'Not Found') {\n setIsZipInvalid(true);\n setValue(getFieldKey('city'), '');\n setValue(getFieldKey('state'), 'pleaseSelect');\n setError(getFieldKey('postalCode'), {\n type: 'validate',\n message: t('address.zipCode.error_lookup'),\n });\n }\n }\n }\n }, [geoLocationData, setValue, getFieldKey, setError, t, clearErrors, error]);\n\n useEffect(() => {\n // set state to enable/ disable submit button depending on geocode query\n if (setLoadingGeocode) {\n if (isLoading) setLoadingGeocode(true);\n else setLoadingGeocode(false);\n }\n }, [isLoading, setLoadingGeocode]);\n\n const fields = addressFieldData?.countries?.[0]?.addressOptions;\n if (!fields || !/^\\w{2}$/.test(code)) {\n return null;\n }\n\n return (\n <>\n {fields.map(({ name, label, required }) => {\n if (shouldHideCityAndStateFields && (name === 'state' || name === 'city')) {\n return <input key={getFieldKey(name)} type=\"hidden\" {...register(getFieldKey(name))} />;\n }\n\n if (name === 'state' && states.length > 0) {\n return (\n <FormSelect\n label={label}\n labelClassName=\"w-full\"\n name={getFieldKey(name)}\n key={getFieldKey(name)}\n autoComplete={AutoComplete.STATE}\n optional={!required}\n registerOptions={{\n validate: (value) => {\n if (!required) {\n return true;\n }\n return value === 'pleaseSelect' || !value\n ? code === 'US'\n ? t('address.state.error')\n : t('address.province.error')\n : true;\n },\n }}\n >\n <option disabled hidden value=\"pleaseSelect\">\n {t('pleaseSelect')}\n </option>\n {states.map((state) => (\n <option value={state.value} key={state.value}>\n {state.name}\n </option>\n ))}\n </FormSelect>\n );\n }\n\n return (\n <FormInput\n label={label}\n labelClassName=\"w-full flex-grow\"\n name={getFieldKey(name)}\n autoComplete={getAutoComplete(name)}\n loading={name === 'postalCode' && isLoading}\n optional={!required}\n key={getFieldKey(name)}\n registerOptions={{\n validate: (value: string) => {\n if (!required || (!!value && name !== 'postalCode')) {\n return true;\n }\n switch (name) {\n case 'addressLine1':\n case 'businessAddressLine1':\n if (code === 'JP') {\n return t('address.district.error');\n }\n return t('address.addressLine1.error');\n case 'state':\n return t('address.province.error');\n case 'city':\n if (code === 'JP') {\n return t('address.ward.error');\n }\n return t('address.city.error');\n case 'postalCode':\n if (code === 'US') {\n if (/^(?!0{5,})\\d{5}(-\\d{4})?$/.test(value)) {\n if ((isZipInvalid || !geoLocationData?.geocode) && (!city || !state)) {\n return t('address.zipCode.error_lookup');\n }\n return true;\n }\n if (value === '' && (!city || !state) && type === 'nonBusiness') {\n return t('address.zipCode.invalid');\n }\n return value === ''\n ? t('address.zipCode.error')\n : t('address.zipCode.invalid');\n }\n return required && value ? true : t('address.postalCode.error');\n default:\n if (name === 'businessAddressLine1') return t('address.addressLine1.error');\n if (name === 'businessAddressLine2') return t('address.addressLine2.error');\n return t(`address.${name}.error` as unknown as TemplateStringsArray);\n }\n },\n }}\n {...(name === 'addressLine1' ||\n name === 'businessAddressLine1' ||\n name === 'addressLine2' ||\n name === 'businessAddressLine2' ||\n name === 'city'\n ? { maxLength: 35 }\n : {})}\n />\n );\n })}\n </>\n );\n}\n","import { useId } from 'react';\nimport { get, useFormContext } from 'react-hook-form';\nimport { FormErrorIcon, FormLabel } from '@dx-ui/osc-form';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\n\nimport type { FormInputBase } from '@dx-ui/osc-form';\nimport type { FieldError } from 'react-hook-form';\nimport type { InputHTMLAttributes } from 'react';\n\ntype FormInputPasswordProps<T> = {\n passwordCriteriaClassName?: string;\n} & Omit<T, 'name'>;\n\nexport const FormInputPassword: React.FC<\n React.PropsWithChildren<\n FormInputBase<FormInputPasswordProps<InputHTMLAttributes<HTMLInputElement>>>\n >\n> = ({\n label,\n name,\n required,\n optional,\n registerOptions,\n labelClassName,\n className,\n containerClassName,\n passwordCriteriaClassName,\n ...rest\n}) => {\n const id = useId();\n const helperId = `input-helper-${id}`;\n const [t] = useTranslation('osc-join-form-form');\n const {\n register,\n formState: { errors, touchedFields },\n } = useFormContext();\n\n const fieldError: FieldError = get(errors, name);\n const touchedField = get(touchedFields, name);\n const hasError = !!fieldError;\n\n const passRequirements = [\n { type: 'mustBe', message: t('password.requirements.mustBe') },\n { type: 'containUpper', message: t('password.requirements.containUpper') },\n { type: 'containLower', message: t('password.requirements.containLower') },\n { type: 'containOneNumber', message: t('password.requirements.containOneNumber') },\n ];\n\n return (\n <div className={cx({ [containerClassName as string]: !!containerClassName })}>\n <FormLabel\n label={label}\n required={required}\n optional={optional}\n hasError={hasError}\n className={cx('self-start', {\n [labelClassName as string]: !!labelClassName,\n })}\n >\n <input\n {...rest}\n className={cx('form-input', {\n [className as string]: !!className,\n 'form-error': hasError,\n })}\n aria-invalid={hasError}\n aria-describedby={helperId}\n {...register(name, {\n validate: {\n required: (value: string) =>\n /^(?=.*[A-Z])(?=.*[a-z])((?=.*[0-9])|(?=.*[#?!@$%^&*-])).{8,32}$/.test(value) ||\n t('password.error'),\n mustBe: (value: string) => /.{8,32}/.test(value) || t('password.requirements.mustBe'),\n containUpper: (value: string) =>\n /(?=.*[A-Z])/.test(value) || t('password.requirements.containUpper'),\n containLower: (value: string) =>\n /(?=.*[a-z])/.test(value) || t('password.requirements.containLower'),\n containOneNumber: (value: string) =>\n /(?=.*[0-9])|(?=.*[#?!@$%^&*-])/.test(value) ||\n t('password.requirements.containOneNumber'),\n },\n ...registerOptions,\n })}\n />\n </FormLabel>\n <ul\n id={helperId}\n className={cx('mt-2 grid gap-2 text-sm md:grid-cols-2', {\n [passwordCriteriaClassName as string]: !!passwordCriteriaClassName,\n })}\n >\n {passRequirements.map(({ message, type }) => {\n const hasRequirementError = fieldError?.types?.[type];\n return (\n <li\n key={`passRequirement-${type}`}\n className={cx('flex items-center space-x-2 rtl:space-x-reverse', {\n 'text-danger': hasRequirementError,\n 'text-success': !hasRequirementError && touchedField,\n })}\n >\n {hasRequirementError && <FormErrorIcon className=\"mt-0.5 shrink-0\" />}\n {!hasRequirementError && !touchedField && (\n <svg\n role=\"img\"\n aria-hidden\n viewBox=\"-2 0 8 8\"\n height=\"16\"\n width=\"16\"\n className=\"mt-0.5 shrink-0\"\n >\n <circle cx=\"4\" cy=\"4\" r=\"1\" fill=\"#1D1D1D\" />\n </svg>\n )}\n {!hasRequirementError && touchedField && (\n <svg\n role=\"img\"\n aria-hidden\n viewBox=\"0 -1 8 7\"\n width=\"16\"\n height=\"16\"\n className=\"mt-0.5 shrink-0\"\n >\n <path\n d=\"M1 3l2 2 4-5\"\n stroke=\"#1A9448\"\n fill=\"none\"\n fillRule=\"evenodd\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n <span>{message}</span>\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n","export const email =\n /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9-]{2,}$/;\nexport const phone = /^[0-9-()\\s]{7,15}$/;\nexport const postalCode =\n /^(?!0{5,})(?:[ \\x2D0-9A-Za-z\\xA0\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2000-\\u200A\\u202F\\u205F\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3000\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A]){2,10}$/;\nexport const country = /^[A-Z]{2}$/;\n","import { FormError, FormHelpMessage, FormLabel } from '@dx-ui/osc-form';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { useId, useMemo } from 'react';\nimport { get, useFormContext } from 'react-hook-form';\n\nimport { AutoComplete } from './auto-complete';\nimport { phone } from './form-validation-regex';\n\nimport type { FieldError } from 'react-hook-form';\nimport type { Brand_CountriesQuery } from './queries/generated/types';\n\ntype Options = Brand_CountriesQuery['countries'][number];\n\ntype Props = {\n containerClassName?: string;\n classname?: string;\n defaultValue?: string;\n label?: string;\n labelClassName?: string;\n loading?: boolean;\n options: Options[];\n required?: boolean;\n personalInformationPage?: boolean;\n name?: string;\n addDefaultOption?: boolean;\n isDisabled?: boolean;\n phoneCountryError?: string;\n};\n\nexport const FormInputPhone: React.FC<React.PropsWithChildren<Props>> = ({\n required,\n options,\n containerClassName,\n classname,\n labelClassName,\n defaultValue,\n label,\n loading,\n personalInformationPage,\n name = 'phone',\n addDefaultOption,\n isDisabled,\n phoneCountryError,\n}) => {\n const id = useId();\n const helperId = `input-helper-${id}`;\n const helperPhoneId = `input-helper-phone-${id}`;\n const errorId = `input-error-${id}`;\n const [t] = useTranslation('osc-join-form-form');\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const phoneNumberFieldError: FieldError = get(errors, `${name}.phoneNumber`);\n const phoneCountryFieldError: FieldError = get(errors, `${name}.phoneCountry`);\n const hasError = !!phoneNumberFieldError || !!phoneCountryFieldError;\n\n const getOptions = useMemo(\n () =>\n options?.map(({ name, code, callingCode }) => (\n <option\n key={`option-${code}`}\n value={`${callingCode}${code}`}\n {...(`${callingCode}${code}` === defaultValue ? { selected: true } : {})}\n >{`+${callingCode} ${name}`}</option>\n )),\n [defaultValue, options]\n );\n\n return (\n <div\n className={cx({\n [containerClassName as string]: !!containerClassName,\n })}\n >\n <div\n className={cx('flex flex-col gap-y-4', {\n 'lg:hidden': personalInformationPage,\n hidden: !personalInformationPage,\n })}\n >\n <FormLabel\n label={t('phone.phoneCountryLabel')}\n required={required}\n hasError={!!phoneCountryFieldError}\n className={cx({\n [labelClassName as string]: !!labelClassName,\n })}\n >\n <span className={cx('flex flex-col gap-y-4')}>\n <select\n defaultValue={defaultValue}\n autoComplete={AutoComplete.COUNTRY}\n className={cx('form-select w-1/3 overflow-hidden focus:relative focus:z-0', {\n 'w-1/3': !personalInformationPage,\n 'w-full lg:w-1/3': personalInformationPage,\n 'form-error': !!phoneCountryFieldError,\n disabled: loading,\n [classname as string]: !!classname,\n })}\n disabled={loading}\n data-testid=\"phone.phoneCountry\"\n aria-invalid={!!phoneCountryFieldError}\n aria-describedby={helperId}\n {...register(`${name}.phoneCountry`, {\n required: { value: true, message: t('phone.phoneCountryError') },\n })}\n >\n {addDefaultOption ? (\n <option key=\"selectCountry\" value=\"\" disabled>\n {t('phone.phoneCountrySelectOption')}\n </option>\n ) : null}\n\n {options?.map(({ name, code, callingCode }) => (\n <option\n key={`option-${code}`}\n value={`${callingCode}${code}`}\n >{`+${callingCode} ${name}`}</option>\n ))}\n </select>\n </span>\n </FormLabel>\n {phoneCountryFieldError && <FormError id={errorId} error={phoneCountryFieldError} />}\n\n <FormLabel\n label={label || t('phone.label')}\n required={required}\n hasError={!!phoneNumberFieldError}\n className={cx({\n [labelClassName as string]: !!labelClassName,\n })}\n >\n <span className={cx('flex flex-col gap-y-4 lg:flex-row')}>\n <input\n autoComplete={AutoComplete.TEL}\n type=\"tel\"\n className={cx('form-input -ml-0.5 -mt-2 flex-1 focus:relative focus:z-0 lg:mt-0', {\n 'form-error': !!phoneNumberFieldError,\n [classname as string]: !!classname,\n })}\n aria-invalid={!!phoneNumberFieldError}\n aria-describedby={`${errorId} ${helperId}`}\n data-testid=\"phone.phoneNumber\"\n maxLength={15}\n {...register(`${name}.phoneNumber`, {\n required: { value: true, message: t('phone.phoneNumberError') },\n pattern: { value: phone, message: t('phone.phoneNumberError') },\n })}\n />\n </span>\n </FormLabel>\n {phoneNumberFieldError && <FormError id={errorId} error={phoneNumberFieldError} />}\n <FormHelpMessage id={helperId} loading={loading} />\n </div>\n <div className={cx({ 'hidden lg:block': personalInformationPage })}>\n <FormLabel\n label={label || t('phone.label')}\n required={required}\n hasError={hasError}\n className={cx({\n [labelClassName as string]: !!labelClassName,\n })}\n >\n <span\n className={cx('flex', {\n 'flex-row': !personalInformationPage,\n 'flex-col lg:flex-row gap-y-4': personalInformationPage,\n })}\n >\n <select\n defaultValue={defaultValue}\n autoComplete={AutoComplete.COUNTRY}\n className={cx('form-select w-1/3 overflow-hidden focus:relative focus:z-0', {\n 'w-1/3': !personalInformationPage,\n 'w-full lg:w-1/3': personalInformationPage,\n 'form-error': !!phoneCountryFieldError,\n disabled: loading || isDisabled,\n [classname as string]: !!classname,\n })}\n disabled={loading || isDisabled}\n data-testid=\"phone.phoneCountry\"\n aria-invalid={!!phoneCountryFieldError}\n aria-describedby={helperId}\n {...register(`${name}.phoneCountry`, {\n required: {\n value: true,\n message: phoneCountryError ? phoneCountryError : t('phone.phoneCountryError'),\n },\n })}\n >\n {addDefaultOption ? (\n <option key=\"selectCountry\" value=\"\" disabled>\n {t('phone.phoneCountrySelectOption')}\n </option>\n ) : null}\n {getOptions}\n </select>\n\n <input\n autoComplete={AutoComplete.TEL}\n type=\"tel\"\n className={cx('form-input -ml-0.5 flex-1 focus:relative focus:z-0', {\n '-mt-2 lg:mt-0': personalInformationPage,\n 'form-error': !!phoneNumberFieldError,\n [classname as string]: !!classname,\n })}\n aria-invalid={!!phoneNumberFieldError}\n aria-describedby={`${errorId} ${helperPhoneId}`}\n data-testid=\"phone.phoneNumber\"\n maxLength={15}\n {...register(`${name}.phoneNumber`, {\n required: { value: true, message: t('phone.phoneNumberError') },\n pattern: { value: phone, message: t('phone.phoneNumberError') },\n })}\n disabled={isDisabled}\n />\n </span>\n </FormLabel>\n {phoneCountryFieldError && <FormError id={errorId} error={phoneCountryFieldError} />}\n {phoneNumberFieldError && <FormError id={errorId} error={phoneNumberFieldError} />}\n <FormHelpMessage id={helperId} loading={loading} />\n <FormHelpMessage\n id={helperPhoneId}\n loading={loading}\n message={label || t('phone.label')}\n className=\"!hidden\"\n />\n </div>\n </div>\n );\n};\n","import { Markdown } from '@dx-ui/osc-markdown';\nimport type { Brand_CountriesQuery } from './queries/generated/types';\nimport { Link } from '@dx-ui/osc-link';\nimport { FormInput } from '@dx-ui/osc-form';\nimport { useMemo } from 'react';\nimport type { ReactNode } from 'react';\n\nconst Paragraph = ({ children }: { children: ReactNode }) => <p className=\"mb-4\">{children}</p>;\nconst WrappedLink = ({ href, ...rest }: { href: string }) => <Link url={href} {...rest} />;\nconst CustomerExternalParagraph = ({ children }: { children: ReactNode }) => (\n <p className=\"!mt-0 ml-8 text-sm\">{children}</p>\n);\n\nexport const MarketingContent = ({\n selectedCountry,\n setMarketingOptinsSelected,\n language,\n origin,\n}: {\n selectedCountry: NonNullable<Brand_CountriesQuery>['countries'][0];\n setMarketingOptinsSelected: React.Dispatch<React.SetStateAction<number[]>>;\n language: string;\n origin: string;\n}) => {\n const marketingOptin = selectedCountry?.marketingOptin;\n const rules = marketingOptin?.marketingOptinRules[0];\n const optIns = useMemo(\n () => rules?.optIns.filter((optIn) => !optIn?.autoOptIn) || [],\n [rules?.optIns]\n );\n const termsAndConditions = useMemo(\n () =>\n rules?.optIns.find((optIn) => optIn?.termsAndConditionsJoin)?.termsAndConditionsJoin ?? '',\n [rules?.optIns]\n );\n\n const handleMarketingOptinChange = (\n event: React.ChangeEvent<HTMLInputElement>,\n index: number\n ) => {\n setMarketingOptinsSelected((prevSelected) => {\n const isChecked = event.target?.checked;\n if (isChecked) {\n return [...prevSelected, index];\n } else {\n return prevSelected.filter((i) => i !== index);\n }\n });\n };\n\n return (\n <>\n {optIns &&\n optIns.map((optIn, index) => {\n const { autoOptIn, customerTextExternal, name } = optIn;\n if (autoOptIn) {\n return null;\n }\n return (\n <section key={optIn._id}>\n <FormInput\n name={`marketing.${index}`}\n label={name}\n type=\"checkbox\"\n labelClassName=\"w-full\"\n optional={true}\n aria-describedby={`marketing-${index}`}\n registerOptions={{\n onChange: (event) => handleMarketingOptinChange(event, index),\n }}\n />\n {customerTextExternal && (\n <Markdown\n language={language}\n origin={origin}\n options={{\n forceBlock: true,\n overrides: {\n p: CustomerExternalParagraph,\n a: {\n component: WrappedLink,\n props: {\n className: 'underline text-primary hover:text-primary-alt text-base',\n isNewWindow: true,\n },\n },\n },\n }}\n >\n {customerTextExternal}\n </Markdown>\n )}\n </section>\n );\n })}\n <Markdown\n origin={origin}\n language={language}\n options={{\n forceBlock: true,\n overrides: {\n p: Paragraph,\n a: {\n component: WrappedLink,\n props: {\n className: 'underline text-primary hover:text-primary-alt text-base',\n isNewWindow: true,\n },\n },\n },\n }}\n >\n {termsAndConditions}\n </Markdown>\n </>\n );\n};\n","import { useFormContext } from 'react-hook-form';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport { FormInput } from '@dx-ui/osc-form';\nimport { Link } from '@dx-ui/osc-link';\nimport { Trans, useTranslation } from 'next-i18next';\n\nimport type { Dispatch, SetStateAction } from 'react';\nimport type { Brand_CountriesQuery } from './queries/generated/types';\n\ntype Props = {\n isUSA: boolean;\n isChina: boolean;\n selectedCountry: Brand_CountriesQuery['countries'][0];\n isMarketingOffersModalOpen: boolean;\n setIsMarketingOffersModalOpen: Dispatch<SetStateAction<boolean>>;\n language: string;\n origin: string;\n};\n\nexport const MarketingContent = ({\n isUSA,\n isChina,\n selectedCountry,\n isMarketingOffersModalOpen,\n setIsMarketingOffersModalOpen,\n language,\n origin,\n}: Props) => {\n const [t] = useTranslation('osc-join-form-join');\n const form = useFormContext();\n\n if (!isUSA) {\n if (selectedCountry?.marketingOptIn !== 'greenMarketingOptIn') {\n return (\n <>\n <FormInput\n name=\"marketingConsent\"\n label={t('marketing.label')}\n type=\"checkbox\"\n labelClassName=\"w-full\"\n optional={true}\n aria-describedby=\"marketing\"\n />\n <p id=\"marketing\" className=\"!mt-0 ml-8 text-sm\">\n <Trans t={t} i18nKey={isChina ? 'marketing_china.agreement' : 'marketing.agreement'}>\n <Link url={`${origin}/${language}/p/global-privacy-statement/`} isNewWindow />\n </Trans>\n </p>\n {/* Hide Offers checkbox - China only */}\n {!isChina ? (\n <>\n <FormInput\n name=\"marketingOffers\"\n label={t('marketing_offers.label')}\n type=\"checkbox\"\n labelClassName=\"w-full\"\n optional={true}\n aria-describedby=\"marketing_offers\"\n />\n <p id=\"marketing_offers\" className=\"!mt-0 ml-8 text-sm\">\n <Trans t={t} i18nKey=\"marketing_offers.agreement\">\n <Link url={`${origin}/${language}/p/global-privacy-statement/`} isNewWindow />\n </Trans>\n </p>\n <FormInput\n name=\"marketingGrandVacations\"\n label={t('marketing_grandVacations.label')}\n type=\"checkbox\"\n labelClassName=\"w-full\"\n optional={true}\n aria-describedby=\"marketing_grandVacations\"\n />\n <p id=\"marketing_grandVacations\" className=\"!mt-0 ml-8 text-sm\">\n <Trans t={t} i18nKey=\"marketing_grandVacations.agreement\">\n <Link\n url=\"https://www.hiltongrandvacations.com/en/privacy-policy.html\"\n isNewWindow\n />\n </Trans>\n </p>\n <ActionDialog\n buttonOptions={{\n cancel: {\n label: t('dialog.decline'),\n },\n confirm: {\n label: t('dialog.agree'),\n },\n }}\n onConfirm={() => setIsMarketingOffersModalOpen(false)}\n onCancel={() => {\n setIsMarketingOffersModalOpen(false);\n form.setValue('marketingOffers', false);\n }}\n title={t('dialog.title')}\n isOpen={isMarketingOffersModalOpen}\n onDismiss={() => {\n setIsMarketingOffersModalOpen(!isMarketingOffersModalOpen);\n form.setValue('marketingOffers', false);\n }}\n size=\"lg\"\n >\n <p>{t('dialog.body')}</p>\n <p className=\"my-4 text-sm\">{t('dialog.disclaimer')}</p>\n </ActionDialog>\n </>\n ) : null}\n <p>{t(isChina ? 'consent_china' : 'consent')}</p>\n <p>\n <Trans t={t} i18nKey={isChina ? 'agreement_china' : 'agreement'}>\n <Link\n url={`/${language}/hilton-honors/terms/`}\n className=\"text-primary hover:text-primary-alt text-base\"\n isNewWindow\n />\n <Link\n url={`${origin}/${language}/p/global-privacy-statement/`}\n className=\"text-primary hover:text-primary-alt text-base\"\n isNewWindow\n />\n </Trans>\n </p>\n </>\n );\n }\n }\n\n return (\n <>\n {selectedCountry?.marketingOptInForHGV && (\n <>\n <FormInput\n name=\"marketingGrandVacations\"\n label={t('marketing_grandVacations.label')}\n type=\"checkbox\"\n labelClassName=\"w-full\"\n optional={true}\n aria-describedby=\"marketing_grandVacations\"\n />\n <p id=\"marketing_grandVacations\" className=\"!mt-0 ml-8 text-sm\">\n <Trans t={t} i18nKey=\"marketing_grandVacations.agreement\">\n <Link url=\"https://www.hiltongrandvacations.com/en/privacy-policy.html\" isNewWindow />\n </Trans>\n </p>\n <p>{t('consent')}</p>\n </>\n )}\n <p>\n <Trans t={t} i18nKey={isUSA ? 'agreement_US' : 'agreement'}>\n <Link\n url={`/${language}/hilton-honors/terms/`}\n className=\"text-primary hover:text-primary-alt text-base\"\n isNewWindow\n />\n <Link\n url={`${origin}/${language}/p/global-privacy-statement/`}\n className=\"text-primary hover:text-primary-alt text-base\"\n isNewWindow\n />\n <Link\n url={`${origin}/${language}/p/global-privacy-statement/#CaliforniaRights`}\n className=\"text-primary hover:text-primary-alt text-base\"\n isNewWindow\n />\n </Trans>\n </p>\n </>\n );\n};\n","import type { JoinFormMetrics } from '../types/join-form-analytics';\n\nexport const sendErrorAnalytics = (\n metrics: JoinFormMetrics,\n formErrors: string[],\n formErrorsMessages: string[]\n) => {\n metrics.setPageInfo('alertBoxText', formErrors);\n metrics.trackEvent('alertBoxText');\n metrics.setFormErrors([{ errors: formErrors.join('|') }]);\n metrics.setFormErrorMessages(formErrorsMessages.join('|'));\n metrics.setProperty('page.attributes.actionDetail', 'formError');\n metrics.trackEvent('formErrorEvent');\n};\n","import { BannerNotification } from '@dx-ui/osc-banner-notification';\nimport { FormErrorIcon, FormInput, FormSelect } from '@dx-ui/osc-form';\nimport { Link } from '@dx-ui/osc-link';\nimport cx from 'classnames';\nimport { Trans, useTranslation } from 'next-i18next';\nimport { useEffect, useState } from 'react';\nimport type { FieldError, SubmitErrorHandler } from 'react-hook-form';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport type { ReactNode } from 'react';\n\nimport { AddressFields } from './address-fields';\nimport { FormInputPassword } from './password-fields';\nimport { FormInputPhone } from './phone-fields';\nimport { MarketingContent as MarketingContentCCS } from './marketing-content-css';\nimport { MarketingContent } from './marketing-content';\n\nimport {\n CreateGuestDocument,\n useBrand_CountriesQuery,\n useCreateGuestMutation,\n useLanguages_DefaultCountryCodeQuery,\n} from './queries/generated/queries';\n\nimport { AutoComplete } from './auto-complete';\nimport type { CreateGuestMutation, CreateGuestMutationVariables } from './queries/generated/types';\nimport { email } from './form-validation-regex';\nimport { Spinner } from '@dx-ui/osc-spinner';\nimport type { PageInfo } from '@dx-ui/config-metrics';\nimport type { JoinFormMetrics } from './types/join-form-analytics';\nimport { sendErrorAnalytics } from './utils/join-form-analytics';\nimport { logError } from '@dx-ui/framework-logger';\nimport { generateError } from '@dx-ui/utilities-generate-error';\nimport unset from 'lodash/unset';\nimport type { DXError } from '@dx-ui/types-graphql';\n\ntype BannerContent = { message: string; type: 'success' | 'error' } | null;\n\nconst GRAPH_ERRORS = {\n WANTS_TOTP: 996,\n TOTP_REMOVED: 995,\n COMMUNICATIONS_ERROR: 1002,\n RESERVATION_LOGIN_ERROR: 22,\n RESERVATIONWITH24HRS_LOGIN_ERROR: 16,\n CONFLICT_WITH_RESOURCE: 409,\n SUCCESSFULL_REGISRATION_DELAYED_CONFIRMATION: 1000,\n} as const;\n\nconst EmailSubscription = {\n PERSONALIZED_OFFERS: 'SGMT',\n HILTON_MARKETING: 'HHPRM',\n GRAND_VACATIONS: 'HGVC',\n HHONORS_EMAIL: 'CUST',\n THIRD_PARTY_MARKETING: '3PROM',\n} as const;\n\nconst USMarketingOptIn = {\n hhonorsSubscriptions: [\n EmailSubscription.HHONORS_EMAIL,\n EmailSubscription.HILTON_MARKETING,\n EmailSubscription.PERSONALIZED_OFFERS,\n EmailSubscription.GRAND_VACATIONS,\n ],\n optOuts: {},\n};\n\ntype PageInfoKeys = keyof PageInfo;\n\nconst FORM_ERRORS_TO_FILTER = ['alertBoxText', 'formError', 'formErrorMessage'] as PageInfoKeys[];\n\nconst oCodes = [\n 'ADAPW',\n 'ANDEW',\n 'BRDEW',\n 'CIHCW',\n 'CNMP',\n 'DSKEW',\n 'DTITW',\n 'ESHCW',\n 'HHHTW',\n 'HHPCW',\n 'HITEW',\n 'HPHCW',\n 'IOSEW',\n 'JNHHW',\n 'NHBHW',\n 'NMUPW',\n 'OHWBW',\n 'OHWE',\n 'OHWGW',\n 'PYHTW',\n 'QQHTW',\n 'RUHCW',\n 'WAHCW',\n 'WFPAW',\n 'JHTNW',\n 'ASPEW',\n 'SMBEW',\n 'PEPEW',\n];\n\nexport type JoinInput = Omit<\n CreateGuestMutationVariables['input'],\n 'username, propCode, country'\n> & {\n country: string;\n marketingOffers: boolean;\n marketingConsent?: boolean;\n marketingGrandVacations?: boolean;\n};\n\nexport interface Props {\n /*\n * Feature toggle on guest, disabled by default\n */\n isMarketabilityCCSEnabled?: boolean;\n language: string;\n /**\n * Enrollment OCode, required\n */\n oCode: string;\n /**\n * Called after successful enrollment\n */\n onSuccess: (enrollResult: CreateGuestMutation) => void;\n /*\n * Metrics object, at a minimum needed these functions\n */\n metrics: JoinFormMetrics;\n\n headline: ReactNode;\n origin: string;\n}\n\nexport function JoinForm({\n isMarketabilityCCSEnabled = false,\n language,\n oCode,\n onSuccess,\n metrics,\n headline,\n origin,\n}: Props) {\n const [t] = useTranslation('osc-join-form-join');\n const { t: tForm } = useTranslation('osc-join-form-form');\n const [bannerContent, setBannerContent] = useState<BannerContent>(null);\n const [marketingOptinsSelected, setMarketingOptinsSelected] = useState<number[]>([]);\n const [isMarketingOffersModalOpen, setIsMarketingOffersModalOpen] = useState(false);\n const { data: defaultCountryCodeData } = useLanguages_DefaultCountryCodeQuery({\n language,\n });\n\n const isJapanesePage = language === 'ja';\n\n const form = useForm<JoinInput>({\n mode: 'onTouched',\n criteriaMode: 'all',\n defaultValues: {\n address: {},\n country: defaultCountryCodeData?.languages?.[0]?.defaultCountryCode || 'US',\n phone: {\n phoneCountry: `1US`,\n },\n },\n });\n\n const { watch, formState, setValue, handleSubmit } = form;\n const { errors, isSubmitted } = formState;\n\n const hasErrors = Object.keys(errors).length > 0;\n\n useEffect(() => {\n if (defaultCountryCodeData?.languages?.[0]?.defaultCountryCode) {\n setValue('country', defaultCountryCodeData?.languages?.[0]?.defaultCountryCode);\n }\n if (isJapanesePage) {\n setValue('phone.phoneCountry', '81JP');\n }\n }, [defaultCountryCodeData, isJapanesePage, setValue]);\n\n const marketingOffersValue = watch('marketingOffers');\n useEffect(() => {\n if (marketingOffersValue) {\n return setIsMarketingOffersModalOpen(true);\n }\n }, [marketingOffersValue]);\n\n const hasPasswordFields = oCodes?.includes(oCode);\n\n const [loadingGeocode, setLoadingGeocode] = useState(false);\n\n const { data, isLoading: isLoadingCountries } = useBrand_CountriesQuery({\n language,\n getMarketing: true,\n getCCSMarketing: isMarketabilityCCSEnabled,\n countryFilter: { prohibited: false },\n });\n\n const createGuest = useCreateGuestMutation();\n\n const countries =\n [...(data?.countries || [])].sort((a, b) => Intl.Collator(language).compare(a.name, b.name)) ||\n [];\n\n const selectedCountry = countries.find(({ code }) => code === watch('country'))!;\n const marketingOptIns = selectedCountry?.marketingOptin?.marketingOptinRules?.[0]?.optIns;\n\n const isChina = selectedCountry?.code === 'CN';\n const isUSA = selectedCountry?.code === 'US';\n\n const getErrors = () => {\n const elements: ReactNode[] = [];\n Object.entries(errors).forEach(([key, value]) => {\n if (value.message) {\n const message = value.message;\n elements.push(<li key={`joinPageErrorMsg${key}`}>{message}</li>);\n }\n\n // need to go in one level deeper\n Object.entries(value).forEach(([innerKey, innerValue]) => {\n if ((innerValue as FieldError).message) {\n const message = (innerValue as FieldError).message;\n elements.push(<li key={`joinPageErrorMsg${innerKey}`}>{message}</li>);\n }\n });\n });\n return elements;\n };\n\n const updateCreateGuestMutation = ({\n address,\n email,\n name,\n password,\n phone,\n country,\n marketingGrandVacations,\n marketingOffers,\n marketingConsent,\n }: JoinInput) => {\n let hhonorsSubscriptions: string[] = [];\n if (isMarketabilityCCSEnabled) {\n const marketgOptinsAutoEnrolled = marketingOptIns?.filter((optin) => optin?.autoOptIn);\n if (marketgOptinsAutoEnrolled && marketgOptinsAutoEnrolled.length) {\n hhonorsSubscriptions = marketgOptinsAutoEnrolled.flatMap(\n (optin) => optin.subscriptionCodes\n );\n }\n if (marketingOptinsSelected.length && marketingOptIns && marketingOptIns.length) {\n marketingOptinsSelected.forEach((i) => {\n const codes = marketingOptIns[i]?.subscriptionCodes || [];\n const list = [...hhonorsSubscriptions, ...codes];\n hhonorsSubscriptions = [...list];\n });\n }\n } else {\n const isGreenMarketingOptIn = selectedCountry?.marketingOptIn === 'greenMarketingOptIn';\n if (isGreenMarketingOptIn) {\n hhonorsSubscriptions = [\n ...hhonorsSubscriptions,\n EmailSubscription.PERSONALIZED_OFFERS,\n EmailSubscription.HILTON_MARKETING,\n ];\n if (selectedCountry?.marketingOptInForHGV) {\n marketingGrandVacations && hhonorsSubscriptions.push(EmailSubscription.GRAND_VACATIONS);\n } else {\n hhonorsSubscriptions.push(EmailSubscription.GRAND_VACATIONS);\n }\n } else {\n marketingOffers && hhonorsSubscriptions.push(EmailSubscription.PERSONALIZED_OFFERS);\n marketingConsent && hhonorsSubscriptions.push(EmailSubscription.HILTON_MARKETING);\n marketingGrandVacations && hhonorsSubscriptions.push(EmailSubscription.GRAND_VACATIONS);\n }\n hhonorsSubscriptions.push(EmailSubscription.HHONORS_EMAIL);\n }\n address.country = country;\n const input: CreateGuestMutationVariables['input'] = {\n address: {\n ...address,\n ...(address.state !== 'address' && { state: address.state }),\n addressType: 'home',\n },\n email,\n enrollSourceCode: oCode,\n name,\n password,\n phone: {\n phoneNumber: phone?.phoneNumber || '',\n phoneCountry: phone?.phoneCountry?.replace(/\\D+/, ''),\n phoneType: 'home',\n },\n preferredLanguage: language === 'id' ? 'en' : language,\n privacyRequested: false,\n subscriptions:\n !isMarketabilityCCSEnabled && isUSA\n ? USMarketingOptIn\n : { hhonorsSubscriptions, optOuts: {} },\n };\n\n return new Promise((_resolve) => {\n createGuest?.mutate([CreateGuestDocument, { language, input }], {\n onSuccess: (data: CreateGuestMutation) => {\n const errorCode = data?.createGuest?.error?.code;\n if (errorCode) {\n switch (errorCode) {\n case GRAPH_ERRORS.SUCCESSFULL_REGISRATION_DELAYED_CONFIRMATION:\n case GRAPH_ERRORS.CONFLICT_WITH_RESOURCE:\n return setBannerContent({\n message: t(`submit_errors.${errorCode}`),\n type: 'error',\n });\n case 997:\n if (\n isJapanesePage &&\n data?.createGuest?.error?.notifications?.some(({ code }) => code === 512)\n ) {\n return setBannerContent({\n message: t(`submit_errors.997`),\n type: 'error',\n });\n }\n return setBannerContent({\n message: t(`submit_errors.500`),\n type: 'error',\n });\n default:\n return setBannerContent({\n message: t(`submit_errors.500`),\n type: 'error',\n });\n }\n }\n\n const hHonorsNumber = data?.createGuest?.data?.hhonorsNumber;\n const encodedName = window.btoa(encodeURIComponent(name.firstName));\n const encodedNum = window.btoa(hHonorsNumber || '');\n const encodedEmail = window.btoa(encodeURIComponent(email.emailAddress));\n const encodedEnroll = window.btoa('true');\n\n sessionStorage.setItem('first_name', encodedName);\n sessionStorage.setItem('hhonors', encodedNum);\n sessionStorage.setItem('email', encodedEmail);\n sessionStorage.setItem('firstEnroll', encodedEnroll);\n onSuccess(data);\n },\n onError: (data) => {\n setBannerContent({\n message: t('submit_errors.500'),\n type: 'error',\n });\n logError('JOIN_FORM', generateError(data));\n },\n });\n });\n };\n\n const handleFormSubmit = (formData: JoinInput) => {\n if (window.digitalData?.page?.pageInfo) {\n FORM_ERRORS_TO_FILTER.forEach((key) => unset(window?.digitalData?.page?.pageInfo, key));\n }\n updateCreateGuestMutation(formData)\n .then((res) => res)\n .catch((error: DXError) => {\n throw error;\n });\n };\n\n const handleInvalidForm: SubmitErrorHandler<JoinInput> = (fieldErrors) => {\n // hasErrors above reads errors before validation is completed, missing new errors on submit.\n // Using onInvalid ensures we get the final, updated errors.\n const hasFieldErrors = Object.keys(fieldErrors).length > 0;\n if (hasFieldErrors) {\n const formErrors = Object.keys(errors).flatMap((key) => key);\n const formErrorsMessages = (Object.keys(errors) as (keyof typeof errors)[])\n .flatMap((key) => errors[key]?.message)\n .filter((val): val is string => Boolean(val));\n\n sendErrorAnalytics(metrics, formErrors, formErrorsMessages);\n }\n };\n\n return (\n <div className=\"container\">\n {bannerContent ? (\n <BannerNotification status={bannerContent?.type}>\n <p className=\"font-bold sm:text-lg\">{bannerContent?.message}</p>\n </BannerNotification>\n ) : null}\n <div className=\"mx-auto my-10 max-w-xl\">\n {headline}\n {hasErrors && isSubmitted && (\n <div\n role=\"alert\"\n data-testid=\"form-errors\"\n className={cx('bg-danger-alt text-danger w-full', {\n 'mb-4 p-4': hasErrors && isSubmitted,\n })}\n >\n <h2 className=\"text-danger flex items-center space-x-2 font-semibold rtl:space-x-reverse\">\n <FormErrorIcon />\n <span>{t('form_error')}</span>\n </h2>\n <ul className=\"text-danger ml-10 rtl:space-x-reverse\">{getErrors()}</ul>\n </div>\n )}\n <FormProvider {...form}>\n <form\n noValidate\n method=\"post\"\n onSubmit={handleSubmit(handleFormSubmit, handleInvalidForm)}\n className=\"flex w-full flex-col space-y-4\"\n >\n <p>{tForm('requiredFields')}</p>\n {isJapanesePage ? <p>{tForm('enterHiraganaCharacters')}</p> : null}\n <FormInput\n name=\"name.firstName\"\n autoComplete={AutoComplete.GIVENNAME}\n label={tForm('firstName.label')}\n labelClassName=\"w-full\"\n optional={false}\n maxLength={18}\n registerOptions={{\n required: { value: true, message: tForm('firstName.error') },\n minLength: { value: 1, message: tForm('firstName.error_minLength') },\n pattern: { value: /^\\D+$/, message: tForm('firstName.error_noDigits') },\n }}\n />\n <FormInput\n name=\"name.lastName\"\n autoComplete={AutoComplete.FAMILYNAME}\n label={tForm('lastName.label')}\n labelClassName=\"w-full\"\n optional={false}\n maxLength={18}\n registerOptions={{\n required: { value: true, message: tForm('lastName.error') },\n minLength: { value: 1, message: tForm('lastName.error_minLength') },\n pattern: { value: /^\\D+$/, message: tForm('lastName.error_noDigits') },\n }}\n />\n\n <FormInputPhone\n options={countries}\n defaultValue=\"1US\"\n loading={isLoadingCountries}\n labelClassName=\"w-full\"\n />\n\n <FormInput\n name=\"email.emailAddress\"\n autoComplete={AutoComplete.EMAIL}\n label={tForm('email.label')}\n type=\"email\"\n labelClassName=\"w-full\"\n optional={false}\n maxLength={64}\n registerOptions={{\n required: { value: true, message: tForm('email.error') },\n pattern: { value: email, message: tForm('email.error') },\n }}\n />\n\n <FormSelect\n autoComplete={AutoComplete.COUNTRY}\n labelClassName=\"w-full\"\n label={tForm('address.country.label')}\n name=\"country\"\n loading={isLoadingCountries}\n disabled={isLoadingCountries}\n >\n {countries.map(({ name, code }) => (\n <option\n key={`option-${code}`}\n value={code}\n {...(code === watch('country') ? { selected: true } : {})}\n >\n {name}\n </option>\n ))}\n </FormSelect>\n\n <AddressFields\n code={watch('country')}\n groupName=\"address\"\n setLoadingGeocode={setLoadingGeocode}\n />\n\n {hasPasswordFields && (\n <>\n <FormInputPassword\n autoComplete={AutoComplete.NEWPASSWORD}\n type=\"password\"\n name=\"password\"\n label={tForm('password.label')}\n labelClassName=\"w-full\"\n />\n <FormInput\n autoComplete={AutoComplete.NEWPASSWORD}\n type=\"password\"\n name=\"confirmPassword\"\n label={tForm('confirmPassword.label')}\n labelClassName=\"w-full\"\n optional={false}\n containerClassName=\"!mb-10\"\n registerOptions={{\n validate: {\n shouldMatch: (value) =>\n (!!value && value === watch('password')) || tForm('confirmPassword.error'),\n },\n }}\n />\n </>\n )}\n <div className=\"space-y-10\">\n {isMarketabilityCCSEnabled ? (\n <MarketingContentCCS\n selectedCountry={selectedCountry}\n setMarketingOptinsSelected={setMarketingOptinsSelected}\n language={language}\n origin={origin}\n />\n ) : (\n <MarketingContent\n isUSA={isUSA}\n isChina={isChina}\n selectedCountry={selectedCountry}\n isMarketingOffersModalOpen={isMarketingOffersModalOpen}\n setIsMarketingOffersModalOpen={setIsMarketingOffersModalOpen}\n language={language}\n origin={origin}\n />\n )}\n\n <button\n type=\"submit\"\n className=\"btn btn-2xl btn-primary w-full\"\n disabled={loadingGeocode || createGuest.isPending}\n >\n {createGuest.isPending ? (\n <>\n {tForm('submitting')} <Spinner className=\"ml-2 inline\" size=\"sm\" />\n </>\n ) : (\n t('submit', { context: null })\n )}\n </button>\n\n <p className=\"text-xs\">\n <Trans t={t} i18nKey=\"termsAndConditions_disclaimer\">\n <Link\n url={`/${language}/hilton-honors/honors-discount-terms/`}\n className=\"text-primary hover:text-primary-alt text-xs\"\n isNewWindow\n />\n </Trans>\n </p>\n <p className=\"!mt-6 text-xs\">{t('wiFi_disclaimer')}</p>\n {(selectedCountry?.marketingConsent || selectedCountry?.marketingOptIn) && (\n <>\n <p className=\"text-text-alt text-xs\">{t('gdprFootnote')}</p>\n <p className=\"text-text-alt !mt-6 text-xs\">{t('gdprFootnote2')}</p>\n </>\n )}\n </div>\n </form>\n </FormProvider>\n </div>\n </div>\n );\n}\n","export * from './join-form';\n","export * from './lib';\n","import cx from 'classnames';\nimport type * as React from 'react';\n\ntype LinkAdChoices = React.SVGProps<SVGSVGElement>;\n\nconst LinkAdChoices: React.FC<React.PropsWithChildren<LinkAdChoices>> = ({\n className,\n width = 14,\n height = 14,\n ...rest\n}) => (\n <svg\n role=\"img\"\n aria-hidden\n viewBox=\"0 0 26 26\"\n width={width}\n height={height}\n className={cx('ms-1 inline-block fill-current', className)}\n data-testid=\"link-ad-choices\"\n {...rest}\n >\n <path d=\"M2.193.663l-.222.008-.21.05-.201.067-.183.087-.172.114-.153.135-.144.162-.126.184-.115.19-.086.232-.077.24-.047.258-.03.278-.008.298v15.981l.009.373.029.345.047.307.066.279.088.24.095.21.124.183.135.154.154.124.164.095.173.068.192.04.2.009.221-.01.221-.029.24-.056.239-.079.259-.095.26-.124.268-.135 1.698-.95.096-.067.115-.087.115-.114.124-.135.117-.155.095-.171.068-.183.047-.2v-.222l-.029-.153-.067-.201-.096-.173-.115-.144-.135-.105-.164-.087-.171-.048-.19-.029-.192.01-.212.03-.117.03-.2.094-.192.068-.181.037-.174.01-.153-.018-.144-.04-.135-.068-.115-.096-.097-.114-.086-.142-.067-.155-.058-.184-.037-.2-.02-.211V5.162l.01-.221.039-.2.047-.183.068-.163.097-.144.104-.117.115-.095.143-.077.144-.049.164-.026h.162l.183.026.192.05.191.076.163.086 10.245 5.853.192.113.154.135.135.125.104.144.087.144.048.146.029.142-.01.152-.027.146-.06.142-.075.145-.116.135-.132.135-.164.115-.183.105-6.331 3.3v-3.876l-.019-.223-.067-.199-.097-.192-.133-.155-.164-.132-.183-.096-.2-.068-.21-.02-.223.02-.2.068-.191.096-.155.132-.134.164-.096.183-.068.2-.018.222v5.488l.018.21.057.182.096.173.126.163.144.144.161.124.185.106.191.086.106.039.144.038.181.02.193.009.21-.03.192-.057.095-.039 9.92-5.382.268-.144.24-.16.212-.156.19-.162.164-.163.134-.173.116-.163.086-.172.059-.182.029-.173v-.183l-.042-.181-.056-.183-.096-.184-.124-.191-.164-.183-.19-.192-.232-.18-.257-.192-.3-.183L3.69 1.094 3.422.95l-.26-.115-.259-.077L2.664.7 2.422.663z\" />\n <path d=\"M8.764 8.51v-.087l-.038-.21-.077-.201-.106-.174-.133-.162-.164-.126-.192-.095-.203-.058-.219-.019h-.087l-.21.039-.201.065-.174.115-.162.135-.124.165-.097.191-.058.2-.02.222v.086l.04.21.067.203.115.171.134.154.162.135.192.095.202.06.221.016h.086l.212-.036.2-.077.172-.106.155-.135.135-.162.095-.192.057-.201z\" />\n </svg>\n);\n\nexport { LinkAdChoices };\nexport default LinkAdChoices;\n","import cx from 'classnames';\nimport type * as React from 'react';\n\ntype LinkNewWindow = React.SVGProps<SVGSVGElement>;\n\nconst LinkNewWindow: React.FC<React.PropsWithChildren<LinkNewWindow>> = ({\n className,\n width = 14,\n height = 14,\n ...rest\n}) => (\n <svg\n role=\"img\"\n aria-hidden\n data-testid=\"link-new-window\"\n viewBox=\"0 0 10 10\"\n width={width}\n height={height}\n className={cx('ms-1 inline-block stroke-current align-[-2px]', className)}\n {...rest}\n >\n <g fill=\"none\">\n <path d=\"M3.6 1.3h5.3v5.3H3.6z\" />\n <path d=\"M1.3 8.8V4.6h2.3v2h1.9v2.2z\" />\n </g>\n </svg>\n);\n\nexport { LinkNewWindow };\nexport default LinkNewWindow;\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\n\nexport function getCIDParam({\n campaignId,\n componentName,\n}: {\n campaignId: string;\n componentName: string;\n}) {\n const digitalData = isBrowser ? window.digitalData : {};\n const brandCode =\n digitalData?.global?.page?.brandCode || digitalData?.page?.category?.brand || '';\n const ddPageType =\n digitalData?.global?.page?.pageType || digitalData?.page?.pageInfo?.pageType || '';\n const ddPrimaryCategory =\n digitalData?.global?.page?.primaryCategory ||\n digitalData?.page?.category?.primaryCategory ||\n '';\n const ddPageDetail1 =\n digitalData?.global?.page?.pageDetail1 || digitalData?.page?.pageInfo?.pageDetail1 || '';\n const ddPageDetail2 =\n digitalData?.global?.page?.pageDetail2 || digitalData?.page?.pageInfo?.pageDetail2 || '';\n\n const pageType = ddPageType ? `,${ddPageType}` : '';\n const pageDetail1 = ddPageDetail1 ? `,${ddPageDetail1}` : '';\n const pageDetail2 = ddPageDetail2 ? `,${ddPageDetail2}` : '';\n const primaryCategory = ddPrimaryCategory ? `,${ddPrimaryCategory}` : '';\n\n return `OH,${brandCode},${campaignId},MULTIPR,${componentName}${pageType}${primaryCategory}${pageDetail1}${pageDetail2}`;\n}\n","import * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport NextLink from 'next/link';\nimport cx from 'classnames';\n\nimport { LinkAdChoices } from './link.ad-choices';\nimport { LinkNewWindow } from './link.new-window';\nimport { getCIDParam } from './link.utils';\nimport { useIsClient } from 'usehooks-ts';\n\nexport type LinkBaseProps = {\n /** jsx icon element to display with link */\n icon?: JSX.Element;\n /**\n * Set the `aria-label` for the link\n */\n adaDescription?: string;\n /**\n * Set the classNames for the anchor element\n */\n anchorClassName?: string;\n children?: React.ReactNode;\n /** required props for dynamic cid param */\n cidParams?: {\n campaignId: string;\n componentName: string;\n };\n /** Set to true if app supports next link routing in Akamai */\n hasNextLinkSupport?: boolean;\n /**\n * Sets the `target` attribute to `_blank`\n */\n isNewWindow?: boolean;\n /**\n * The name of the link\n */\n label?: string;\n /**\n * Set the `href` attribute for the link\n */\n url: string;\n /**\n * Whether or not the new window icon should be visible\n */\n showNewWindowIcon?: boolean;\n /** whether or not the link should be underlined */\n underline?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapper?: any;\n};\n\nexport type Link = LinkBaseProps & Omit<React.ComponentProps<typeof NextLink>, 'href'>;\n\nexport const Link = React.forwardRef<HTMLAnchorElement, Link>((props, forwardedRef) => {\n const {\n adaDescription,\n icon,\n children,\n cidParams: { campaignId, componentName } = {},\n hasNextLinkSupport,\n id,\n isNewWindow,\n target,\n url: urlProp,\n className = 'text-sm text-primary hover:text-primary-alt',\n anchorClassName,\n wrapper: Wrapper,\n showNewWindowIcon = true,\n underline = true,\n ...rest\n } = props;\n useIsClient();\n const { t } = useTranslation('osc-link');\n const isAdChoices = typeof children === 'string' && !!children?.toString().match(/adchoices/i);\n const isTargetBlank = isNewWindow || target === '_blank';\n const linkProps = rest;\n const canUseNextLink = hasNextLinkSupport && urlProp?.startsWith('/');\n const url = urlProp?.startsWith('http') ? new URL(urlProp) : urlProp;\n\n if (adaDescription) {\n linkProps['aria-label'] = isTargetBlank ? `${adaDescription}, ${t('newTab')}` : adaDescription;\n }\n if (isTargetBlank) {\n linkProps.rel = 'noopener noreferrer';\n }\n if (typeof url !== 'string' && campaignId && componentName && !url.searchParams.has('cid')) {\n const cid = getCIDParam({ campaignId, componentName });\n url.searchParams.set('cid', 'CID_VALUE_TO_BE_REPLACED');\n url.href = url.href.replace('CID_VALUE_TO_BE_REPLACED', cid);\n }\n\n const classNames = cx({\n underline,\n [className]: !!className,\n });\n\n const linkContent = React.createElement(\n canUseNextLink ? NextLink : 'a',\n {\n ref: forwardedRef,\n id,\n target: isTargetBlank ? '_blank' : target,\n href: url,\n className: cx(anchorClassName, {\n 'inline-block text-pretty': !anchorClassName,\n }),\n ...linkProps,\n },\n <>\n <span className={classNames}>\n {children}\n {(isAdChoices || isTargetBlank) && isAdChoices ? (\n <LinkAdChoices />\n ) : (\n isTargetBlank && showNewWindowIcon && <LinkNewWindow />\n )}\n {!!icon && <span aria-hidden>{icon}</span>}\n </span>\n {isTargetBlank && (\n <span className=\"sr-only\">\n , <span>{t('newTab')}</span>\n </span>\n )}\n </>\n );\n\n // eslint-disable-next-line no-nested-ternary\n return url ? (\n Wrapper ? (\n <Wrapper href={url} {...props}>\n {linkContent}\n </Wrapper>\n ) : (\n linkContent\n )\n ) : (\n <div\n ref={forwardedRef as unknown as React.LegacyRef<HTMLDivElement>}\n className={classNames}\n id={id}\n aria-hidden={rest['aria-hidden']}\n >\n {children}\n </div>\n );\n});\n\nLink.displayName = 'Link';\n\nexport default Link;\n","export * from './lib/link';\nexport * from './lib/link.ad-choices';\nexport * from './lib/link.new-window';\n","import n,{createContext as r,useContext as i}from\"react\";let e=r(void 0);function a(){return i(e)}function l({value:t,children:o}){return n.createElement(e.Provider,{value:t},o)}export{l as DisabledProvider,a as useDisabled};\n","function t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};\n","import{microTask as i}from'./micro-task.js';function o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return i(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=o();return e(t),this.add(()=>t.dispose())},add(e){return n.includes(e)||n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}export{o as disposables};\n","import{useEffect as s,useState as o}from\"react\";import{disposables as t}from'../utils/disposables.js';function p(){let[e]=o(t);return s(()=>()=>e.dispose(),[e]),e}export{p as useDisposables};\n","function e(i={},s=null,t=[]){for(let[r,n]of Object.entries(i))o(t,f(s,r),n);return t}function f(i,s){return i?i+\"[\"+s+\"]\":s}function o(i,s,t){if(Array.isArray(t))for(let[r,n]of t.entries())o(i,f(s,r.toString()),n);else t instanceof Date?i.push([s,t.toISOString()]):typeof t==\"boolean\"?i.push([s,t?\"1\":\"0\"]):typeof t==\"string\"?i.push([s,t]):typeof t==\"number\"?i.push([s,`${t}`]):t==null?i.push([s,\"\"]):e(t,s,i)}function p(i){var t,r;let s=(t=i==null?void 0:i.form)!=null?t:i.closest(\"form\");if(s){for(let n of s.elements)if(n!==i&&(n.tagName===\"INPUT\"&&n.type===\"submit\"||n.tagName===\"BUTTON\"&&n.type===\"submit\"||n.nodeName===\"INPUT\"&&n.type===\"image\")){n.click();return}(r=s.requestSubmit)==null||r.call(s)}}export{p as attemptSubmit,e as objectToFormEntries};\n","function t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}export{t as classNames};\n","function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n","import E,{Fragment as b,cloneElement as j,createElement as v,forwardRef as S,isValidElement as w,useCallback as x,useRef as k}from\"react\";import{classNames as N}from'./class-names.js';import{match as M}from'./match.js';var O=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(O||{}),A=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(A||{});function L(){let n=U();return x(r=>C({mergeRefs:n,...r}),[n])}function C({ourProps:n,theirProps:r,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:$;let o=P(r,n);if(t)return F(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return F(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return M(f?0:1,{[0](){return null},[1](){return F({...u,hidden:!0,style:{display:\"none\"}},e,a,l,i)}})}return F(o,e,a,l,i)}function F(n,r={},e,a,s){let{as:t=e,children:l,refName:i=\"ref\",...o}=h(n,[\"unmount\",\"static\"]),y=n.ref!==void 0?{[i]:n.ref}:{},f=typeof l==\"function\"?l(r):l;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(r)),o[\"aria-labelledby\"]&&o[\"aria-labelledby\"]===o.id&&(o[\"aria-labelledby\"]=void 0);let u={};if(r){let d=!1,p=[];for(let[c,T]of Object.entries(r))typeof T==\"boolean\"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u[\"data-headlessui-state\"]=p.join(\" \");for(let c of p)u[`data-${c}`]=\"\"}}if(t===b&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!w(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).length>0)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(m(o)).concat(Object.keys(m(u))).map(d=>` - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>` - ${d}`).join(`\n`)].join(`\n`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p==\"function\"?(...R)=>N(p(...R),o.className):N(p,o.className),T=c?{className:c}:{},g=P(f.props,m(h(o,[\"ref\"])));for(let R in u)R in g&&delete u[R];return j(f,Object.assign({},g,u,y,{ref:s(H(f),y.ref)},T))}return v(t,Object.assign({},h(o,[\"ref\"]),t!==b&&y,t!==b&&u),f)}function U(){let n=k([]),r=x(e=>{for(let a of n.current)a!=null&&(typeof a==\"function\"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return n.current=e,r}}function $(...n){return n.every(r=>r==null)?void 0:r=>{for(let e of n)e!=null&&(typeof e==\"function\"?e(r):e.current=r)}}function P(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];if(r.disabled||r[\"aria-disabled\"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(r,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return r}function _(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];for(let s in e)Object.assign(r,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return r}function K(n){var r;return Object.assign(S(n),{displayName:(r=n.displayName)!=null?r:n.name})}function m(n){let r=Object.assign({},n);for(let e in r)r[e]===void 0&&delete r[e];return r}function h(n,r=[]){let e=Object.assign({},n);for(let a of r)a in e&&delete e[a];return e}function H(n){return E.version.split(\".\")[0]>=\"19\"?n.props.ref:n.ref}export{O as RenderFeatures,A as RenderStrategy,m as compact,K as forwardRefWithAs,_ as mergeProps,L as useRender};\n","import{forwardRefWithAs as i,useRender as p}from'../utils/render.js';let a=\"span\";var s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,\"aria-hidden\":(d&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(d&4)===4&&(d&2)!==2&&{display:\"none\"}}};return p()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:\"Hidden\"})}let f=i(l);export{f as Hidden,s as HiddenFeatures};\n","import o,{createContext as H,useContext as E,useEffect as m,useState as u}from\"react\";import{createPortal as g}from\"react-dom\";import{useDisposables as h}from'../hooks/use-disposables.js';import{objectToFormEntries as x}from'../utils/form.js';import{compact as y}from'../utils/render.js';import{Hidden as l,HiddenFeatures as d}from'./hidden.js';let f=H(null);function W(t){let[e,r]=u(null);return o.createElement(f.Provider,{value:{target:e}},t.children,o.createElement(l,{features:d.Hidden,ref:r}))}function c({children:t}){let e=E(f);if(!e)return o.createElement(o.Fragment,null,t);let{target:r}=e;return r?g(o.createElement(o.Fragment,null,t),r):null}function j({data:t,form:e,disabled:r,onReset:n,overrides:F}){let[i,a]=u(null),p=h();return m(()=>{if(n&&i)return p.addEventListener(i,\"reset\",n)},[i,e,n]),o.createElement(c,null,o.createElement(C,{setForm:a,formId:e}),x(t).map(([s,v])=>o.createElement(l,{features:d.Hidden,...y({key:s,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:e,disabled:r,name:s,value:v,...F})})))}function C({setForm:t,formId:e}){return m(()=>{if(e){let r=document.getElementById(e);r&&t(r)}},[t,e]),e?null:o.createElement(l,{features:d.Hidden,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,ref:r=>{if(!r)return;let n=r.closest(\"form\");n&&t(n)}})}export{j as FormFields,W as FormFieldsProvider,c as HoistFormFields};\n","import n,{createContext as d,useContext as i}from\"react\";let e=d(void 0);function u(){return i(e)}function f({id:t,children:r}){return n.createElement(e.Provider,{value:t},r)}export{f as IdProvider,u as useProvidedId};\n","var i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;export{s as env};\n","import{useEffect as f,useLayoutEffect as c}from\"react\";import{env as i}from'../utils/env.js';let n=(e,t)=>{i.isServer?f(e,t):c(e,t)};export{n as useIsoMorphicEffect};\n","import{useRef as t}from\"react\";import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';function s(e){let r=t(e);return o(()=>{r.current=e},[e]),r}export{s as useLatestValue};\n","import a from\"react\";import{useLatestValue as n}from'./use-latest-value.js';let o=function(t){let e=n(t);return a.useCallback((...r)=>e.current(...r),[e])};export{o as useEvent};\n","import{useEffect as l,useRef as i}from\"react\";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=i(t);l(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};\n","\"use client\";import m,{createContext as T,useContext as u,useMemo as c,useState as P}from\"react\";import{useEvent as g}from'../../hooks/use-event.js';import{useId as x}from'../../hooks/use-id.js';import{useIsoMorphicEffect as y}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as E}from'../../hooks/use-sync-refs.js';import{useDisabled as v}from'../../internal/disabled.js';import{forwardRefWithAs as R,useRender as I}from'../../utils/render.js';let a=T(null);a.displayName=\"DescriptionContext\";function f(){let r=u(a);if(r===null){let e=new Error(\"You used a <Description /> component, but it is not inside a relevant parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(e,f),e}return r}function U(){var r,e;return(e=(r=u(a))==null?void 0:r.value)!=null?e:void 0}function w(){let[r,e]=P([]);return[r.length>0?r.join(\" \"):void 0,c(()=>function(t){let i=g(n=>(e(s=>[...s,n]),()=>e(s=>{let o=s.slice(),p=o.indexOf(n);return p!==-1&&o.splice(p,1),o}))),l=c(()=>({register:i,slot:t.slot,name:t.name,props:t.props,value:t.value}),[i,t.slot,t.name,t.props,t.value]);return m.createElement(a.Provider,{value:l},t.children)},[e])]}let S=\"p\";function C(r,e){let d=x(),t=v(),{id:i=`headlessui-description-${d}`,...l}=r,n=f(),s=E(e);y(()=>n.register(i),[i,n.register]);let o=t||!1,p=c(()=>({...n.slot,disabled:o}),[n.slot,o]),D={ref:s,...n.props,id:i};return I()({ourProps:D,theirProps:l,slot:p,defaultTag:S,name:n.name||\"Description\"})}let _=R(C),H=Object.assign(_,{});export{H as Description,U as useDescribedBy,w as useDescriptions};\n","\"use client\";import R,{createContext as k,useContext as h,useMemo as T,useState as D}from\"react\";import{useEvent as v}from'../../hooks/use-event.js';import{useId as _}from'../../hooks/use-id.js';import{useIsoMorphicEffect as A}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as B}from'../../hooks/use-sync-refs.js';import{useDisabled as F}from'../../internal/disabled.js';import{useProvidedId as S}from'../../internal/id.js';import{forwardRefWithAs as M,useRender as H}from'../../utils/render.js';let c=k(null);c.displayName=\"LabelContext\";function P(){let r=h(c);if(r===null){let l=new Error(\"You used a <Label /> component, but it is not inside a relevant parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(l,P),l}return r}function I(r){var a,e,o;let l=(e=(a=h(c))==null?void 0:a.value)!=null?e:void 0;return((o=r==null?void 0:r.length)!=null?o:0)>0?[l,...r].filter(Boolean).join(\" \"):l}function K({inherit:r=!1}={}){let l=I(),[a,e]=D([]),o=r?[l,...a].filter(Boolean):a;return[o.length>0?o.join(\" \"):void 0,T(()=>function(t){let s=v(i=>(e(p=>[...p,i]),()=>e(p=>{let u=p.slice(),d=u.indexOf(i);return d!==-1&&u.splice(d,1),u}))),m=T(()=>({register:s,slot:t.slot,name:t.name,props:t.props,value:t.value}),[s,t.slot,t.name,t.props,t.value]);return R.createElement(c.Provider,{value:m},t.children)},[e])]}let N=\"label\";function G(r,l){var y;let a=_(),e=P(),o=S(),g=F(),{id:t=`headlessui-label-${a}`,htmlFor:s=o!=null?o:(y=e.props)==null?void 0:y.htmlFor,passive:m=!1,...i}=r,p=B(l);A(()=>e.register(t),[t,e.register]);let u=v(L=>{let b=L.currentTarget;if(b instanceof HTMLLabelElement&&L.preventDefault(),e.props&&\"onClick\"in e.props&&typeof e.props.onClick==\"function\"&&e.props.onClick(L),b instanceof HTMLLabelElement){let n=document.getElementById(b.htmlFor);if(n){let E=n.getAttribute(\"disabled\");if(E===\"true\"||E===\"\")return;let x=n.getAttribute(\"aria-disabled\");if(x===\"true\"||x===\"\")return;(n instanceof HTMLInputElement&&(n.type===\"radio\"||n.type===\"checkbox\")||n.role===\"radio\"||n.role===\"checkbox\"||n.role===\"switch\")&&n.click(),n.focus({preventScroll:!0})}}}),d=g||!1,C=T(()=>({...e.slot,disabled:d}),[e.slot,d]),f={ref:p,...e.props,id:t,htmlFor:s,onClick:u};return m&&(\"onClick\"in f&&(delete f.htmlFor,delete f.onClick),\"onClick\"in i&&delete i.onClick),H()({ourProps:f,theirProps:i,slot:C,defaultTag:s?N:\"div\",name:e.name||\"Label\"})}let U=M(G),Q=Object.assign(U,{});export{Q as Label,P as useLabelContext,I as useLabelledBy,K as useLabels};\n","\"use client\";import r,{useMemo as f}from\"react\";import{useId as P}from'../../hooks/use-id.js';import{DisabledProvider as y,useDisabled as u}from'../../internal/disabled.js';import{FormFieldsProvider as D}from'../../internal/form-fields.js';import{IdProvider as v}from'../../internal/id.js';import{forwardRefWithAs as b,useRender as E}from'../../utils/render.js';import{useDescriptions as A}from'../description/description.js';import{useLabels as L}from'../label/label.js';let _=\"div\";function c(d,l){let t=`headlessui-control-${P()}`,[s,p]=L(),[n,a]=A(),m=u(),{disabled:e=m||!1,...i}=d,o=f(()=>({disabled:e}),[e]),F={ref:l,disabled:e||void 0,\"aria-disabled\":e||void 0},T=E();return r.createElement(y,{value:e},r.createElement(p,{value:s},r.createElement(a,{value:n},r.createElement(v,{id:t},T({ourProps:F,theirProps:{...i,children:r.createElement(D,null,typeof i.children==\"function\"?i.children(o):i.children)},slot:o,defaultTag:_,name:\"Field\"})))))}let H=b(c);export{H as Field};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c87311424ea30a05$var$testUserAgent(re) {\n var _window_navigator_userAgentData;\n if (typeof window === 'undefined' || window.navigator == null) return false;\n return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n var _window_navigator_userAgentData;\n return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$var$cached(fn) {\n let res = null;\n return ()=>{\n if (res == null) res = fn();\n return res;\n };\n}\nconst $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n});\nconst $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n});\nconst $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n});\nconst $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n});\nconst $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n});\nconst $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n});\nconst $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n});\nconst $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testUserAgent(/Android/i);\n});\nconst $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n});\n\n\nexport {$c87311424ea30a05$export$9ac100e40613ea10 as isMac, $c87311424ea30a05$export$186c6964ca17d99 as isIPhone, $c87311424ea30a05$export$7bef049ce92e4224 as isIPad, $c87311424ea30a05$export$fedb369cb70207f1 as isIOS, $c87311424ea30a05$export$e1865c3bedcd822b as isAppleDevice, $c87311424ea30a05$export$78551043582a6a98 as isWebKit, $c87311424ea30a05$export$6446a186d09e379e as isChrome, $c87311424ea30a05$export$a11b0059900ceec8 as isAndroid, $c87311424ea30a05$export$b7d78993b74f766d as isFirefox};\n//# sourceMappingURL=platform.module.js.map\n","import {isAndroid as $c87311424ea30a05$export$a11b0059900ceec8} from \"./platform.mjs\";\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n // JAWS/NVDA with Firefox.\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n // to detect TalkBack virtual clicks.\n if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n // Talkback double tap from Windows Firefox touch screen press\n return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\nexport {$6a7db85432448f7f$export$60278871457622de as isVirtualClick, $6a7db85432448f7f$export$29bf1b5f2c56cf63 as isVirtualPointerEvent};\n//# sourceMappingURL=isVirtualEvent.module.js.map\n","const $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n var _el_ownerDocument;\n return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n if (el && 'window' in el && el.window === el) return el;\n const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n return doc.defaultView || window;\n};\n\n\nexport {$431fbd86ca7dc216$export$b204af158042fbac as getOwnerDocument, $431fbd86ca7dc216$export$f21a1ffae260145a as getOwnerWindow};\n//# sourceMappingURL=domHelpers.module.js.map\n","import {isMac as $28AnR$isMac, isVirtualClick as $28AnR$isVirtualClick, getOwnerWindow as $28AnR$getOwnerWindow, getOwnerDocument as $28AnR$getOwnerDocument} from \"@react-aria/utils\";\nimport {useState as $28AnR$useState, useEffect as $28AnR$useEffect} from \"react\";\nimport {useIsSSR as $28AnR$useIsSSR} from \"@react-aria/ssr\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || !(0, $28AnR$isMac)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n if ($507fabe10e71c6fb$var$isValidKey(e)) {\n $507fabe10e71c6fb$var$currentModality = 'keyboard';\n $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n $507fabe10e71c6fb$var$currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n if ((0, $28AnR$isVirtualClick)(e)) {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n $507fabe10e71c6fb$var$currentModality = 'virtual';\n }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) return;\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n $507fabe10e71c6fb$var$currentModality = 'virtual';\n $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n }\n $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n if (typeof window === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $28AnR$getOwnerWindow)(element))) return;\n const windowObject = (0, $28AnR$getOwnerWindow)(element);\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function() {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.addEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n windowObject.addEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n if (typeof PointerEvent !== 'undefined') {\n documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n } else {\n documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n }\n // Add unmount handler\n windowObject.addEventListener('beforeunload', ()=>{\n $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n }, {\n once: true\n });\n $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n focus: focus\n });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n const windowObject = (0, $28AnR$getOwnerWindow)(element);\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n if (typeof PointerEvent !== 'undefined') {\n documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n } else {\n documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n }\n $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n let loadListener;\n if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n else {\n loadListener = ()=>{\n $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n };\n documentObject.addEventListener('DOMContentLoaded', loadListener);\n }\n return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n $507fabe10e71c6fb$var$currentModality = modality;\n $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n let [modality, setModality] = (0, $28AnR$useState)($507fabe10e71c6fb$var$currentModality);\n (0, $28AnR$useEffect)(()=>{\n let handler = ()=>{\n setModality($507fabe10e71c6fb$var$currentModality);\n };\n $507fabe10e71c6fb$var$changeHandlers.add(handler);\n return ()=>{\n $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n };\n }, []);\n return (0, $28AnR$useIsSSR)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n var _e_target;\n const IHTMLInputElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n const IHTMLElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n const IKeyboardEvent = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent;\n isTextInput = isTextInput || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(e === null || e === void 0 ? void 0 : (_e_target = e.target) === null || _e_target === void 0 ? void 0 : _e_target.type) || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLTextAreaElement || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLElement && (e === null || e === void 0 ? void 0 : e.target.isContentEditable);\n return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n let [isFocusVisibleState, setFocusVisible] = (0, $28AnR$useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n setFocusVisible(isFocusVisible);\n }, [\n isTextInput\n ], {\n isTextInput: isTextInput\n });\n return {\n isFocusVisible: isFocusVisibleState\n };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n (0, $28AnR$useEffect)(()=>{\n let handler = (modality, e)=>{\n if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n };\n $507fabe10e71c6fb$var$changeHandlers.add(handler);\n return ()=>{\n $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\n\nexport {$507fabe10e71c6fb$export$d90243b58daecda7 as hasSetupGlobalListeners, $507fabe10e71c6fb$export$2f1888112f558a7d as addWindowFocusTracking, $507fabe10e71c6fb$export$b9b3dfddab17db27 as isFocusVisible, $507fabe10e71c6fb$export$630ff653c5ada6a9 as getInteractionModality, $507fabe10e71c6fb$export$8397ddfc504fdb9a as setInteractionModality, $507fabe10e71c6fb$export$98e20ec92f614cfe as useInteractionModality, $507fabe10e71c6fb$export$ffd9e5021c1fb2d6 as useFocusVisible, $507fabe10e71c6fb$export$ec71b4b83ac08ec3 as useFocusVisibleListener};\n//# sourceMappingURL=useFocusVisible.module.js.map\n","import $HgANd$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, $HgANd$react).useLayoutEffect : ()=>{};\n\n\nexport {$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=useLayoutEffect.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useRef as $lmaYr$useRef, useCallback as $lmaYr$useCallback} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n const ref = (0, $lmaYr$useRef)(null);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n ref.current = fn;\n }, [\n fn\n ]);\n // @ts-ignore\n return (0, $lmaYr$useCallback)((...args)=>{\n const f = ref.current;\n return f === null || f === void 0 ? void 0 : f(...args);\n }, []);\n}\n\n\nexport {$8ae05eaa5c114e9c$export$7f54fc3180508a52 as useEffectEvent};\n//# sourceMappingURL=useEffectEvent.module.js.map\n","import {useRef as $6dfIe$useRef, useCallback as $6dfIe$useCallback} from \"react\";\nimport {useLayoutEffect as $6dfIe$useLayoutEffect, useEffectEvent as $6dfIe$useEffectEvent} from \"@react-aria/utils\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $8a9cb279dc87e130$export$905e7fc544a71f36 {\n isDefaultPrevented() {\n return this.nativeEvent.defaultPrevented;\n }\n preventDefault() {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n stopPropagation() {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = ()=>true;\n }\n isPropagationStopped() {\n return false;\n }\n persist() {}\n constructor(type, nativeEvent){\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target;\n this.currentTarget = nativeEvent.currentTarget;\n this.relatedTarget = nativeEvent.relatedTarget;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n let stateRef = (0, $6dfIe$useRef)({\n isFocused: false,\n observer: null\n });\n // Clean up MutationObserver on unmount. See below.\n (0, $6dfIe$useLayoutEffect)(()=>{\n const state = stateRef.current;\n return ()=>{\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n let dispatchBlur = (0, $6dfIe$useEffectEvent)((e)=>{\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n });\n // This function is called during a React onFocus event.\n return (0, $6dfIe$useCallback)((e)=>{\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n stateRef.current.isFocused = true;\n let target = e.target;\n let onBlurHandler = (e)=>{\n stateRef.current.isFocused = false;\n if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.\n dispatchBlur(new $8a9cb279dc87e130$export$905e7fc544a71f36('blur', e));\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n target.addEventListener('focusout', onBlurHandler, {\n once: true\n });\n stateRef.current.observer = new MutationObserver(()=>{\n if (stateRef.current.isFocused && target.disabled) {\n var _stateRef_current_observer;\n (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect();\n let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', {\n relatedTarget: relatedTargetEl\n }));\n target.dispatchEvent(new FocusEvent('focusout', {\n bubbles: true,\n relatedTarget: relatedTargetEl\n }));\n }\n });\n stateRef.current.observer.observe(target, {\n attributes: true,\n attributeFilter: [\n 'disabled'\n ]\n });\n }\n }, [\n dispatchBlur\n ]);\n}\n\n\nexport {$8a9cb279dc87e130$export$905e7fc544a71f36 as SyntheticFocusEvent, $8a9cb279dc87e130$export$715c682d09d639cc as useSyntheticBlurEvent};\n//# sourceMappingURL=utils.module.js.map\n","import {useSyntheticBlurEvent as $8a9cb279dc87e130$export$715c682d09d639cc} from \"./utils.mjs\";\nimport {useCallback as $hf0lj$useCallback} from \"react\";\nimport {getOwnerDocument as $hf0lj$getOwnerDocument} from \"@react-aria/utils\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n let { isDisabled: isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange: onFocusChange } = props;\n const onBlur = (0, $hf0lj$useCallback)((e)=>{\n if (e.target === e.currentTarget) {\n if (onBlurProp) onBlurProp(e);\n if (onFocusChange) onFocusChange(false);\n return true;\n }\n }, [\n onBlurProp,\n onFocusChange\n ]);\n const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n const onFocus = (0, $hf0lj$useCallback)((e)=>{\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n const ownerDocument = (0, $hf0lj$getOwnerDocument)(e.target);\n if (e.target === e.currentTarget && ownerDocument.activeElement === e.target) {\n if (onFocusProp) onFocusProp(e);\n if (onFocusChange) onFocusChange(true);\n onSyntheticFocus(e);\n }\n }, [\n onFocusChange,\n onFocusProp,\n onSyntheticFocus\n ]);\n return {\n focusProps: {\n onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined\n }\n };\n}\n\n\nexport {$a1ea59d68270f0dd$export$f8168d8dd8fd66e6 as useFocus};\n//# sourceMappingURL=useFocus.module.js.map\n","import {useSyntheticBlurEvent as $8a9cb279dc87e130$export$715c682d09d639cc} from \"./utils.mjs\";\nimport {useRef as $3b9Q0$useRef, useCallback as $3b9Q0$useCallback} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n let { isDisabled: isDisabled, onBlurWithin: onBlurWithin, onFocusWithin: onFocusWithin, onFocusWithinChange: onFocusWithinChange } = props;\n let state = (0, $3b9Q0$useRef)({\n isFocusWithin: false\n });\n let onBlur = (0, $3b9Q0$useCallback)((e)=>{\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n state.current.isFocusWithin = false;\n if (onBlurWithin) onBlurWithin(e);\n if (onFocusWithinChange) onFocusWithinChange(false);\n }\n }, [\n onBlurWithin,\n onFocusWithinChange,\n state\n ]);\n let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n let onFocus = (0, $3b9Q0$useCallback)((e)=>{\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n if (!state.current.isFocusWithin && document.activeElement === e.target) {\n if (onFocusWithin) onFocusWithin(e);\n if (onFocusWithinChange) onFocusWithinChange(true);\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [\n onFocusWithin,\n onFocusWithinChange,\n onSyntheticFocus\n ]);\n if (isDisabled) return {\n focusWithinProps: {\n // These should not have been null, that would conflict in mergeProps\n onFocus: undefined,\n onBlur: undefined\n }\n };\n return {\n focusWithinProps: {\n onFocus: onFocus,\n onBlur: onBlur\n }\n };\n}\n\n\nexport {$9ab94262bd0047c7$export$420e68273165f4ec as useFocusWithin};\n//# sourceMappingURL=useFocusWithin.module.js.map\n","import {isFocusVisible as $isWE5$isFocusVisible, useFocusVisibleListener as $isWE5$useFocusVisibleListener, useFocus as $isWE5$useFocus, useFocusWithin as $isWE5$useFocusWithin} from \"@react-aria/interactions\";\nimport {useRef as $isWE5$useRef, useState as $isWE5$useState, useCallback as $isWE5$useCallback} from \"react\";\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n let { autoFocus: autoFocus = false, isTextInput: isTextInput, within: within } = props;\n let state = (0, $isWE5$useRef)({\n isFocused: false,\n isFocusVisible: autoFocus || (0, $isWE5$isFocusVisible)()\n });\n let [isFocused, setFocused] = (0, $isWE5$useState)(false);\n let [isFocusVisibleState, setFocusVisible] = (0, $isWE5$useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n let updateState = (0, $isWE5$useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n let onFocusChange = (0, $isWE5$useCallback)((isFocused)=>{\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [\n updateState\n ]);\n (0, $isWE5$useFocusVisibleListener)((isFocusVisible)=>{\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {\n isTextInput: isTextInput\n });\n let { focusProps: focusProps } = (0, $isWE5$useFocus)({\n isDisabled: within,\n onFocusChange: onFocusChange\n });\n let { focusWithinProps: focusWithinProps } = (0, $isWE5$useFocusWithin)({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n return {\n isFocused: isFocused,\n isFocusVisible: isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n\n\nexport {$f7dceffc5ad7768b$export$4e328f61c538687f as useFocusRing};\n//# sourceMappingURL=useFocusRing.module.js.map\n","import {useState as $AWxnT$useState, useRef as $AWxnT$useRef, useEffect as $AWxnT$useEffect, useMemo as $AWxnT$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(()=>{\n $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n if (typeof document === 'undefined') return;\n if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n else document.addEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n $6179b936705e76d3$var$hoverCount++;\n return ()=>{\n $6179b936705e76d3$var$hoverCount--;\n if ($6179b936705e76d3$var$hoverCount > 0) return;\n if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n else document.removeEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n let { onHoverStart: onHoverStart, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, isDisabled: isDisabled } = props;\n let [isHovered, setHovered] = (0, $AWxnT$useState)(false);\n let state = (0, $AWxnT$useRef)({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n (0, $AWxnT$useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n let { hoverProps: hoverProps, triggerHoverEnd: triggerHoverEnd } = (0, $AWxnT$useMemo)(()=>{\n let triggerHoverStart = (event, pointerType)=>{\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) return;\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n if (onHoverStart) onHoverStart({\n type: 'hoverstart',\n target: target,\n pointerType: pointerType\n });\n if (onHoverChange) onHoverChange(true);\n setHovered(true);\n };\n let triggerHoverEnd = (event, pointerType)=>{\n state.pointerType = '';\n state.target = null;\n if (pointerType === 'touch' || !state.isHovered) return;\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) onHoverEnd({\n type: 'hoverend',\n target: target,\n pointerType: pointerType\n });\n if (onHoverChange) onHoverChange(false);\n setHovered(false);\n };\n let hoverProps = {};\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e)=>{\n if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n triggerHoverStart(e, e.pointerType);\n };\n hoverProps.onPointerLeave = (e)=>{\n if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n };\n } else {\n hoverProps.onTouchStart = ()=>{\n state.ignoreEmulatedMouseEvents = true;\n };\n hoverProps.onMouseEnter = (e)=>{\n if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, 'mouse');\n state.ignoreEmulatedMouseEvents = false;\n };\n hoverProps.onMouseLeave = (e)=>{\n if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, 'mouse');\n };\n }\n return {\n hoverProps: hoverProps,\n triggerHoverEnd: triggerHoverEnd\n };\n }, [\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled,\n state\n ]);\n (0, $AWxnT$useEffect)(()=>{\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) triggerHoverEnd({\n currentTarget: state.target\n }, state.pointerType);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled\n ]);\n return {\n hoverProps: hoverProps,\n isHovered: isHovered\n };\n}\n\n\nexport {$6179b936705e76d3$export$ae780daf29e6d456 as useHover};\n//# sourceMappingURL=useHover.module.js.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n return () => {\n var _a, _b, _c, _d;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%câ± ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n (_d = opts == null ? void 0 : opts.onChange) == null ? void 0 : _d.call(opts, result);\n return result;\n };\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(element.getBoundingClientRect());\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(element.getBoundingClientRect());\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return Math.round(\n element.getBoundingClientRect()[instance.options.horizontal ? \"width\" : \"height\"]\n );\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollToIndexTimeoutId = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n this._measureElement(entry.target, entry);\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: true,\n useAnimationFrameWithResizeObserver: false,\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this.maybeNotify();\n })\n );\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled) => {\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n return [];\n }\n if (this.measurementsCache.length === 0) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n const measurements = this.measurementsCache.slice(0, min);\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n const lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],\n (measurements, outerSize, scrollOffset) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const index = this.indexFromElement(node);\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const key = item.key;\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if (node.isConnected) {\n this.resizeItem(index, this.options.measureElement(node, entry, this));\n }\n };\n this.resizeItem = (index, size) => {\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getOffsetForAlignment = (toOffset, align) => {\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (toOffset >= scrollOffset + size) {\n align = \"end\";\n }\n }\n if (align === \"end\") {\n toOffset -= size;\n }\n const scrollSizeProp = this.options.horizontal ? \"scrollWidth\" : \"scrollHeight\";\n const scrollSize = this.scrollElement ? \"document\" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;\n const maxOffset = scrollSize - size;\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.measurementsCache[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n const centerOffset = item.start - this.options.scrollPaddingStart + (item.size - size) / 2;\n switch (align) {\n case \"center\":\n return [this.getOffsetForAlignment(centerOffset, align), align];\n case \"end\":\n return [\n this.getOffsetForAlignment(\n item.end + this.options.scrollPaddingEnd,\n align\n ),\n align\n ];\n default:\n return [\n this.getOffsetForAlignment(\n item.start - this.options.scrollPaddingStart,\n align\n ),\n align\n ];\n }\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.cancelScrollToIndex = () => {\n if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {\n this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);\n this.scrollToIndexTimeoutId = null;\n }\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n const offsetAndAlign = this.getOffsetForIndex(index, initialAlign);\n if (!offsetAndAlign) return;\n const [offset, align] = offsetAndAlign;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n if (behavior !== \"smooth\" && this.isDynamicMode() && this.targetWindow) {\n this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {\n this.scrollToIndexTimeoutId = null;\n const elementInDOM = this.elementsCache.has(\n this.options.getItemKey(index)\n );\n if (elementInDOM) {\n const [latestOffset] = notUndefined(\n this.getOffsetForIndex(index, align)\n );\n if (!approxEqual(latestOffset, this.getScrollOffset())) {\n this.scrollToIndex(index, { align, behavior });\n }\n } else {\n this.scrollToIndex(index, { align, behavior });\n }\n });\n }\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else {\n end = this.options.lanes === 1 ? ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0 : Math.max(\n ...measurements.slice(-this.options.lanes).map((m) => m.end)\n );\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset\n}) {\n const count = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);\n let endIndex = startIndex;\n while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { observeElementRect, observeElementOffset, elementScroll, observeWindowRect, observeWindowOffset, windowScroll, Virtualizer } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase(options) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(\n () => new Virtualizer(resolvedOptions)\n );\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n","import{env as n}from'./env.js';function u(r){return n.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}export{u as getOwnerDocument};\n","import{useRef as a,useState as m}from\"react\";import{getOwnerDocument as d}from'../utils/owner.js';import{useDisposables as g}from'./use-disposables.js';import{useEvent as u}from'./use-event.js';function E(e){let t=e.width/2,n=e.height/2;return{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function P(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function w({disabled:e=!1}={}){let t=a(null),[n,l]=m(!1),r=g(),o=u(()=>{t.current=null,l(!1),r.dispose()}),f=u(s=>{if(r.dispose(),t.current===null){t.current=s.currentTarget,l(!0);{let i=d(s.currentTarget);r.addEventListener(i,\"pointerup\",o,!1),r.addEventListener(i,\"pointermove\",c=>{if(t.current){let p=E(c);l(P(p,t.current.getBoundingClientRect()))}},!1),r.addEventListener(i,\"pointercancel\",o,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:f,onPointerUp:o,onClick:o}}}export{w as useActivePress};\n","import{useCallback as n}from\"react\";function l(e,r){return e!==null&&r!==null&&typeof e==\"object\"&&typeof r==\"object\"&&\"id\"in e&&\"id\"in r?e.id===r.id:e===r}function u(e=l){return n((r,t)=>{if(typeof e==\"string\"){let o=e;return(r==null?void 0:r[o])===(t==null?void 0:t[o])}return e(r,t)},[e])}export{u as useByComparator};\n","import{useRef as o,useState as f}from\"react\";import{useEvent as a}from'./use-event.js';function T(l,r,c){let[i,s]=f(c),e=l!==void 0,t=o(e),u=o(!1),d=o(!1);return e&&!t.current&&!u.current?(u.current=!0,t.current=e,console.error(\"A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.\")):!e&&t.current&&!d.current&&(d.current=!0,t.current=e,console.error(\"A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.\")),[e?l:i,a(n=>(e||s(n),r==null?void 0:r(n)))]}export{T as useControllable};\n","import{useState as u}from\"react\";function l(e){let[t]=u(e);return t}export{l as useDefaultValue};\n","import{useMemo as o,useReducer as h}from\"react\";import{useIsoMorphicEffect as s}from'./use-iso-morphic-effect.js';function f(e){if(e===null)return{width:0,height:0};let{width:t,height:r}=e.getBoundingClientRect();return{width:t,height:r}}function d(e,t=!1){let[r,u]=h(()=>({}),{}),i=o(()=>f(e),[e,r]);return s(()=>{if(!e)return;let n=new ResizeObserver(u);return n.observe(e),()=>{n.disconnect()}},[e]),t?{width:`${i.width}px`,height:`${i.height}px`}:i}export{d as useElementSize};\n","import { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\n\nfunction _super_prop_base(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _get_prototype_of(object);\n if (object === null) break;\n }\n\n return object;\n}\nexport { _super_prop_base as _ };\n","import { _ as _super_prop_base } from \"./_super_prop_base.js\";\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) _get = Reflect.get;\n else {\n _get = function get(target, property, receiver) {\n var base = _super_prop_base(target, property);\n\n if (!base) return;\n\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) return desc.get.call(receiver || target);\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\nexport { _get as _ };\n","class a extends Map{constructor(t){super();this.factory=t}get(t){let e=super.get(t);return e===void 0&&(e=this.factory(t),this.set(t,e)),e}}export{a as DefaultMap};\n","function a(o,r){let t=o(),n=new Set;return{getSnapshot(){return t},subscribe(e){return n.add(e),()=>n.delete(e)},dispatch(e,...s){let i=r[e].call(t,...s);i&&(t=i,n.forEach(c=>c()))}}}export{a as createStore};\n","import{useSyncExternalStore as e}from\"react\";function o(t){return e(t.subscribe,t.getSnapshot,t.getSnapshot)}export{o as useStore};\n","import{useId as n}from\"react\";import{DefaultMap as f}from'../utils/default-map.js';import{createStore as u}from'../utils/store.js';import{useIsoMorphicEffect as c}from'./use-iso-morphic-effect.js';import{useStore as l}from'./use-store.js';let p=new f(()=>u(()=>[],{ADD(r){return this.includes(r)?this:[...this,r]},REMOVE(r){let e=this.indexOf(r);if(e===-1)return this;let t=this.slice();return t.splice(e,1),t}}));function x(r,e){let t=p.get(e),i=n(),h=l(t);if(c(()=>{if(r)return t.dispatch(\"ADD\",i),()=>t.dispatch(\"REMOVE\",i)},[t,r]),!r)return!1;let s=h.indexOf(i),o=h.length;return s===-1&&(s=o,o+=1),s===o-1}export{x as useIsTopLayer};\n","import{disposables as M}from'../utils/disposables.js';import{getOwnerDocument as b}from'../utils/owner.js';import{useIsTopLayer as L}from'./use-is-top-layer.js';import{useIsoMorphicEffect as T}from'./use-iso-morphic-effect.js';let f=new Map,u=new Map;function h(t){var e;let r=(e=u.get(t))!=null?e:0;return u.set(t,r+1),r!==0?()=>m(t):(f.set(t,{\"aria-hidden\":t.getAttribute(\"aria-hidden\"),inert:t.inert}),t.setAttribute(\"aria-hidden\",\"true\"),t.inert=!0,()=>m(t))}function m(t){var i;let r=(i=u.get(t))!=null?i:1;if(r===1?u.delete(t):u.set(t,r-1),r!==1)return;let e=f.get(t);e&&(e[\"aria-hidden\"]===null?t.removeAttribute(\"aria-hidden\"):t.setAttribute(\"aria-hidden\",e[\"aria-hidden\"]),t.inert=e.inert,f.delete(t))}function y(t,{allowed:r,disallowed:e}={}){let i=L(t,\"inert-others\");T(()=>{var d,c;if(!i)return;let a=M();for(let n of(d=e==null?void 0:e())!=null?d:[])n&&a.add(h(n));let s=(c=r==null?void 0:r())!=null?c:[];for(let n of s){if(!n)continue;let l=b(n);if(!l)continue;let o=n.parentElement;for(;o&&o!==l.body;){for(let p of o.children)s.some(E=>p.contains(E))||a.add(h(p));o=o.parentElement}}return a.dispose},[i,r,e])}export{y as useInertOthers};\n","import{useEffect as o}from\"react\";import{disposables as u}from'../utils/disposables.js';import{useLatestValue as c}from'./use-latest-value.js';function m(s,n,l){let i=c(t=>{let e=t.getBoundingClientRect();e.x===0&&e.y===0&&e.width===0&&e.height===0&&l()});o(()=>{if(!s)return;let t=n===null?null:n instanceof HTMLElement?n:n.current;if(!t)return;let e=u();if(typeof ResizeObserver!=\"undefined\"){let r=new ResizeObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}if(typeof IntersectionObserver!=\"undefined\"){let r=new IntersectionObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}return()=>e.dispose()},[n,i,s])}export{m as useOnDisappear};\n","import{disposables as N}from'./disposables.js';import{match as L}from'./match.js';import{getOwnerDocument as E}from'./owner.js';let f=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\"),p=[\"[data-autofocus]\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var F=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n[n.AutoFocus=64]=\"AutoFocus\",n))(F||{}),T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(T||{}),y=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(y||{});function b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(h||{});function A(e,r=0){var t;return e===((t=E(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(f)},[1](){let u=e;for(;u!==null;){if(u.matches(f))return!0;u=u.parentElement}return!1}})}function G(e){let r=E(e);N().nextFrame(()=>{r&&!A(r.activeElement,0)&&I(e)})}var H=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(H||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function I(e){e==null||e.focus({preventScroll:!0})}let w=[\"textarea\",\"input\"].join(\",\");function O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,w))!=null?t:!1}function _(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function j(e,r){return P(b(),r,{relativeTo:e})}function P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?_(e):e:r&64?S(e):b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&\"current\"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&O(i)&&i.select(),2}export{F as Focus,T as FocusResult,h as FocusableMode,I as focusElement,j as focusFrom,P as focusIn,f as focusableSelector,S as getAutoFocusableElements,b as getFocusableElements,A as isFocusableElement,G as restoreFocusIfNecessary,_ as sortByDomNode};\n","function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};\n","import{useEffect as c}from\"react\";import{useLatestValue as a}from'./use-latest-value.js';function i(t,e,o,n){let u=a(o);c(()=>{if(!t)return;function r(m){u.current(m)}return document.addEventListener(e,r,n),()=>document.removeEventListener(e,r,n)},[t,e,n])}export{i as useDocumentEvent};\n","import{useEffect as a}from\"react\";import{useLatestValue as f}from'./use-latest-value.js';function s(t,e,o,n){let i=f(o);a(()=>{if(!t)return;function r(d){i.current(d)}return window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)},[t,e,n])}export{s as useWindowEvent};\n","import{useCallback as T,useRef as d}from\"react\";import{FocusableMode as y,isFocusableElement as M}from'../utils/focus-management.js';import{isMobile as g}from'../utils/platform.js';import{useDocumentEvent as c}from'./use-document-event.js';import{useIsTopLayer as L}from'./use-is-top-layer.js';import{useLatestValue as b}from'./use-latest-value.js';import{useWindowEvent as P}from'./use-window-event.js';const E=30;function R(p,f,C){let u=L(p,\"outside-click\"),m=b(C),s=T(function(e,n){if(e.defaultPrevented)return;let r=n(e);if(r===null||!r.getRootNode().contains(r)||!r.isConnected)return;let h=function l(o){return typeof o==\"function\"?l(o()):Array.isArray(o)||o instanceof Set?o:[o]}(f);for(let l of h)if(l!==null&&(l.contains(r)||e.composed&&e.composedPath().includes(l)))return;return!M(r,y.Loose)&&r.tabIndex!==-1&&e.preventDefault(),m.current(e,r)},[m,f]),i=d(null);c(u,\"pointerdown\",t=>{var e,n;i.current=((n=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:n[0])||t.target},!0),c(u,\"mousedown\",t=>{var e,n;i.current=((n=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:n[0])||t.target},!0),c(u,\"click\",t=>{g()||i.current&&(s(t,()=>i.current),i.current=null)},!0);let a=d({x:0,y:0});c(u,\"touchstart\",t=>{a.current.x=t.touches[0].clientX,a.current.y=t.touches[0].clientY},!0),c(u,\"touchend\",t=>{let e={x:t.changedTouches[0].clientX,y:t.changedTouches[0].clientY};if(!(Math.abs(e.x-a.current.x)>=E||Math.abs(e.y-a.current.y)>=E))return s(t,()=>t.target instanceof HTMLElement?t.target:null)},!0),P(u,\"blur\",t=>s(t,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{R as useOutsideClick};\n","import{useMemo as t}from\"react\";import{getOwnerDocument as o}from'../utils/owner.js';function n(...e){return t(()=>o(...e),[...e])}export{n as useOwnerDocument};\n","import{useEffect as d}from\"react\";import{useLatestValue as s}from'./use-latest-value.js';function E(n,e,a,t){let i=s(a);d(()=>{n=n!=null?n:window;function r(o){i.current(o)}return n.addEventListener(e,r,t),()=>n.removeEventListener(e,r,t)},[n,e,t])}export{E as useEventListener};\n","import{useRef as r}from\"react\";import{useEvent as u}from'./use-event.js';import{useEventListener as o}from'./use-event-listener.js';function i(e){let n=r({value:\"\",selectionStart:null,selectionEnd:null});return o(e,\"blur\",l=>{let t=l.target;t instanceof HTMLInputElement&&(n.current={value:t.value,selectionStart:t.selectionStart,selectionEnd:t.selectionEnd})}),u(()=>{if(document.activeElement!==e&&e instanceof HTMLInputElement&&e.isConnected){if(e.focus({preventScroll:!0}),e.value!==n.current.value)e.setSelectionRange(e.value.length,e.value.length);else{let{selectionStart:l,selectionEnd:t}=n.current;l!==null&&t!==null&&e.setSelectionRange(l,t)}n.current={value:\"\",selectionStart:null,selectionEnd:null}}})}export{i as useRefocusableInput};\n","import{useMemo as a}from\"react\";function e(t,u){return a(()=>{var n;if(t.type)return t.type;let r=(n=t.as)!=null?n:\"button\";if(typeof r==\"string\"&&r.toLowerCase()===\"button\"||(u==null?void 0:u.tagName)===\"BUTTON\"&&!u.hasAttribute(\"type\"))return\"button\"},[t.type,t.as,u])}export{e as useResolveButtonType};\n","function d(){let r;return{before({doc:e}){var l;let o=e.documentElement,t=(l=e.defaultView)!=null?l:window;r=Math.max(0,t.innerWidth-o.clientWidth)},after({doc:e,d:o}){let t=e.documentElement,l=Math.max(0,t.clientWidth-t.offsetWidth),n=Math.max(0,r-l);o.style(t,\"paddingRight\",`${n}px`)}}}export{d as adjustScrollbarPadding};\n","import{disposables as m}from'../../utils/disposables.js';import{isIOS as u}from'../../utils/platform.js';function d(){return u()?{before({doc:r,d:n,meta:c}){function o(a){return c.containers.flatMap(l=>l()).some(l=>l.contains(a))}n.microTask(()=>{var s;if(window.getComputedStyle(r.documentElement).scrollBehavior!==\"auto\"){let t=m();t.style(r.documentElement,\"scrollBehavior\",\"auto\"),n.add(()=>n.microTask(()=>t.dispose()))}let a=(s=window.scrollY)!=null?s:window.pageYOffset,l=null;n.addEventListener(r,\"click\",t=>{if(t.target instanceof HTMLElement)try{let e=t.target.closest(\"a\");if(!e)return;let{hash:f}=new URL(e.href),i=r.querySelector(f);i&&!o(i)&&(l=i)}catch{}},!0),n.addEventListener(r,\"touchstart\",t=>{if(t.target instanceof HTMLElement)if(o(t.target)){let e=t.target;for(;e.parentElement&&o(e.parentElement);)e=e.parentElement;n.style(e,\"overscrollBehavior\",\"contain\")}else n.style(t.target,\"touchAction\",\"none\")}),n.addEventListener(r,\"touchmove\",t=>{if(t.target instanceof HTMLElement){if(t.target.tagName===\"INPUT\")return;if(o(t.target)){let e=t.target;for(;e.parentElement&&e.dataset.headlessuiPortal!==\"\"&&!(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth);)e=e.parentElement;e.dataset.headlessuiPortal===\"\"&&t.preventDefault()}else t.preventDefault()}},{passive:!1}),n.add(()=>{var e;let t=(e=window.scrollY)!=null?e:window.pageYOffset;a!==t&&window.scrollTo(0,a),l&&l.isConnected&&(l.scrollIntoView({block:\"nearest\"}),l=null)})})}}:{}}export{d as handleIOSLocking};\n","function r(){return{before({doc:e,d:o}){o.style(e.documentElement,\"overflow\",\"hidden\")}}}export{r as preventScroll};\n","import{disposables as s}from'../../utils/disposables.js';import{createStore as i}from'../../utils/store.js';import{adjustScrollbarPadding as l}from'./adjust-scrollbar-padding.js';import{handleIOSLocking as d}from'./handle-ios-locking.js';import{preventScroll as p}from'./prevent-scroll.js';function m(e){let n={};for(let t of e)Object.assign(n,t(n));return n}let a=i(()=>new Map,{PUSH(e,n){var o;let t=(o=this.get(e))!=null?o:{doc:e,count:0,d:s(),meta:new Set};return t.count++,t.meta.add(n),this.set(e,t),this},POP(e,n){let t=this.get(e);return t&&(t.count--,t.meta.delete(n)),this},SCROLL_PREVENT({doc:e,d:n,meta:t}){let o={doc:e,d:n,meta:m(t)},c=[d(),l(),p()];c.forEach(({before:r})=>r==null?void 0:r(o)),c.forEach(({after:r})=>r==null?void 0:r(o))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});a.subscribe(()=>{let e=a.getSnapshot(),n=new Map;for(let[t]of e)n.set(t,t.documentElement.style.overflow);for(let t of e.values()){let o=n.get(t.doc)===\"hidden\",c=t.count!==0;(c&&!o||!c&&o)&&a.dispatch(t.count>0?\"SCROLL_PREVENT\":\"SCROLL_ALLOW\",t),t.count===0&&a.dispatch(\"TEARDOWN\",t)}});export{a as overflows};\n","import{useStore as s}from'../../hooks/use-store.js';import{useIsoMorphicEffect as u}from'../use-iso-morphic-effect.js';import{overflows as t}from'./overflow-store.js';function a(r,e,n=()=>({containers:[]})){let f=s(t),o=e?f.get(e):void 0,i=o?o.count>0:!1;return u(()=>{if(!(!e||!r))return t.dispatch(\"PUSH\",e,n),()=>t.dispatch(\"POP\",e,n)},[r,e]),i}export{a as useDocumentOverflowLockedEffect};\n","import{useDocumentOverflowLockedEffect as l}from'./document-overflow/use-document-overflow.js';import{useIsTopLayer as m}from'./use-is-top-layer.js';function f(e,c,n=()=>[document.body]){let r=m(e,\"scroll-lock\");l(r,c,t=>{var o;return{containers:[...(o=t.containers)!=null?o:[],n]}})}export{f as useScrollLock};\n","import{useRef as o}from\"react\";function t(e){return[e.screenX,e.screenY]}function u(){let e=o([-1,-1]);return{wasMoved(r){let n=t(r);return e.current[0]===n[0]&&e.current[1]===n[1]?!1:(e.current=n,!0)},update(r){e.current=t(r)}}}export{u as useTrackedPointer};\n","import{useCallback as r,useState as b}from\"react\";function c(u=0){let[t,l]=b(u),g=r(e=>l(e),[t]),s=r(e=>l(a=>a|e),[t]),m=r(e=>(t&e)===e,[t]),n=r(e=>l(a=>a&~e),[l]),F=r(e=>l(a=>a^e),[l]);return{flags:t,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}export{c as useFlags};\n","var T,b;import{useRef as c,useState as S}from\"react\";import{disposables as m}from'../utils/disposables.js';import{useDisposables as g}from'./use-disposables.js';import{useFlags as y}from'./use-flags.js';import{useIsoMorphicEffect as A}from'./use-iso-morphic-effect.js';typeof process!=\"undefined\"&&typeof globalThis!=\"undefined\"&&typeof Element!=\"undefined\"&&((T=process==null?void 0:process.env)==null?void 0:T[\"NODE_ENV\"])===\"test\"&&typeof((b=Element==null?void 0:Element.prototype)==null?void 0:b.getAnimations)==\"undefined\"&&(Element.prototype.getAnimations=function(){return console.warn([\"Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.\",\"Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.\",\"\",\"Example usage:\",\"```js\",\"import { mockAnimationsApi } from 'jsdom-testing-mocks'\",\"mockAnimationsApi()\",\"```\"].join(`\n`)),[]});var L=(r=>(r[r.None=0]=\"None\",r[r.Closed=1]=\"Closed\",r[r.Enter=2]=\"Enter\",r[r.Leave=4]=\"Leave\",r))(L||{});function R(t){let n={};for(let e in t)t[e]===!0&&(n[`data-${e}`]=\"\");return n}function x(t,n,e,i){let[r,o]=S(e),{hasFlag:s,addFlag:a,removeFlag:l}=y(t&&r?3:0),u=c(!1),f=c(!1),E=g();return A(()=>{var d;if(t){if(e&&o(!0),!n){e&&a(3);return}return(d=i==null?void 0:i.start)==null||d.call(i,e),C(n,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(e?(a(3),l(4)):(a(4),l(2)))},run(){f.current?e?(l(3),a(4)):(l(4),a(3)):e?l(1):a(1)},done(){var p;f.current&&typeof n.getAnimations==\"function\"&&n.getAnimations().length>0||(u.current=!1,l(7),e||o(!1),(p=i==null?void 0:i.end)==null||p.call(i,e))}})}},[t,e,n,E]),t?[r,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[e,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(t,{prepare:n,run:e,done:i,inFlight:r}){let o=m();return j(t,{prepare:n,inFlight:r}),o.nextFrame(()=>{e(),o.requestAnimationFrame(()=>{o.add(M(t,i))})}),o.dispose}function M(t,n){var o,s;let e=m();if(!t)return e.dispose;let i=!1;e.add(()=>{i=!0});let r=(s=(o=t.getAnimations)==null?void 0:o.call(t).filter(a=>a instanceof CSSTransition))!=null?s:[];return r.length===0?(n(),e.dispose):(Promise.allSettled(r.map(a=>a.finished)).then(()=>{i||n()}),e.dispose)}function j(t,{inFlight:n,prepare:e}){if(n!=null&&n.current){e();return}let i=t.style.transition;t.style.transition=\"none\",e(),t.offsetHeight,t.style.transition=i}export{R as transitionDataAttributes,x as useTransition};\n","import{useEffect as T,useRef as E}from\"react\";import{getOwnerDocument as d}from'../utils/owner.js';import{useIsoMorphicEffect as N}from'./use-iso-morphic-effect.js';function F(c,{container:e,accept:t,walk:r}){let o=E(t),l=E(r);T(()=>{o.current=t,l.current=r},[t,r]),N(()=>{if(!e||!c)return;let n=d(e);if(!n)return;let f=o.current,p=l.current,i=Object.assign(m=>f(m),{acceptNode:f}),u=n.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,i,!1);for(;u.nextNode();)p(u.currentNode)},[e,c,o,l])}export{F as useTreeWalker};\n","import{useEffect as f,useRef as s}from\"react\";import{useEvent as i}from'./use-event.js';function m(u,t){let e=s([]),r=i(u);f(()=>{let o=[...e.current];for(let[a,l]of t.entries())if(e.current[a]!==l){let n=r(t,o);return e.current=t,n}},[r,...t])}export{m as useWatch};\n","import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n var _activeElement;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n const re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { stopEvent, getDocument, isMouseLikePointerType, contains, activeElement, isSafari, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, getTarget, getPlatform, isTypeableElement, isReactEvent, isRootElement, isEventTargetWithin, isMac, getUserAgent } from '@floating-ui/react/utils';\nimport { floor, evaluate, max, min, round } from '@floating-ui/utils';\nimport { getComputedStyle, isElement, getNodeName, isHTMLElement, getWindow, isLastTraversableNode, getParentNode, isWebKit } from '@floating-ui/utils/dom';\nimport { tabbable, isTabbable } from 'tabbable';\nimport * as ReactDOM from 'react-dom';\nimport { getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst SafeReact = {\n ...React\n};\n\nconst useInsertionEffect = SafeReact.useInsertionEffect;\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= list.length - 1 && isDisabled(list, index, disabledIndices));\n return index;\n}\nfunction getGridNavigatedIndex(elementsRef, _ref) {\n let {\n event,\n orientation,\n loop,\n rtl,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex,\n stopEvent: stop = false\n } = _ref;\n let nextIndex = prevIndex;\n if (event.key === ARROW_UP) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: nextIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n nextIndex = maxIndex;\n } else {\n nextIndex = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_DOWN) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = minIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = floor(prevIndex / cols);\n if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== 0) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n decrement: true,\n disabledIndices\n });\n if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n const lastRow = floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n if (loop && lastRow) {\n nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n nextIndex = prevIndex;\n }\n }\n }\n return nextIndex;\n}\n\n/** For each cell index, gets the item index that occupies that cell */\nfunction buildCellMap(sizes, cols, dense) {\n const cellMap = [];\n let startIndex = 0;\n sizes.forEach((_ref2, index) => {\n let {\n width,\n height\n } = _ref2;\n if (width > cols) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\"[Floating UI]: Invalid grid - item width at index \" + index + \" is greater than grid columns\");\n }\n }\n let itemPlaced = false;\n if (dense) {\n startIndex = 0;\n }\n while (!itemPlaced) {\n const targetCells = [];\n for (let i = 0; i < width; i++) {\n for (let j = 0; j < height; j++) {\n targetCells.push(startIndex + i + j * cols);\n }\n }\n if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) {\n targetCells.forEach(cell => {\n cellMap[cell] = index;\n });\n itemPlaced = true;\n } else {\n startIndex++;\n }\n }\n });\n\n // convert into a non-sparse array\n return [...cellMap];\n}\n\n/** Gets cell index of an item's corner or -1 when index is -1. */\nfunction getCellIndexOfCorner(index, sizes, cellMap, cols, corner) {\n if (index === -1) return -1;\n const firstCellIndex = cellMap.indexOf(index);\n const sizeItem = sizes[index];\n switch (corner) {\n case 'tl':\n return firstCellIndex;\n case 'tr':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + sizeItem.width - 1;\n case 'bl':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + (sizeItem.height - 1) * cols;\n case 'br':\n return cellMap.lastIndexOf(index);\n }\n}\n\n/** Gets all cell indices that correspond to the specified indices */\nfunction getCellIndices(indices, cellMap) {\n return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);\n}\nfunction isDisabled(list, index, disabledIndices) {\n if (disabledIndices) {\n return disabledIndices.includes(index);\n }\n const element = list[index];\n return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction areMapsEqual(map1, map2) {\n if (map1.size !== map2.size) {\n return false;\n }\n for (const [key, value] of map1.entries()) {\n if (value !== map2.get(key)) {\n return false;\n }\n }\n return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n map: /*#__PURE__*/new Map(),\n elementsRef: {\n current: []\n }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(props) {\n const {\n children,\n elementsRef,\n labelsRef\n } = props;\n const [map, setMap] = React.useState(() => new Map());\n const register = React.useCallback(node => {\n setMap(prevMap => new Map(prevMap).set(node, null));\n }, []);\n const unregister = React.useCallback(node => {\n setMap(prevMap => {\n const map = new Map(prevMap);\n map.delete(node);\n return map;\n });\n }, []);\n index(() => {\n const newMap = new Map(map);\n const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n nodes.forEach((node, index) => {\n newMap.set(node, index);\n });\n if (!areMapsEqual(map, newMap)) {\n setMap(newMap);\n }\n }, [map]);\n return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n value: React.useMemo(() => ({\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n }), [register, unregister, map, elementsRef, labelsRef])\n }, children);\n}\n/**\n * Used to register a list item and its index (DOM position) in the\n * `FloatingList`.\n * @see https://floating-ui.com/docs/FloatingList#uselistitem\n */\nfunction useListItem(props) {\n if (props === void 0) {\n props = {};\n }\n const {\n label\n } = props;\n const {\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n } = React.useContext(FloatingListContext);\n const [index$1, setIndex] = React.useState(null);\n const componentRef = React.useRef(null);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index$1 !== null) {\n elementsRef.current[index$1] = node;\n if (labelsRef) {\n var _node$textContent;\n const isLabelDefined = label !== undefined;\n labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n }\n }\n }, [index$1, elementsRef, labelsRef, label]);\n index(() => {\n const node = componentRef.current;\n if (node) {\n register(node);\n return () => {\n unregister(node);\n };\n }\n }, [register, unregister]);\n index(() => {\n const index = componentRef.current ? map.get(componentRef.current) : null;\n if (index != null) {\n setIndex(index);\n }\n }, [map]);\n return React.useMemo(() => ({\n ref,\n index: index$1 == null ? -1 : index$1\n }), [index$1, ref]);\n}\n\nfunction renderJsx(render, computedProps) {\n if (typeof render === 'function') {\n return render(computedProps);\n }\n if (render) {\n return /*#__PURE__*/React.cloneElement(render, computedProps);\n }\n return /*#__PURE__*/React.createElement(\"div\", computedProps);\n}\nconst CompositeContext = /*#__PURE__*/React.createContext({\n activeIndex: 0,\n onNavigate: () => {}\n});\nconst horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];\nconst verticalKeys = [ARROW_UP, ARROW_DOWN];\nconst allKeys = [...horizontalKeys, ...verticalKeys];\n\n/**\n * Creates a single tab stop whose items are navigated by arrow keys, which\n * provides list navigation outside of floating element contexts.\n *\n * This is useful to enable navigation of a list of items that aren’t part of a\n * floating element. A menubar is an example of a composite, with each reference\n * element being an item.\n * @see https://floating-ui.com/docs/Composite\n */\nconst Composite = /*#__PURE__*/React.forwardRef(function Composite(props, forwardedRef) {\n const {\n render,\n orientation = 'both',\n loop = true,\n rtl = false,\n cols = 1,\n disabledIndices,\n activeIndex: externalActiveIndex,\n onNavigate: externalSetActiveIndex,\n itemSizes,\n dense = false,\n ...domProps\n } = props;\n const [internalActiveIndex, internalSetActiveIndex] = React.useState(0);\n const activeIndex = externalActiveIndex != null ? externalActiveIndex : internalActiveIndex;\n const onNavigate = useEffectEvent(externalSetActiveIndex != null ? externalSetActiveIndex : internalSetActiveIndex);\n const elementsRef = React.useRef([]);\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const contextValue = React.useMemo(() => ({\n activeIndex,\n onNavigate\n }), [activeIndex, onNavigate]);\n const isGrid = cols > 1;\n function handleKeyDown(event) {\n if (!allKeys.includes(event.key)) return;\n let nextIndex = activeIndex;\n const minIndex = getMinIndex(elementsRef, disabledIndices);\n const maxIndex = getMaxIndex(elementsRef, disabledIndices);\n const horizontalEndKey = rtl ? ARROW_LEFT : ARROW_RIGHT;\n const horizontalStartKey = rtl ? ARROW_RIGHT : ARROW_LEFT;\n if (isGrid) {\n const sizes = itemSizes || Array.from({\n length: elementsRef.current.length\n }, () => ({\n width: 1,\n height: 1\n }));\n // To calculate movements on the grid, we use hypothetical cell indices\n // as if every item was 1x1, then convert back to real indices.\n const cellMap = buildCellMap(sizes, cols, dense);\n const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(elementsRef.current, index, disabledIndices));\n // last enabled index\n const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(elementsRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n const maybeNextIndex = cellMap[getGridNavigatedIndex({\n current: cellMap.map(itemIndex => itemIndex ? elementsRef.current[itemIndex] : null)\n }, {\n event,\n orientation,\n loop,\n rtl,\n cols,\n // treat undefined (empty grid spaces) as disabled indices so we\n // don't end up in them\n disabledIndices: getCellIndices([...(disabledIndices || elementsRef.current.map((_, index) => isDisabled(elementsRef.current, index) ? index : undefined)), undefined], cellMap),\n minIndex: minGridIndex,\n maxIndex: maxGridIndex,\n prevIndex: getCellIndexOfCorner(activeIndex > maxIndex ? minIndex : activeIndex, sizes, cellMap, cols,\n // use a corner matching the edge closest to the direction we're\n // moving in so we don't end up in the same item. Prefer\n // top/left over bottom/right.\n event.key === ARROW_DOWN ? 'bl' : event.key === horizontalEndKey ? 'tr' : 'tl')\n })];\n if (maybeNextIndex != null) {\n nextIndex = maybeNextIndex;\n }\n }\n const toEndKeys = {\n horizontal: [horizontalEndKey],\n vertical: [ARROW_DOWN],\n both: [horizontalEndKey, ARROW_DOWN]\n }[orientation];\n const toStartKeys = {\n horizontal: [horizontalStartKey],\n vertical: [ARROW_UP],\n both: [horizontalStartKey, ARROW_UP]\n }[orientation];\n const preventedKeys = isGrid ? allKeys : {\n horizontal: horizontalKeys,\n vertical: verticalKeys,\n both: allKeys\n }[orientation];\n if (nextIndex === activeIndex && [...toEndKeys, ...toStartKeys].includes(event.key)) {\n if (loop && nextIndex === maxIndex && toEndKeys.includes(event.key)) {\n nextIndex = minIndex;\n } else if (loop && nextIndex === minIndex && toStartKeys.includes(event.key)) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: nextIndex,\n decrement: toStartKeys.includes(event.key),\n disabledIndices\n });\n }\n }\n if (nextIndex !== activeIndex && !isIndexOutOfBounds(elementsRef, nextIndex)) {\n var _elementsRef$current$;\n event.stopPropagation();\n if (preventedKeys.includes(event.key)) {\n event.preventDefault();\n }\n onNavigate(nextIndex);\n (_elementsRef$current$ = elementsRef.current[nextIndex]) == null || _elementsRef$current$.focus();\n }\n }\n const computedProps = {\n ...domProps,\n ...renderElementProps,\n ref: forwardedRef,\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n onKeyDown(e) {\n domProps.onKeyDown == null || domProps.onKeyDown(e);\n renderElementProps.onKeyDown == null || renderElementProps.onKeyDown(e);\n handleKeyDown(e);\n }\n };\n return /*#__PURE__*/React.createElement(CompositeContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(FloatingList, {\n elementsRef: elementsRef\n }, renderJsx(render, computedProps)));\n});\n/**\n * @see https://floating-ui.com/docs/Composite\n */\nconst CompositeItem = /*#__PURE__*/React.forwardRef(function CompositeItem(props, forwardedRef) {\n const {\n render,\n ...domProps\n } = props;\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const {\n activeIndex,\n onNavigate\n } = React.useContext(CompositeContext);\n const {\n ref,\n index\n } = useListItem();\n const mergedRef = useMergeRefs([ref, forwardedRef, renderElementProps.ref]);\n const isActive = activeIndex === index;\n const computedProps = {\n ...domProps,\n ...renderElementProps,\n ref: mergedRef,\n tabIndex: isActive ? 0 : -1,\n 'data-active': isActive ? '' : undefined,\n onFocus(e) {\n domProps.onFocus == null || domProps.onFocus(e);\n renderElementProps.onFocus == null || renderElementProps.onFocus(e);\n onNavigate(index);\n }\n };\n return renderJsx(render, computedProps);\n});\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}\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => // Ensure the id is unique with multiple independent versions of Floating UI\n// on <React 18\n\"floating-ui-\" + Math.random().toString(36).slice(2, 6) + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n serverHandoffComplete = true;\n }, []);\n return id;\n}\nconst useReactId = SafeReact.useId;\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/react-utils#useid\n */\nconst useId = useReactId || useFloatingId;\n\nlet devMessageSet;\nif (process.env.NODE_ENV !== \"production\") {\n devMessageSet = /*#__PURE__*/new Set();\n}\nfunction warn() {\n var _devMessageSet;\n for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n const message = \"Floating UI: \" + messages.join(' ');\n if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(message))) {\n var _devMessageSet2;\n (_devMessageSet2 = devMessageSet) == null || _devMessageSet2.add(message);\n console.warn(message);\n }\n}\nfunction error() {\n var _devMessageSet3;\n for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n messages[_key2] = arguments[_key2];\n }\n const message = \"Floating UI: \" + messages.join(' ');\n if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) {\n var _devMessageSet4;\n (_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message);\n console.error(message);\n }\n}\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(props, ref) {\n const {\n context: {\n placement,\n elements: {\n floating\n },\n middlewareData: {\n arrow,\n shift\n }\n },\n width = 14,\n height = 7,\n tipRadius = 0,\n strokeWidth = 0,\n staticOffset,\n stroke,\n d,\n style: {\n transform,\n ...restStyle\n } = {},\n ...rest\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (!ref) {\n warn('The `ref` prop is required for `FloatingArrow`.');\n }\n }\n const clipPathId = useId();\n const [isRTL, setIsRTL] = React.useState(false);\n\n // https://github.com/floating-ui/floating-ui/issues/2932\n index(() => {\n if (!floating) return;\n const isRTL = getComputedStyle(floating).direction === 'rtl';\n if (isRTL) {\n setIsRTL(true);\n }\n }, [floating]);\n if (!floating) {\n return null;\n }\n const [side, alignment] = placement.split('-');\n const isVerticalSide = side === 'top' || side === 'bottom';\n let computedStaticOffset = staticOffset;\n if (isVerticalSide && shift != null && shift.x || !isVerticalSide && shift != null && shift.y) {\n computedStaticOffset = null;\n }\n\n // Strokes must be double the border width, this ensures the stroke's width\n // works as you'd expect.\n const computedStrokeWidth = strokeWidth * 2;\n const halfStrokeWidth = computedStrokeWidth / 2;\n const svgX = width / 2 * (tipRadius / -8 + 1);\n const svgY = height / 2 * tipRadius / 4;\n const isCustomShape = !!d;\n const yOffsetProp = computedStaticOffset && alignment === 'end' ? 'bottom' : 'top';\n let xOffsetProp = computedStaticOffset && alignment === 'end' ? 'right' : 'left';\n if (computedStaticOffset && isRTL) {\n xOffsetProp = alignment === 'end' ? 'left' : 'right';\n }\n const arrowX = (arrow == null ? void 0 : arrow.x) != null ? computedStaticOffset || arrow.x : '';\n const arrowY = (arrow == null ? void 0 : arrow.y) != null ? computedStaticOffset || arrow.y : '';\n const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n const rotation = {\n top: isCustomShape ? 'rotate(180deg)' : '',\n left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n bottom: isCustomShape ? '' : 'rotate(180deg)',\n right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n }[side];\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n \"aria-hidden\": true,\n ref: ref,\n width: isCustomShape ? width : width + computedStrokeWidth,\n height: width,\n viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n [xOffsetProp]: arrowX,\n [yOffsetProp]: arrowY,\n [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + computedStrokeWidth / 2 + \"px)\",\n transform: [rotation, transform].filter(t => !!t).join(' '),\n ...restStyle\n }\n }), computedStrokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n clipPath: \"url(#\" + clipPathId + \")\",\n fill: \"none\",\n stroke: stroke\n // Account for the stroke on the fill path rendered below.\n ,\n strokeWidth: computedStrokeWidth + (d ? 0 : 1),\n d: dValue\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: computedStrokeWidth && !d ? rest.fill : 'none',\n d: dValue\n }), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: -halfStrokeWidth,\n y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n width: width + computedStrokeWidth,\n height: width\n })));\n});\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null || _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n var _map$get2;\n map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the parent node id for nested floating elements, if available.\n * Returns `null` for top-level floating elements.\n */\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\n\n/**\n * Returns the nearest floating tree context, if available.\n */\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the `FloatingTree`, returning its id.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction useFloatingNodeId(customParentId) {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null || tree.addNode(node);\n return () => {\n tree == null || tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n}\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(props) {\n const {\n children,\n id\n } = props;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n}\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM.\n * This is not necessary in all cases, except when there must be explicit communication between parent and child floating elements. It is necessary for:\n * - The `bubbles` option in the `useDismiss()` Hook\n * - Nested virtual list navigation\n * - Nested floating elements that each open on hover\n * - Custom communication between parent and child floating elements\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(props) {\n const {\n children\n } = props;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [addNode, removeNode, events])\n }, children);\n}\n\nfunction createAttribute(name) {\n return \"data-floating-ui-\" + name;\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon');\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements\n } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const openRef = useLatestRef(open);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef(-1);\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef(-1);\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const restTimeoutPendingRef = React.useRef(false);\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When closing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) return;\n function onOpenChange(_ref) {\n let {\n open\n } = _ref;\n if (!open) {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n restTimeoutPendingRef.current = false;\n }\n }\n events.on('openchange', onOpenChange);\n return () => {\n events.off('openchange', onOpenChange);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled) return;\n if (!handleCloseRef.current) return;\n if (!open) return;\n function onLeave(event) {\n if (isHoverOpen()) {\n onOpenChange(false, event, 'hover');\n }\n }\n const html = getDocument(elements.floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [elements.floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (event, runElseBranch, reason) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n if (reason === void 0) {\n reason = 'hover';\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(() => onOpenChange(false, event, reason), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false, event, reason);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = useEffectEvent(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n });\n const clearPointerEvents = useEffectEvent(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(elements.floating).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n });\n const isClickLikeOpenEvent = useEffectEvent(() => {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n });\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) return;\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && !getDelay(delayRef.current, 'open')) {\n return;\n }\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = window.setTimeout(() => {\n if (!openRef.current) {\n onOpenChange(true, event, 'hover');\n }\n }, openDelay);\n } else if (!open) {\n onOpenChange(true, event, 'hover');\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n unbindMouseMoveRef.current();\n const doc = getDocument(elements.floating);\n clearTimeout(restTimeoutRef.current);\n restTimeoutPendingRef.current = false;\n if (handleCloseRef.current && dataRef.current.floatingContext) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...dataRef.current.floatingContext,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event, true, 'safe-polygon');\n }\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n\n // Allow interactivity without `safePolygon` on touch devices. With a\n // pointer, a short close delay is an alternative, so it should work\n // consistently.\n const shouldClose = pointerTypeRef.current === 'touch' ? !contains(elements.floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n if (!dataRef.current.floatingContext) return;\n handleCloseRef.current == null || handleCloseRef.current({\n ...dataRef.current.floatingContext,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event);\n }\n }\n })(event);\n }\n if (isElement(elements.domReference)) {\n var _elements$floating;\n const ref = elements.domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n (_elements$floating = elements.floating) == null || _elements$floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n var _elements$floating2;\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n (_elements$floating2 = elements.floating) == null || _elements$floating2.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [elements, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, openRef, tree, delayRef, handleCloseRef, dataRef, isClickLikeOpenEvent]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) return;\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n performedPointerEventsMutationRef.current = true;\n const floatingEl = elements.floating;\n if (isElement(elements.domReference) && floatingEl) {\n var _tree$nodesRef$curren;\n const body = getDocument(elements.floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n const ref = elements.domReference;\n const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n body.style.pointerEvents = 'none';\n ref.style.pointerEvents = 'auto';\n floatingEl.style.pointerEvents = 'auto';\n return () => {\n body.style.pointerEvents = '';\n ref.style.pointerEvents = '';\n floatingEl.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, elements, tree, handleCloseRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n restTimeoutPendingRef.current = false;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, elements.domReference, cleanupMouseMoveHandler, clearPointerEvents]);\n const reference = React.useMemo(() => {\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n const {\n nativeEvent\n } = event;\n function handleMouseMove() {\n if (!blockMouseMoveRef.current && !openRef.current) {\n onOpenChange(true, nativeEvent, 'hover');\n }\n }\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n return;\n }\n if (open || restMs === 0) {\n return;\n }\n\n // Ignore insignificant movements to account for tremors.\n if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n if (pointerTypeRef.current === 'touch') {\n handleMouseMove();\n } else {\n restTimeoutPendingRef.current = true;\n restTimeoutRef.current = window.setTimeout(handleMouseMove, restMs);\n }\n }\n };\n }, [mouseOnly, onOpenChange, open, openRef, restMs]);\n const floating = React.useMemo(() => ({\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave(event) {\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event.nativeEvent, false);\n }\n }\n }), [closeWithDelay, isClickLikeOpenEvent]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}\n\nconst NOOP = () => {};\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: NOOP,\n setState: NOOP,\n isInstantPhase: false\n});\n\n/**\n * @deprecated\n * Use the return value of `useDelayGroup()` instead.\n */\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction FloatingDelayGroup(props) {\n const {\n children,\n delay,\n timeoutMs = 0\n } = props;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else if (!state.isInstantPhase) {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n if (state.isInstantPhase) {\n setState({\n isInstantPhase: false\n });\n }\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId, state.isInstantPhase]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setCurrentId])\n }, children);\n}\n/**\n * Enables grouping when called inside a component that's a child of a\n * `FloatingDelayGroup`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction useDelayGroup(context, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n open,\n onOpenChange,\n floatingId\n } = context;\n const {\n id: optionId,\n enabled = true\n } = options;\n const id = optionId != null ? optionId : floatingId;\n const groupContext = useDelayGroupContext();\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = groupContext;\n index(() => {\n if (!enabled) return;\n if (!currentId) return;\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }, [enabled, id, onOpenChange, setState, currentId, initialDelay]);\n index(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!enabled) return;\n if (!currentId) return;\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n }\n unset();\n }\n }, [enabled, open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n index(() => {\n if (!enabled) return;\n if (setCurrentId === NOOP || !open) return;\n setCurrentId(id);\n }, [enabled, open, setCurrentId, id]);\n return groupContext;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n });\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n });\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\nfunction getDeepestNode(nodes, id) {\n let deepestNodeId;\n let maxDepth = -1;\n function findDeepest(nodeId, depth) {\n if (depth > maxDepth) {\n deepestNodeId = nodeId;\n maxDepth = depth;\n }\n const children = getChildren(nodes, nodeId);\n children.forEach(child => {\n findDeepest(child.id, depth + 1);\n });\n }\n findDeepest(id, 0);\n return nodes.find(node => node.id === deepestNodeId);\n}\n\n// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nlet counterMap = /*#__PURE__*/new WeakMap();\nlet uncontrolledElementsSet = /*#__PURE__*/new WeakSet();\nlet markerMap = {};\nlet lockCount$1 = 0;\nconst supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\nconst unwrapHost = node => node && (node.host || unwrapHost(node.parentNode));\nconst correctElements = (parent, targets) => targets.map(target => {\n if (parent.contains(target)) {\n return target;\n }\n const correctedTarget = unwrapHost(target);\n if (parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n return null;\n}).filter(x => x != null);\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {\n const markerName = 'data-floating-ui-inert';\n const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null;\n const avoidElements = correctElements(body, uncorrectedAvoidElements);\n const elementsToKeep = new Set();\n const elementsToStop = new Set(avoidElements);\n const hiddenElements = [];\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n const markerCounter = markerMap[markerName];\n avoidElements.forEach(keep);\n deep(body);\n elementsToKeep.clear();\n function keep(el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n el.parentNode && keep(el.parentNode);\n }\n function deep(parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n [].forEach.call(parent.children, node => {\n if (getNodeName(node) === 'script') return;\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n const attr = controlAttribute ? node.getAttribute(controlAttribute) : null;\n const alreadyHidden = attr !== null && attr !== 'false';\n const counterValue = (counterMap.get(node) || 0) + 1;\n const markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenElements.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledElementsSet.add(node);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, '');\n }\n if (!alreadyHidden && controlAttribute) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n });\n }\n lockCount$1++;\n return () => {\n hiddenElements.forEach(element => {\n const counterValue = (counterMap.get(element) || 0) - 1;\n const markerValue = (markerCounter.get(element) || 0) - 1;\n counterMap.set(element, counterValue);\n markerCounter.set(element, markerValue);\n if (!counterValue) {\n if (!uncontrolledElementsSet.has(element) && controlAttribute) {\n element.removeAttribute(controlAttribute);\n }\n uncontrolledElementsSet.delete(element);\n }\n if (!markerValue) {\n element.removeAttribute(markerName);\n }\n });\n lockCount$1--;\n if (!lockCount$1) {\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledElementsSet = new WeakSet();\n markerMap = {};\n }\n };\n}\nfunction markOthers(avoidElements, ariaHidden, inert) {\n if (ariaHidden === void 0) {\n ariaHidden = false;\n }\n if (inert === void 0) {\n inert = false;\n }\n const body = getDocument(avoidElements[0]).body;\n return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live]'))), body, ariaHidden, inert);\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n event.target;\n clearTimeout(timeoutId);\n }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n const restProps = {\n ref,\n tabIndex: 0,\n // Role is only for VoiceOver\n role,\n 'aria-hidden': role ? undefined : true,\n [createAttribute('focus-guard')]: '',\n style: HIDDEN_STYLES\n };\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, restProps));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst attr = /*#__PURE__*/createAttribute('portal');\n/**\n * @see https://floating-ui.com/docs/FloatingPortal#usefloatingportalnode\n */\nfunction useFloatingPortalNode(props) {\n if (props === void 0) {\n props = {};\n }\n const {\n id,\n root\n } = props;\n const uniqueId = useId();\n const portalContext = usePortalContext();\n const [portalNode, setPortalNode] = React.useState(null);\n const portalNodeRef = React.useRef(null);\n index(() => {\n return () => {\n portalNode == null || portalNode.remove();\n // Allow the subsequent layout effects to create a new node on updates.\n // The portal node will still be cleaned up on unmount.\n // https://github.com/floating-ui/floating-ui/issues/2454\n queueMicrotask(() => {\n portalNodeRef.current = null;\n });\n };\n }, [portalNode]);\n index(() => {\n // Wait for the uniqueId to be generated before creating the portal node in\n // React <18 (using `useFloatingId` instead of the native `useId`).\n // https://github.com/floating-ui/floating-ui/issues/2778\n if (!uniqueId) return;\n if (portalNodeRef.current) return;\n const existingIdRoot = id ? document.getElementById(id) : null;\n if (!existingIdRoot) return;\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n existingIdRoot.appendChild(subRoot);\n portalNodeRef.current = subRoot;\n setPortalNode(subRoot);\n }, [id, uniqueId]);\n index(() => {\n // Wait for the root to exist before creating the portal node. The root must\n // be stored in state, not a ref, for this to work reactively.\n if (root === null) return;\n if (!uniqueId) return;\n if (portalNodeRef.current) return;\n let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n if (container && !isElement(container)) container = container.current;\n container = container || document.body;\n let idWrapper = null;\n if (id) {\n idWrapper = document.createElement('div');\n idWrapper.id = id;\n container.appendChild(idWrapper);\n }\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n container = idWrapper || container;\n container.appendChild(subRoot);\n portalNodeRef.current = subRoot;\n setPortalNode(subRoot);\n }, [id, root, uniqueId, portalContext]);\n return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * This is necessary to ensure the floating element can appear outside any\n * potential parent containers that cause clipping (such as `overflow: hidden`),\n * while retaining its location in the React tree.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(props) {\n const {\n children,\n id,\n root,\n preserveTabOrder = true\n } = props;\n const portalNode = useFloatingPortalNode({\n id,\n root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const modal = focusManagerState == null ? void 0 : focusManagerState.modal;\n const open = focusManagerState == null ? void 0 : focusManagerState.open;\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal &&\n // Don't render if unmount is transitioning.\n focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, modal]);\n React.useEffect(() => {\n if (!portalNode) return;\n if (open) return;\n enableFocusInside(portalNode);\n }, [open, portalNode]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null || _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null || prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), portalNode && /*#__PURE__*/ReactDOM.createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null || _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null || nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent, 'focus-out'));\n }\n }\n }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';\nfunction getFloatingFocusElement(floatingElement) {\n if (!floatingElement) {\n return null;\n }\n // Try to find the element that has `{...getFloatingProps()}` spread on it.\n // This indicates the floating element is acting as a positioning wrapper, and\n // so focus should be managed on the child element with the event handlers and\n // aria props.\n return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(\"[\" + FOCUSABLE_ATTRIBUTE + \"]\") || floatingElement;\n}\n\nconst LIST_LIMIT = 20;\nlet previouslyFocusedElements = [];\nfunction addPreviouslyFocusedElement(element) {\n previouslyFocusedElements = previouslyFocusedElements.filter(el => el.isConnected);\n let tabbableEl = element;\n if (!tabbableEl || getNodeName(tabbableEl) === 'body') return;\n if (!isTabbable(tabbableEl, getTabbableOptions())) {\n const tabbableChild = tabbable(tabbableEl, getTabbableOptions())[0];\n if (tabbableChild) {\n tabbableEl = tabbableChild;\n }\n }\n previouslyFocusedElements.push(tabbableEl);\n if (previouslyFocusedElements.length > LIST_LIMIT) {\n previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);\n }\n}\nfunction getPreviouslyFocusedElement() {\n return previouslyFocusedElements.slice().reverse().find(el => el.isConnected);\n}\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n const {\n context,\n children,\n disabled = false,\n order = ['content'],\n guards: _guards = true,\n initialFocus = 0,\n returnFocus = true,\n restoreFocus = false,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = props;\n const {\n open,\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n floatingId,\n elements: {\n domReference,\n floating\n }\n } = context;\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;\n\n // Force the guards to be rendered if the `inert` attribute is not supported.\n const guards = supportsInert() ? _guards : true;\n const orderRef = useLatestRef(order);\n const initialFocusRef = useLatestRef(initialFocus);\n const returnFocusRef = useLatestRef(returnFocus);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const isPointerDownRef = React.useRef(false);\n const tabbableIndexRef = React.useRef(-1);\n const isInsidePortal = portalContext != null;\n const floatingFocusElement = getFloatingFocusElement(floating);\n const getTabbableContent = useEffectEvent(function (container) {\n if (container === void 0) {\n container = floatingFocusElement;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n });\n const getTabbableElements = useEffectEvent(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floatingFocusElement && type === 'floating') {\n return floatingFocusElement;\n }\n return content;\n }).filter(Boolean).flat();\n });\n React.useEffect(() => {\n if (disabled) return;\n if (!modal) return;\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains(floatingFocusElement, activeElement(getDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floatingFocusElement && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floatingFocusElement);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (disabled) return;\n if (!floating) return;\n function handleFocusIn(event) {\n const target = getTarget(event);\n const tabbableContent = getTabbableContent();\n const tabbableIndex = tabbableContent.indexOf(target);\n if (tabbableIndex !== -1) {\n tabbableIndexRef.current = tabbableIndex;\n }\n }\n floating.addEventListener('focusin', handleFocusIn);\n return () => {\n floating.removeEventListener('focusin', handleFocusIn);\n };\n }, [disabled, floating, getTabbableContent]);\n React.useEffect(() => {\n if (disabled) return;\n if (!closeOnFocusOut) return;\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n queueMicrotask(() => {\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Restore focus to the previous tabbable element index to prevent\n // focus from being lost outside the floating tree.\n if (restoreFocus && movedToUnrelatedNode && activeElement(getDocument(floatingFocusElement)) === getDocument(floatingFocusElement).body) {\n // Let `FloatingPortal` effect knows that focus is still inside the\n // floating tree.\n if (isHTMLElement(floatingFocusElement)) {\n floatingFocusElement.focus();\n }\n const prevTabbableIndex = tabbableIndexRef.current;\n const tabbableContent = getTabbableContent();\n const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n if (isHTMLElement(nodeToFocus)) {\n nodeToFocus.focus();\n }\n }\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== getPreviouslyFocusedElement()) {\n preventReturnFocusRef.current = true;\n onOpenChange(false, event, 'focus-out');\n }\n });\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [disabled, domReference, floating, floatingFocusElement, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox]);\n React.useEffect(() => {\n var _portalContext$portal;\n if (disabled) return;\n\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null || (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute('portal') + \"]\")) || []);\n if (floating) {\n const insideElements = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current, orderRef.current.includes('reference') || isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n const cleanup = modal || isUntrappedTypeableCombobox ? markOthers(insideElements, guards, !guards) : markOthers(insideElements);\n return () => {\n cleanup();\n };\n }\n }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);\n index(() => {\n if (disabled || !isHTMLElement(floatingFocusElement)) return;\n const doc = getDocument(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const focusableElements = getTabbableElements(floatingFocusElement);\n const initialFocusValue = initialFocusRef.current;\n const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusElement;\n const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);\n if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floatingFocusElement\n });\n }\n });\n }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n index(() => {\n if (disabled || !floatingFocusElement) return;\n let preventReturnFocusScroll = false;\n const doc = getDocument(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n const contextData = dataRef.current;\n let openEvent = contextData.openEvent;\n addPreviouslyFocusedElement(previouslyFocusedElement);\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onOpenChange(_ref) {\n let {\n open,\n reason,\n event,\n nested\n } = _ref;\n if (open) {\n openEvent = event;\n }\n if (reason === 'escape-key' && refs.domReference.current) {\n addPreviouslyFocusedElement(refs.domReference.current);\n }\n if (reason === 'hover' && event.type === 'mouseleave') {\n preventReturnFocusRef.current = true;\n }\n if (reason !== 'outside-press') return;\n if (nested) {\n preventReturnFocusRef.current = false;\n preventReturnFocusScroll = true;\n } else {\n preventReturnFocusRef.current = !(isVirtualClick(event) || isVirtualPointerEvent(event));\n }\n }\n events.on('openchange', onOpenChange);\n const fallbackEl = doc.createElement('span');\n fallbackEl.setAttribute('tabindex', '-1');\n fallbackEl.setAttribute('aria-hidden', 'true');\n Object.assign(fallbackEl.style, HIDDEN_STYLES);\n if (isInsidePortal && domReference) {\n domReference.insertAdjacentElement('afterend', fallbackEl);\n }\n function getReturnElement() {\n if (typeof returnFocusRef.current === 'boolean') {\n return getPreviouslyFocusedElement() || fallbackEl;\n }\n return returnFocusRef.current.current || fallbackEl;\n }\n return () => {\n events.off('openchange', onOpenChange);\n const activeEl = activeElement(doc);\n const isFocusInsideFloatingTree = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context5;\n return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n });\n const shouldFocusReference = isFocusInsideFloatingTree || openEvent && ['click', 'mousedown'].includes(openEvent.type);\n if (shouldFocusReference && refs.domReference.current) {\n addPreviouslyFocusedElement(refs.domReference.current);\n }\n const returnElement = getReturnElement();\n queueMicrotask(() => {\n if (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n returnFocusRef.current && !preventReturnFocusRef.current && isHTMLElement(returnElement) && (\n // If the focus moved somewhere else after mount, avoid returning focus\n // since it likely entered a different element which should be\n // respected: https://github.com/floating-ui/floating-ui/issues/2607\n returnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) {\n returnElement.focus({\n preventScroll: preventReturnFocusScroll\n });\n }\n fallbackEl.remove();\n });\n };\n }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, refs, events, tree, nodeId, isInsidePortal, domReference]);\n React.useEffect(() => {\n // The `returnFocus` cleanup behavior is inside a microtask; ensure we\n // wait for it to complete before resetting the flag.\n queueMicrotask(() => {\n preventReturnFocusRef.current = false;\n });\n }, [disabled]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (disabled) return;\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n modal,\n closeOnFocusOut,\n open,\n onOpenChange,\n refs\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);\n index(() => {\n if (disabled) return;\n if (!floatingFocusElement) return;\n if (typeof MutationObserver !== 'function') return;\n if (ignoreInitialFocus) return;\n const handleMutation = () => {\n const tabIndex = floatingFocusElement.getAttribute('tabindex');\n const tabbableContent = getTabbableContent();\n const activeEl = activeElement(getDocument(floating));\n const tabbableIndex = tabbableContent.indexOf(activeEl);\n if (tabbableIndex !== -1) {\n tabbableIndexRef.current = tabbableIndex;\n }\n if (orderRef.current.includes('floating') || activeEl !== refs.domReference.current && tabbableContent.length === 0) {\n if (tabIndex !== '0') {\n floatingFocusElement.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1') {\n floatingFocusElement.setAttribute('tabindex', '-1');\n }\n };\n handleMutation();\n const observer = new MutationObserver(handleMutation);\n observer.observe(floatingFocusElement, {\n childList: true,\n subtree: true,\n attributes: true\n });\n return () => {\n observer.disconnect();\n };\n }, [disabled, floating, floatingFocusElement, refs, orderRef, getTabbableContent, ignoreInitialFocus]);\n function renderDismissButton(location) {\n if (disabled || !visuallyHiddenDismiss || !modal) {\n return null;\n }\n return /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: event => onOpenChange(false, event.nativeEvent)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss');\n }\n const shouldRenderGuards = !disabled && guards && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null || nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null || _portalContext$before.focus();\n }\n }\n }\n }), !isUntrappedTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null || prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null || _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nlet lockCount = 0;\nfunction enableScrollLock() {\n const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());\n const bodyStyle = document.body.style;\n // RTL <body> scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.scrollX;\n const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.scrollY;\n bodyStyle.overflow = 'hidden';\n if (scrollbarWidth) {\n bodyStyle[paddingProp] = scrollbarWidth + \"px\";\n }\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (isIOS) {\n var _window$visualViewpor, _window$visualViewpor2;\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n Object.assign(bodyStyle, {\n position: 'fixed',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0'\n });\n }\n return () => {\n Object.assign(bodyStyle, {\n overflow: '',\n [paddingProp]: ''\n });\n if (isIOS) {\n Object.assign(bodyStyle, {\n position: '',\n top: '',\n left: '',\n right: ''\n });\n window.scrollTo(scrollX, scrollY);\n }\n };\n}\nlet cleanup = () => {};\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(props, ref) {\n const {\n lockScroll = false,\n ...rest\n } = props;\n index(() => {\n if (!lockScroll) return;\n lockCount++;\n if (lockCount === 1) {\n cleanup = enableScrollLock();\n }\n return () => {\n lockCount--;\n if (lockCount === 0) {\n cleanup();\n }\n };\n }, [lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = context;\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true,\n stickIfOpen = true\n } = props;\n const pointerTypeRef = React.useRef();\n const didKeyDownRef = React.useRef(false);\n const reference = React.useMemo(() => ({\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n const pointerType = pointerTypeRef.current;\n\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) return;\n if (eventOption === 'click') return;\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true, event.nativeEvent, 'click');\n }\n },\n onClick(event) {\n const pointerType = pointerTypeRef.current;\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n didKeyDownRef.current = true;\n }\n if (event.key === 'Enter') {\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ' && didKeyDownRef.current) {\n didKeyDownRef.current = false;\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n }\n }\n }), [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nfunction createVirtualElement(domElement, data) {\n let offsetX = null;\n let offsetY = null;\n let isAutoUpdateEvent = false;\n return {\n contextElement: domElement || undefined,\n getBoundingClientRect() {\n var _data$dataRef$current;\n const domRect = (domElement == null ? void 0 : domElement.getBoundingClientRect()) || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n const isXAxis = data.axis === 'x' || data.axis === 'both';\n const isYAxis = data.axis === 'y' || data.axis === 'both';\n const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n let width = domRect.width;\n let height = domRect.height;\n let x = domRect.x;\n let y = domRect.y;\n if (offsetX == null && data.x && isXAxis) {\n offsetX = domRect.x - data.x;\n }\n if (offsetY == null && data.y && isYAxis) {\n offsetY = domRect.y - data.y;\n }\n x -= offsetX || 0;\n y -= offsetY || 0;\n width = 0;\n height = 0;\n if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n width = data.axis === 'y' ? domRect.width : 0;\n height = data.axis === 'x' ? domRect.height : 0;\n x = isXAxis && data.x != null ? data.x : x;\n y = isYAxis && data.y != null ? data.y : y;\n } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n height = data.axis === 'x' ? domRect.height : height;\n width = data.axis === 'y' ? domRect.width : width;\n }\n isAutoUpdateEvent = true;\n return {\n width,\n height,\n x,\n y,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n }\n };\n}\nfunction isMouseBasedEvent(event) {\n return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n dataRef,\n elements: {\n floating,\n domReference\n },\n refs\n } = context;\n const {\n enabled = true,\n axis = 'both',\n x = null,\n y = null\n } = props;\n const initialRef = React.useRef(false);\n const cleanupListenerRef = React.useRef(null);\n const [pointerType, setPointerType] = React.useState();\n const [reactive, setReactive] = React.useState([]);\n const setReference = useEffectEvent((x, y) => {\n if (initialRef.current) return;\n\n // Prevent setting if the open event was not a mouse-like one\n // (e.g. focus to open, then hover over the reference element).\n // Only apply if the event exists.\n if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n return;\n }\n refs.setPositionReference(createVirtualElement(domReference, {\n x,\n y,\n axis,\n dataRef,\n pointerType\n }));\n });\n const handleReferenceEnterOrMove = useEffectEvent(event => {\n if (x != null || y != null) return;\n if (!open) {\n setReference(event.clientX, event.clientY);\n } else if (!cleanupListenerRef.current) {\n // If there's no cleanup, there's no listener, but we want to ensure\n // we add the listener if the cursor landed on the floating element and\n // then back on the reference (i.e. it's interactive).\n setReactive([]);\n }\n });\n\n // If the pointer is a mouse-like pointer, we want to continue following the\n // mouse even if the floating element is transitioning out. On touch\n // devices, this is undesirable because the floating element will move to\n // the dismissal touch point.\n const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n const addListener = React.useCallback(() => {\n // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n if (!openCheck || !enabled || x != null || y != null) return;\n const win = getWindow(floating);\n function handleMouseMove(event) {\n const target = getTarget(event);\n if (!contains(floating, target)) {\n setReference(event.clientX, event.clientY);\n } else {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n }\n }\n if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n win.addEventListener('mousemove', handleMouseMove);\n const cleanup = () => {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n };\n cleanupListenerRef.current = cleanup;\n return cleanup;\n }\n refs.setPositionReference(domReference);\n }, [openCheck, enabled, x, y, floating, dataRef, refs, domReference, setReference]);\n React.useEffect(() => {\n return addListener();\n }, [addListener, reactive]);\n React.useEffect(() => {\n if (enabled && !floating) {\n initialRef.current = false;\n }\n }, [enabled, floating]);\n React.useEffect(() => {\n if (!enabled && open) {\n initialRef.current = true;\n }\n }, [enabled, open]);\n index(() => {\n if (enabled && (x != null || y != null)) {\n initialRef.current = false;\n setReference(x, y);\n }\n }, [enabled, x, y, setReference]);\n const reference = React.useMemo(() => {\n function setPointerTypeRef(_ref) {\n let {\n pointerType\n } = _ref;\n setPointerType(pointerType);\n }\n return {\n onPointerDown: setPointerTypeRef,\n onPointerEnter: setPointerTypeRef,\n onMouseMove: handleReferenceEnterOrMove,\n onMouseEnter: handleReferenceEnterOrMove\n };\n }, [handleReferenceEnterOrMove]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeProp = normalizable => {\n var _normalizable$escapeK, _normalizable$outside;\n return {\n escapeKey: typeof normalizable === 'boolean' ? normalizable : (_normalizable$escapeK = normalizable == null ? void 0 : normalizable.escapeKey) != null ? _normalizable$escapeK : false,\n outsidePress: typeof normalizable === 'boolean' ? normalizable : (_normalizable$outside = normalizable == null ? void 0 : normalizable.outsidePress) != null ? _normalizable$outside : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n elements,\n dataRef\n } = context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles,\n capture\n } = props;\n const tree = useFloatingTree();\n const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const endedOrStartedInsideRef = React.useRef(false);\n const {\n escapeKey: escapeKeyBubbles,\n outsidePress: outsidePressBubbles\n } = normalizeProp(bubbles);\n const {\n escapeKey: escapeKeyCapture,\n outsidePress: outsidePressCapture\n } = normalizeProp(capture);\n const isComposingRef = React.useRef(false);\n const closeOnEscapeKeyDown = useEffectEvent(event => {\n var _dataRef$current$floa;\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n\n // Wait until IME is settled. Pressing `Escape` while composing should\n // close the compose menu, but not the floating element.\n if (isComposingRef.current) {\n return;\n }\n const nodeId = (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n event.stopPropagation();\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event, 'escape-key');\n });\n const closeOnEscapeKeyDownCapture = useEffectEvent(event => {\n var _getTarget2;\n const callback = () => {\n var _getTarget;\n closeOnEscapeKeyDown(event);\n (_getTarget = getTarget(event)) == null || _getTarget.removeEventListener('keydown', callback);\n };\n (_getTarget2 = getTarget(event)) == null || _getTarget2.addEventListener('keydown', callback);\n });\n const closeOnPressOutside = useEffectEvent(event => {\n var _dataRef$current$floa2;\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n\n // When click outside is lazy (`click` event), handle dragging.\n // Don't close if:\n // - The click started inside the floating element.\n // - The click ended inside the floating element.\n const endedOrStartedInside = endedOrStartedInsideRef.current;\n endedOrStartedInsideRef.current = false;\n if (outsidePressEvent === 'click' && endedOrStartedInside) {\n return;\n }\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n const inertSelector = \"[\" + createAttribute('inert') + \"]\";\n const markers = getDocument(elements.floating).querySelectorAll(inertSelector);\n let targetRootAncestor = isElement(target) ? target : null;\n while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n const nextParent = getParentNode(targetRootAncestor);\n if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {\n break;\n }\n targetRootAncestor = nextParent;\n }\n\n // Check if the click occurred on a third-party element injected after the\n // floating element rendered.\n if (markers.length && isElement(target) && !isRootElement(target) &&\n // Clicked on a direct ancestor (e.g. FloatingOverlay).\n !contains(target, elements.floating) &&\n // If the target root element contains none of the markers, then the\n // element was injected after the floating element rendered.\n Array.from(markers).every(marker => !contains(targetRootAncestor, marker))) {\n return;\n }\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n // elements.\n const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId;\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n onOpenChange(false, event, 'outside-press');\n });\n const closeOnPressOutsideCapture = useEffectEvent(event => {\n var _getTarget4;\n const callback = () => {\n var _getTarget3;\n closeOnPressOutside(event);\n (_getTarget3 = getTarget(event)) == null || _getTarget3.removeEventListener(outsidePressEvent, callback);\n };\n (_getTarget4 = getTarget(event)) == null || _getTarget4.addEventListener(outsidePressEvent, callback);\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n let compositionTimeout = -1;\n function onScroll(event) {\n onOpenChange(false, event, 'ancestor-scroll');\n }\n function handleCompositionStart() {\n window.clearTimeout(compositionTimeout);\n isComposingRef.current = true;\n }\n function handleCompositionEnd() {\n // Safari fires `compositionend` before `keydown`, so we need to wait\n // until the next tick to set `isComposing` to `false`.\n // https://bugs.webkit.org/show_bug.cgi?id=165004\n compositionTimeout = window.setTimeout(() => {\n isComposingRef.current = false;\n },\n // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.\n // Only apply to WebKit for the test to remain 0ms.\n isWebKit() ? 5 : 0);\n }\n const doc = getDocument(elements.floating);\n if (escapeKey) {\n doc.addEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n doc.addEventListener('compositionstart', handleCompositionStart);\n doc.addEventListener('compositionend', handleCompositionEnd);\n }\n outsidePress && doc.addEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(elements.domReference)) {\n ancestors = getOverflowAncestors(elements.domReference);\n }\n if (isElement(elements.floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(elements.floating));\n }\n if (!isElement(elements.reference) && elements.reference && elements.reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(elements.reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n if (escapeKey) {\n doc.removeEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n doc.removeEventListener('compositionstart', handleCompositionStart);\n doc.removeEventListener('compositionend', handleCompositionEnd);\n }\n outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n window.clearTimeout(compositionTimeout);\n };\n }, [dataRef, elements, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n const reference = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n if (referencePress) {\n onOpenChange(false, event.nativeEvent, 'reference-press');\n }\n }\n }), [closeOnEscapeKeyDown, onOpenChange, referencePress, referencePressEvent]);\n const floating = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n onMouseDown() {\n endedOrStartedInsideRef.current = true;\n },\n onMouseUp() {\n endedOrStartedInsideRef.current = true;\n },\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }), [closeOnEscapeKeyDown, outsidePressEvent]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}\n\nfunction useFloatingRootContext(options) {\n const {\n open = false,\n onOpenChange: onOpenChangeProp,\n elements: elementsProp\n } = options;\n const floatingId = useId();\n const dataRef = React.useRef({});\n const [events] = React.useState(() => createPubSub());\n const nested = useFloatingParentNodeId() != null;\n if (process.env.NODE_ENV !== \"production\") {\n const optionDomReference = elementsProp.reference;\n if (optionDomReference && !isElement(optionDomReference)) {\n error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `refs.setPositionReference()`', 'instead.');\n }\n }\n const [positionReference, setPositionReference] = React.useState(elementsProp.reference);\n const onOpenChange = useEffectEvent((open, event, reason) => {\n dataRef.current.openEvent = open ? event : undefined;\n events.emit('openchange', {\n open,\n event,\n reason,\n nested\n });\n onOpenChangeProp == null || onOpenChangeProp(open, event, reason);\n });\n const refs = React.useMemo(() => ({\n setPositionReference\n }), []);\n const elements = React.useMemo(() => ({\n reference: positionReference || elementsProp.reference || null,\n floating: elementsProp.floating || null,\n domReference: elementsProp.reference\n }), [positionReference, elementsProp.reference, elementsProp.floating]);\n return React.useMemo(() => ({\n dataRef,\n open,\n onOpenChange,\n elements,\n events,\n floatingId,\n refs\n }), [open, onOpenChange, elements, events, floatingId, refs]);\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n nodeId\n } = options;\n const internalRootContext = useFloatingRootContext({\n ...options,\n elements: {\n reference: null,\n floating: null,\n ...options.elements\n }\n });\n const rootContext = options.rootContext || internalRootContext;\n const computedElements = rootContext.elements;\n const [_domReference, setDomReference] = React.useState(null);\n const [positionReference, _setPositionReference] = React.useState(null);\n const optionDomReference = computedElements == null ? void 0 : computedElements.domReference;\n const domReference = optionDomReference || _domReference;\n const domReferenceRef = React.useRef(null);\n const tree = useFloatingTree();\n index(() => {\n if (domReference) {\n domReferenceRef.current = domReference;\n }\n }, [domReference]);\n const position = useFloating$1({\n ...options,\n elements: {\n ...computedElements,\n ...(positionReference && {\n reference: positionReference\n })\n }\n });\n const setPositionReference = React.useCallback(node => {\n const computedPositionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n // Store the positionReference in state if the DOM reference is specified externally via the\n // `elements.reference` option. This ensures that it won't be overridden on future renders.\n _setPositionReference(computedPositionReference);\n position.refs.setReference(computedPositionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const context = React.useMemo(() => ({\n ...position,\n ...rootContext,\n refs,\n elements,\n nodeId\n }), [position, refs, elements, nodeId, rootContext]);\n index(() => {\n rootContext.dataRef.current.floatingContext = context;\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n elements\n }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n events,\n dataRef,\n elements\n } = context;\n const {\n enabled = true,\n visibleOnly = true\n } = props;\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n const keyboardModalityRef = React.useRef(true);\n React.useEffect(() => {\n if (!enabled) return;\n const win = getWindow(elements.domReference);\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n blockFocusRef.current = true;\n }\n }\n function onKeyDown() {\n keyboardModalityRef.current = true;\n }\n win.addEventListener('blur', onBlur);\n win.addEventListener('keydown', onKeyDown, true);\n return () => {\n win.removeEventListener('blur', onBlur);\n win.removeEventListener('keydown', onKeyDown, true);\n };\n }, [elements.domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) return;\n function onOpenChange(_ref) {\n let {\n reason\n } = _ref;\n if (reason === 'reference-press' || reason === 'escape-key') {\n blockFocusRef.current = true;\n }\n }\n events.on('openchange', onOpenChange);\n return () => {\n events.off('openchange', onOpenChange);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n const reference = React.useMemo(() => ({\n onPointerDown(event) {\n if (isVirtualPointerEvent(event.nativeEvent)) return;\n keyboardModalityRef.current = false;\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n if (blockFocusRef.current) return;\n const target = getTarget(event.nativeEvent);\n if (visibleOnly && isElement(target)) {\n try {\n // Mac Safari unreliably matches `:focus-visible` on the reference\n // if focus was outside the page initially - use the fallback\n // instead.\n if (isSafari() && isMac()) throw Error();\n if (!target.matches(':focus-visible')) return;\n } catch (e) {\n // Old browsers will throw an error when using `:focus-visible`.\n if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n return;\n }\n }\n }\n onOpenChange(true, event.nativeEvent, 'focus');\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n const nativeEvent = event.nativeEvent;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = window.setTimeout(() => {\n var _dataRef$current$floa;\n const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n\n // Focus left the page, keep it open.\n if (!relatedTarget && activeEl === elements.domReference) return;\n\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n // We can not rely on relatedTarget to point to the correct element\n // as it will only point to the shadow host of the newly focused element\n // and not the element that actually has received focus if it is located\n // inside a shadow root.\n if (contains((_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.refs.floating.current, activeEl) || contains(elements.domReference, activeEl) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false, nativeEvent, 'focus');\n });\n }\n }), [dataRef, elements.domReference, onOpenChange, visibleOnly]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nconst ACTIVE_KEY = 'active';\nconst SELECTED_KEY = 'selected';\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n const isItem = elementKey === 'item';\n let domUserProps = userProps;\n if (isItem && userProps) {\n const {\n [ACTIVE_KEY]: _,\n [SELECTED_KEY]: __,\n ...validProps\n } = userProps;\n domUserProps = validProps;\n }\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1,\n [FOCUSABLE_ATTRIBUTE]: ''\n }),\n ...domUserProps,\n ...propsList.map(value => {\n const propsOrGetProps = value ? value[elementKey] : null;\n if (typeof propsOrGetProps === 'function') {\n return userProps ? propsOrGetProps(userProps) : null;\n }\n return propsOrGetProps;\n }).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (isItem && [ACTIVE_KEY, SELECTED_KEY].includes(key)) {\n return;\n }\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null || _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/useInteractions\n */\nfunction useInteractions(propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n const referenceDeps = propsList.map(key => key == null ? void 0 : key.reference);\n const floatingDeps = propsList.map(key => key == null ? void 0 : key.floating);\n const itemDeps = propsList.map(key => key == null ? void 0 : key.item);\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n referenceDeps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n floatingDeps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n itemDeps);\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key === ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n const {\n open,\n onOpenChange,\n elements\n } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true,\n virtualItemRef,\n itemSizes,\n dense = false\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n warn('`useListNavigation` looping must be enabled to allow escaping.');\n }\n if (!virtual) {\n warn('`useListNavigation` must be virtual to allow escaping.');\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either \"horizontal\" or \"both\".');\n }\n }\n const floatingFocusElement = getFloatingFocusElement(elements.floating);\n const floatingFocusElementRef = useLatestRef(floatingFocusElement);\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEffectEvent(unstable_onNavigate);\n const typeableComboboxReference = isTypeableCombobox(elements.domReference);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!elements.floating);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const selectedIndexRef = useLatestRef(selectedIndex);\n const [activeId, setActiveId] = React.useState();\n const [virtualId, setVirtualId] = React.useState();\n const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n function runFocus(item) {\n if (virtual) {\n setActiveId(item.id);\n tree == null || tree.events.emit('virtualfocus', item);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n }\n const initialItem = listRef.current[indexRef.current];\n if (initialItem) {\n runFocus(initialItem);\n }\n requestAnimationFrame(() => {\n const waitedItem = listRef.current[indexRef.current] || initialItem;\n if (!waitedItem) return;\n if (!initialItem) {\n runFocus(waitedItem);\n }\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n waitedItem.scrollIntoView == null || waitedItem.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n });\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) return;\n if (open && elements.floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n indexRef.current = selectedIndex;\n onNavigate(selectedIndex);\n }\n } else if (previousMountedRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, elements.floating, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) return;\n if (open && elements.floating) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndexRef.current != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n // Avoid letting the browser paint if possible on the first try,\n // otherwise use rAF. Don't try more than twice, since something\n // is wrong otherwise.\n if (runs < 2) {\n const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate(indexRef.current);\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, elements.floating, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n var _nodes$find;\n if (!enabled || elements.floating || !tree || virtual || !previousMountedRef.current) {\n return;\n }\n const nodes = tree.nodesRef.current;\n const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null || (_nodes$find = _nodes$find.context) == null ? void 0 : _nodes$find.elements.floating;\n const activeEl = activeElement(getDocument(elements.floating));\n const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n parent.focus({\n preventScroll: true\n });\n }\n }, [enabled, elements.floating, tree, parentId, virtual]);\n index(() => {\n if (!enabled) return;\n if (!tree) return;\n if (!virtual) return;\n if (parentId) return;\n function handleVirtualFocus(item) {\n setVirtualId(item.id);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n }\n tree.events.on('virtualfocus', handleVirtualFocus);\n return () => {\n tree.events.off('virtualfocus', handleVirtualFocus);\n };\n }, [enabled, tree, virtual, parentId, virtualItemRef]);\n index(() => {\n previousOnNavigateRef.current = onNavigate;\n previousMountedRef.current = !!elements.floating;\n });\n index(() => {\n if (!open) {\n keyRef.current = null;\n }\n }, [open]);\n index(() => {\n previousOpenRef.current = open;\n }, [open]);\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref) {\n let {\n currentTarget\n } = _ref;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref2 => {\n let {\n currentTarget\n } = _ref2;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref3) {\n let {\n currentTarget\n } = _ref3;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave(_ref4) {\n let {\n pointerType\n } = _ref4;\n if (!isPointerModalityRef.current || pointerType === 'touch') {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n onNavigate(null);\n if (!virtual) {\n enqueueFocus(floatingFocusElementRef.current, {\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, floatingFocusElementRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n const commonOnKeyDown = useEffectEvent(event => {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // When composing a character, Chrome fires ArrowDown twice. Firefox/Safari\n // don't appear to suffer from this. `event.isComposing` is avoided due to\n // Safari not supporting it properly (although it's not needed in the first\n // place for Safari, just avoiding any possible issues).\n if (event.which === 229) {\n return;\n }\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false, event.nativeEvent, 'list-navigation');\n if (isHTMLElement(elements.domReference)) {\n if (virtual) {\n tree == null || tree.events.emit('virtualfocus', elements.domReference);\n } else {\n elements.domReference.focus();\n }\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (!typeableComboboxReference) {\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n }\n\n // Grid navigation.\n if (cols > 1) {\n const sizes = itemSizes || Array.from({\n length: listRef.current.length\n }, () => ({\n width: 1,\n height: 1\n }));\n // To calculate movements on the grid, we use hypothetical cell indices\n // as if every item was 1x1, then convert back to real indices.\n const cellMap = buildCellMap(sizes, cols, dense);\n const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(listRef.current, index, disabledIndices));\n // last enabled index\n const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(listRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n const index = cellMap[getGridNavigatedIndex({\n current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)\n }, {\n event,\n orientation,\n loop,\n rtl,\n cols,\n // treat undefined (empty grid spaces) as disabled indices so we\n // don't end up in them\n disabledIndices: getCellIndices([...(disabledIndices || listRef.current.map((_, index) => isDisabled(listRef.current, index) ? index : undefined)), undefined], cellMap),\n minIndex: minGridIndex,\n maxIndex: maxGridIndex,\n prevIndex: getCellIndexOfCorner(indexRef.current > maxIndex ? minIndex : indexRef.current, sizes, cellMap, cols,\n // use a corner matching the edge closest to the direction\n // we're moving in so we don't end up in the same item. Prefer\n // top/left over bottom/right.\n event.key === ARROW_DOWN ? 'bl' : event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT) ? 'tr' : 'tl'),\n stopEvent: true\n })];\n if (index != null) {\n indexRef.current = index;\n onNavigate(indexRef.current);\n }\n if (orientation === 'both') {\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n });\n const ariaActiveDescendantProp = React.useMemo(() => {\n return virtual && open && hasActiveIndex && {\n 'aria-activedescendant': virtualId || activeId\n };\n }, [virtual, open, hasActiveIndex, virtualId, activeId]);\n const floating = React.useMemo(() => {\n return {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...(!isTypeableCombobox(elements.domReference) && ariaActiveDescendantProp),\n onKeyDown: commonOnKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n };\n }, [ariaActiveDescendantProp, commonOnKeyDown, elements.domReference, orientation]);\n const reference = React.useMemo(() => {\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n return {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.startsWith('Arrow');\n const isHomeOrEndKey = ['Home', 'End'].includes(event.key);\n const isMoveKey = isArrowKey || isHomeOrEndKey;\n const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl);\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n if (virtual && open) {\n const rootNode = tree == null ? void 0 : tree.nodesRef.current.find(node => node.parentId == null);\n const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;\n if (isMoveKey && deepestNode && virtualItemRef) {\n const eventObject = new KeyboardEvent('keydown', {\n key: event.key,\n bubbles: true\n });\n if (isCrossOpenKey || isCrossCloseKey) {\n var _deepestNode$context, _deepestNode$context2;\n const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;\n const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? listRef.current.find(item => (item == null ? void 0 : item.id) === activeId) : null;\n if (dispatchItem) {\n stopEvent(event);\n dispatchItem.dispatchEvent(eventObject);\n setVirtualId(undefined);\n }\n }\n if ((isMainKey || isHomeOrEndKey) && deepestNode.context) {\n if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {\n var _deepestNode$context$;\n stopEvent(event);\n (_deepestNode$context$ = deepestNode.context.elements.domReference) == null || _deepestNode$context$.dispatchEvent(eventObject);\n return;\n }\n }\n }\n return commonOnKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n if (isNavigationKey) {\n keyRef.current = nested && isMainKey ? null : event.key;\n }\n if (nested) {\n if (isCrossOpenKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndicesRef.current);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true, event.nativeEvent, 'list-navigation');\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent, 'list-navigation');\n } else {\n commonOnKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open && !virtual) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n };\n }, [activeId, ariaActiveDescendantProp, commonOnKeyDown, disabledIndicesRef, focusItemOnOpen, listRef, nested, onNavigate, onOpenChange, open, openOnArrowKeyDown, orientation, rtl, selectedIndex, tree, virtual, virtualItemRef]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item\n } : {}, [enabled, reference, floating, item]);\n}\n\nconst componentRoleToAriaRoleMap = /*#__PURE__*/new Map([['select', 'listbox'], ['combobox', 'listbox'], ['label', false]]);\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n var _componentRoleToAriaR;\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n floatingId\n } = context;\n const {\n enabled = true,\n role = 'dialog'\n } = props;\n const ariaRole = (_componentRoleToAriaR = componentRoleToAriaRoleMap.get(role)) != null ? _componentRoleToAriaR : role;\n const referenceId = useId();\n const parentId = useFloatingParentNodeId();\n const isNested = parentId != null;\n const reference = React.useMemo(() => {\n if (ariaRole === 'tooltip' || role === 'label') {\n return {\n [\"aria-\" + (role === 'label' ? 'labelledby' : 'describedby')]: open ? floatingId : undefined\n };\n }\n return {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': ariaRole === 'alertdialog' ? 'dialog' : ariaRole,\n 'aria-controls': open ? floatingId : undefined,\n ...(ariaRole === 'listbox' && {\n role: 'combobox'\n }),\n ...(ariaRole === 'menu' && {\n id: referenceId\n }),\n ...(ariaRole === 'menu' && isNested && {\n role: 'menuitem'\n }),\n ...(role === 'select' && {\n 'aria-autocomplete': 'none'\n }),\n ...(role === 'combobox' && {\n 'aria-autocomplete': 'list'\n })\n };\n }, [ariaRole, floatingId, isNested, open, referenceId, role]);\n const floating = React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n ...(ariaRole && {\n role: ariaRole\n })\n };\n if (ariaRole === 'tooltip' || role === 'label') {\n return floatingProps;\n }\n return {\n ...floatingProps,\n ...(ariaRole === 'menu' && {\n 'aria-labelledby': referenceId\n })\n };\n }, [ariaRole, floatingId, referenceId, role]);\n const item = React.useCallback(_ref => {\n let {\n active,\n selected\n } = _ref;\n const commonProps = {\n role: 'option',\n ...(active && {\n id: floatingId + \"-option\"\n })\n };\n\n // For `menu`, we are unable to tell if the item is a `menuitemradio`\n // or `menuitemcheckbox`. For backwards-compatibility reasons, also\n // avoid defaulting to `menuitem` as it may overwrite custom role props.\n switch (role) {\n case 'select':\n return {\n ...commonProps,\n 'aria-selected': active && selected\n };\n case 'combobox':\n {\n return {\n ...commonProps,\n ...(active && {\n 'aria-selected': true\n })\n };\n }\n }\n return {};\n }, [floatingId, role]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item\n } : {}, [enabled, reference, floating, item]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open && isMounted) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, isMounted, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n elements: {\n floating\n }\n } = context;\n const {\n duration = 250\n } = props;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n if (!isMounted && status === 'close') {\n setStatus('unmounted');\n }\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n }\n setStatus('close');\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = props;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const fnArgs = React.useMemo(() => ({\n side,\n placement\n }), [side, placement]);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [styles, setStyles] = React.useState(() => ({\n ...execWithArgsOrReturn(unstable_common, fnArgs),\n ...execWithArgsOrReturn(unstable_initial, fnArgs)\n }));\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n index(() => {\n const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n var _ref;\n const {\n open,\n dataRef\n } = context;\n const {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch,\n onTypingChange: unstable_onTypingChange,\n enabled = true,\n findMatch = null,\n resetMs = 750,\n ignoreKeys = [],\n selectedIndex = null\n } = props;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEffectEvent(unstable_onMatch);\n const onTypingChange = useEffectEvent(unstable_onTypingChange);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref2;\n prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n const setTypingChange = useEffectEvent(value => {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else {\n if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n }\n });\n const onKeyDown = useEffectEvent(event => {\n function getMatchingIndex(list, orderedList, string) {\n const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n return str ? list.indexOf(str) : -1;\n }\n const listContent = listRef.current;\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n setTypingChange(false);\n } else if (event.key === ' ') {\n stopEvent(event);\n }\n }\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== ' ') {\n stopEvent(event);\n setTypingChange(true);\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n } else if (event.key !== ' ') {\n stringRef.current = '';\n setTypingChange(false);\n }\n });\n const reference = React.useMemo(() => ({\n onKeyDown\n }), [onKeyDown]);\n const floating = React.useMemo(() => {\n return {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === ' ') {\n setTypingChange(false);\n }\n }\n };\n }, [onKeyDown, setTypingChange]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside of it is\n * anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = evaluate(props, state);\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n const scrollEl = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n\n // Valid combinations:\n // 1. Floating element is the scrollRef and has a border (default)\n // 2. Floating element is not the scrollRef, floating element has a border\n // 3. Floating element is not the scrollRef, scrollRef has a border\n // Floating > {...getFloatingProps()} wrapper > scrollRef > items is not\n // allowed as VoiceOver doesn't work.\n const clientTop = floating.clientTop || scrollEl.clientTop;\n const floatingIsBordered = floating.clientTop !== 0;\n const scrollElIsBordered = scrollEl.clientTop !== 0;\n const floatingIsScrollEl = floating === scrollEl;\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n warn('`placement` side must be \"bottom\" when using the `inner`', 'middleware.');\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n const rounder = isScrollable ? v => v : round;\n const maxHeight = rounder(max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - max(0, overflow.bottom)));\n scrollEl.style.maxHeight = maxHeight + \"px\";\n scrollEl.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * min(minItemsVisible, listRef.current.length) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n ReactDOM.flushSync(() => onFallbackChange(shouldFallback));\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n const {\n open,\n elements\n } = context;\n const {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = props;\n const onChange = useEffectEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) return;\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n ReactDOM.flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n const floating = React.useMemo(() => ({\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n ReactDOM.flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }), [elements.floating, onChange, overflowRef, scrollRef]);\n return React.useMemo(() => enabled ? {\n floating\n } : {}, [enabled, floating]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safepolygon\n */\nfunction safePolygon(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true\n } = options;\n let timeoutId;\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = performance.now();\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime; // px / ms\n\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n break;\n case 'bottom':\n rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n break;\n case 'left':\n rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n }\n if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n return close();\n }\n }\n if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n close();\n } else if (!hasLanded && requireIntent) {\n timeoutId = window.setTimeout(close, 40);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\nexport { Composite, CompositeItem, FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingRootContext, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import{autoUpdate as Z,flip as ee,inner as te,offset as ne,shift as le,size as re,useFloating as oe,useInnerOffset as ie,useInteractions as se}from\"@floating-ui/react\";import*as j from\"react\";import{createContext as _,useCallback as ae,useContext as R,useMemo as M,useRef as ue,useState as A}from\"react\";import{useDisposables as fe}from'../hooks/use-disposables.js';import{useEvent as z}from'../hooks/use-event.js';import{useIsoMorphicEffect as C}from'../hooks/use-iso-morphic-effect.js';let y=_({styles:void 0,setReference:()=>{},setFloating:()=>{},getReferenceProps:()=>({}),getFloatingProps:()=>({}),slot:{}});y.displayName=\"FloatingContext\";let H=_(null);H.displayName=\"PlacementContext\";function xe(e){return M(()=>e?typeof e==\"string\"?{to:e}:e:null,[e])}function ye(){return R(y).setReference}function Fe(){return R(y).getReferenceProps}function be(){let{getFloatingProps:e,slot:t}=R(y);return ae((...n)=>Object.assign({},e(...n),{\"data-anchor\":t.anchor}),[e,t])}function Re(e=null){e===!1&&(e=null),typeof e==\"string\"&&(e={to:e});let t=R(H),n=M(()=>e,[JSON.stringify(e,(r,o)=>{var u;return(u=o==null?void 0:o.outerHTML)!=null?u:o})]);C(()=>{t==null||t(n!=null?n:null)},[t,n]);let l=R(y);return M(()=>[l.setFloating,e?l.styles:{}],[l.setFloating,e,l.styles])}let q=4;function Me({children:e,enabled:t=!0}){let[n,l]=A(null),[r,o]=A(0),u=ue(null),[f,s]=A(null);pe(f);let i=t&&n!==null&&f!==null,{to:F=\"bottom\",gap:E=0,offset:v=0,padding:c=0,inner:P}=ce(n,f),[a,p=\"center\"]=F.split(\" \");C(()=>{i&&o(0)},[i]);let{refs:b,floatingStyles:w,context:g}=oe({open:i,placement:a===\"selection\"?p===\"center\"?\"bottom\":`bottom-${p}`:p===\"center\"?`${a}`:`${a}-${p}`,strategy:\"absolute\",transform:!1,middleware:[ne({mainAxis:a===\"selection\"?0:E,crossAxis:v}),le({padding:c}),a!==\"selection\"&&ee({padding:c}),a===\"selection\"&&P?te({...P,padding:c,overflowRef:u,offset:r,minItemsVisible:q,referenceOverflowThreshold:c,onFallbackChange(h){var O,W;if(!h)return;let d=g.elements.floating;if(!d)return;let T=parseFloat(getComputedStyle(d).scrollPaddingBottom)||0,$=Math.min(q,d.childElementCount),L=0,N=0;for(let m of(W=(O=g.elements.floating)==null?void 0:O.childNodes)!=null?W:[])if(m instanceof HTMLElement){let x=m.offsetTop,k=x+m.clientHeight+T,S=d.scrollTop,U=S+d.clientHeight;if(x>=S&&k<=U)$--;else{N=Math.max(0,Math.min(k,U)-Math.max(x,S)),L=m.clientHeight;break}}$>=1&&o(m=>{let x=L*$-N+T;return m>=x?m:x})}}):null,re({padding:c,apply({availableWidth:h,availableHeight:d,elements:T}){Object.assign(T.floating.style,{overflow:\"auto\",maxWidth:`${h}px`,maxHeight:`min(var(--anchor-max-height, 100vh), ${d}px)`})}})].filter(Boolean),whileElementsMounted:Z}),[I=a,B=p]=g.placement.split(\"-\");a===\"selection\"&&(I=\"selection\");let G=M(()=>({anchor:[I,B].filter(Boolean).join(\" \")}),[I,B]),K=ie(g,{overflowRef:u,onChange:o}),{getReferenceProps:Q,getFloatingProps:X}=se([K]),Y=z(h=>{s(h),b.setFloating(h)});return j.createElement(H.Provider,{value:l},j.createElement(y.Provider,{value:{setFloating:Y,setReference:b.setReference,styles:w,getReferenceProps:Q,getFloatingProps:X,slot:G}},e))}function pe(e){C(()=>{if(!e)return;let t=new MutationObserver(()=>{let n=window.getComputedStyle(e).maxHeight,l=parseFloat(n);if(isNaN(l))return;let r=parseInt(n);isNaN(r)||l!==r&&(e.style.maxHeight=`${Math.ceil(l)}px`)});return t.observe(e,{attributes:!0,attributeFilter:[\"style\"]}),()=>{t.disconnect()}},[e])}function ce(e,t){var o,u,f;let n=V((o=e==null?void 0:e.gap)!=null?o:\"var(--anchor-gap, 0)\",t),l=V((u=e==null?void 0:e.offset)!=null?u:\"var(--anchor-offset, 0)\",t),r=V((f=e==null?void 0:e.padding)!=null?f:\"var(--anchor-padding, 0)\",t);return{...e,gap:n,offset:l,padding:r}}function V(e,t,n=void 0){let l=fe(),r=z((s,i)=>{if(s==null)return[n,null];if(typeof s==\"number\")return[s,null];if(typeof s==\"string\"){if(!i)return[n,null];let F=J(s,i);return[F,E=>{let v=D(s);{let c=v.map(P=>window.getComputedStyle(i).getPropertyValue(P));l.requestAnimationFrame(function P(){l.nextFrame(P);let a=!1;for(let[b,w]of v.entries()){let g=window.getComputedStyle(i).getPropertyValue(w);if(c[b]!==g){c[b]=g,a=!0;break}}if(!a)return;let p=J(s,i);F!==p&&(E(p),F=p)})}return l.dispose}]}return[n,null]}),o=M(()=>r(e,t)[0],[e,t]),[u=o,f]=A();return C(()=>{let[s,i]=r(e,t);if(f(s),!!i)return i(f)},[e,t]),u}function D(e){let t=/var\\((.*)\\)/.exec(e);if(t){let n=t[1].indexOf(\",\");if(n===-1)return[t[1]];let l=t[1].slice(0,n).trim(),r=t[1].slice(n+1).trim();return r?[l,...D(r)]:[l]}return[]}function J(e,t){let n=document.createElement(\"div\");t.appendChild(n),n.style.setProperty(\"margin-top\",\"0px\",\"important\"),n.style.setProperty(\"margin-top\",e,\"important\");let l=parseFloat(window.getComputedStyle(n).marginTop)||0;return t.removeChild(n),l}export{Me as FloatingProvider,Re as useFloatingPanel,be as useFloatingPanelProps,ye as useFloatingReference,Fe as useFloatingReferenceProps,xe as useResolvedAnchor};\n","import r,{useState as u}from\"react\";function f({children:o,freeze:e}){let n=l(e,o);return r.createElement(r.Fragment,null,n)}function l(o,e){let[n,t]=u(e);return!o&&n!==e&&t(e),o?n:e}export{f as Frozen,l as useFrozenData};\n","import r,{createContext as l,useContext as d}from\"react\";let n=l(null);n.displayName=\"OpenClosedContext\";var i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(i||{});function u(){return d(n)}function c({value:o,children:t}){return r.createElement(n.Provider,{value:o},t)}function s({children:o}){return r.createElement(n.Provider,{value:null},o)}export{c as OpenClosedProvider,s as ResetOpenClosedProvider,i as State,u as useOpenClosed};\n","function t(n){function e(){document.readyState!==\"loading\"&&(n(),document.removeEventListener(\"DOMContentLoaded\",e))}typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"DOMContentLoaded\",e),e())}export{t as onDocumentReady};\n","import{onDocumentReady as d}from'./document-ready.js';import{focusableSelector as u}from'./focus-management.js';let r=[];d(()=>{function e(t){if(!(t.target instanceof HTMLElement)||t.target===document.body||r[0]===t.target)return;let n=t.target;n=n.closest(u),r.unshift(n!=null?n:t.target),r=r.filter(o=>o!=null&&o.isConnected),r.splice(10)}window.addEventListener(\"click\",e,{capture:!0}),window.addEventListener(\"mousedown\",e,{capture:!0}),window.addEventListener(\"focus\",e,{capture:!0}),document.body.addEventListener(\"click\",e,{capture:!0}),document.body.addEventListener(\"mousedown\",e,{capture:!0}),document.body.addEventListener(\"focus\",e,{capture:!0})});export{r as history};\n","function r(n){let e=n.parentElement,l=null;for(;e&&!(e instanceof HTMLFieldSetElement);)e instanceof HTMLLegendElement&&(l=e),e=e.parentElement;let t=(e==null?void 0:e.getAttribute(\"disabled\"))===\"\";return t&&i(l)?!1:t}function i(n){if(!n)return!1;let e=n.previousElementSibling;for(;e!==null;){if(e instanceof HTMLLegendElement)return!1;e=e.previousElementSibling}return!0}export{r as isDisabledReactIssue7711};\n","function u(l){throw new Error(\"Unexpected object: \"+l)}var c=(i=>(i[i.First=0]=\"First\",i[i.Previous=1]=\"Previous\",i[i.Next=2]=\"Next\",i[i.Last=3]=\"Last\",i[i.Specific=4]=\"Specific\",i[i.Nothing=5]=\"Nothing\",i))(c||{});function f(l,n){let t=n.resolveItems();if(t.length<=0)return null;let r=n.resolveActiveIndex(),s=r!=null?r:-1;switch(l.focus){case 0:{for(let e=0;e<t.length;++e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 1:{s===-1&&(s=t.length);for(let e=s-1;e>=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 2:{for(let e=s+1;e<t.length;++e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 3:{for(let e=t.length-1;e>=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 4:{for(let e=0;e<t.length;++e)if(n.resolveId(t[e],e,t)===l.id)return e;return r}case 5:return null;default:u(l)}}export{c as Focus,f as calculateActiveIndex};\n","var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n","var g=(f=>(f[f.Left=0]=\"Left\",f[f.Right=2]=\"Right\",f))(g||{});export{g as MouseButton};\n","import{useEffect as u,useRef as n}from\"react\";import{microTask as o}from'../utils/micro-task.js';import{useEvent as f}from'./use-event.js';function c(t){let r=f(t),e=n(!1);u(()=>(e.current=!1,()=>{e.current=!0,o(()=>{e.current&&r()})}),[r])}export{c as useOnUnmount};\n","import*as t from\"react\";import{env as f}from'../utils/env.js';function s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\"in t?(o=>o.useSyncExternalStore)(t)(()=>()=>{},()=>!1,()=>!r):!1}function l(){let r=s(),[e,n]=t.useState(f.isHandoffComplete);return e&&f.isHandoffComplete===!1&&n(!1),t.useEffect(()=>{e!==!0&&n(!0)},[e]),t.useEffect(()=>f.handoff(),[]),r?!1:e}export{l as useServerHandoffComplete};\n","import t,{createContext as r,useContext as c}from\"react\";let e=r(!1);function a(){return c(e)}function l(o){return t.createElement(e.Provider,{value:o.force},o.children)}export{l as ForcePortalRoot,a as usePortalRoot};\n","\"use client\";import f,{Fragment as R,createContext as g,useContext as T,useEffect as E,useMemo as c,useRef as A,useState as G}from\"react\";import{createPortal as O}from\"react-dom\";import{useEvent as L}from'../../hooks/use-event.js';import{useIsoMorphicEffect as x}from'../../hooks/use-iso-morphic-effect.js';import{useOnUnmount as h}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as _}from'../../hooks/use-owner.js';import{useServerHandoffComplete as F}from'../../hooks/use-server-handoff-complete.js';import{optionalRef as U,useSyncRefs as P}from'../../hooks/use-sync-refs.js';import{usePortalRoot as D}from'../../internal/portal-force-root.js';import{env as C}from'../../utils/env.js';import{forwardRefWithAs as m,useRender as d}from'../../utils/render.js';function N(u){let r=D(),n=T(v),e=_(u),[o,l]=G(()=>{var t;if(!r&&n!==null)return(t=n.current)!=null?t:null;if(C.isServer)return null;let p=e==null?void 0:e.getElementById(\"headlessui-portal-root\");if(p)return p;if(e===null)return null;let a=e.createElement(\"div\");return a.setAttribute(\"id\",\"headlessui-portal-root\"),e.body.appendChild(a)});return E(()=>{o!==null&&(e!=null&&e.body.contains(o)||e==null||e.body.appendChild(o))},[o,e]),E(()=>{r||n!==null&&l(n.current)},[n,l,r]),o}let M=R,S=m(function(r,n){let e=r,o=A(null),l=P(U(i=>{o.current=i}),n),p=_(o),a=N(o),[t]=G(()=>{var i;return C.isServer?null:(i=p==null?void 0:p.createElement(\"div\"))!=null?i:null}),s=T(y),b=F();x(()=>{!a||!t||a.contains(t)||(t.setAttribute(\"data-headlessui-portal\",\"\"),a.appendChild(t))},[a,t]),x(()=>{if(t&&s)return s.register(t)},[s,t]),h(()=>{var i;!a||!t||(t instanceof Node&&a.contains(t)&&a.removeChild(t),a.childNodes.length<=0&&((i=a.parentElement)==null||i.removeChild(a)))});let H=d();return b?!a||!t?null:O(H({ourProps:{ref:l},theirProps:e,slot:{},defaultTag:M,name:\"Portal\"}),t):null});function j(u,r){let n=P(r),{enabled:e=!0,...o}=u,l=d();return e?f.createElement(S,{...o,ref:n}):l({ourProps:{ref:n},theirProps:o,slot:{},defaultTag:M,name:\"Portal\"})}let W=R,v=g(null);function I(u,r){let{target:n,...e}=u,l={ref:P(r)},p=d();return f.createElement(v.Provider,{value:n},p({ourProps:l,theirProps:e,defaultTag:W,name:\"Popover.Group\"}))}let y=g(null);function te(){let u=T(y),r=A([]),n=L(l=>(r.current.push(l),u&&u.register(l),()=>e(l))),e=L(l=>{let p=r.current.indexOf(l);p!==-1&&r.current.splice(p,1),u&&u.unregister(l)}),o=c(()=>({register:n,unregister:e,portals:r}),[n,e,r]);return[r,c(()=>function({children:p}){return f.createElement(y.Provider,{value:o},p)},[o])]}let J=m(j),X=m(I),re=Object.assign(J,{Group:X});export{re as Portal,X as PortalGroup,te as useNestedPortals};\n","\"use client\";import{useFocusRing as Se}from\"@react-aria/focus\";import{useHover as Ie}from\"@react-aria/interactions\";import{useVirtualizer as He}from\"@tanstack/react-virtual\";import M,{Fragment as Pe,createContext as ce,createRef as Ue,useCallback as fe,useContext as Te,useMemo as W,useReducer as Ge,useRef as ee,useState as Ae}from\"react\";import{flushSync as te}from\"react-dom\";import{useActivePress as ze}from'../../hooks/use-active-press.js';import{useByComparator as Ke}from'../../hooks/use-by-comparator.js';import{useControllable as je}from'../../hooks/use-controllable.js';import{useDefaultValue as We}from'../../hooks/use-default-value.js';import{useDisposables as $e}from'../../hooks/use-disposables.js';import{useElementSize as Re}from'../../hooks/use-element-size.js';import{useEvent as c}from'../../hooks/use-event.js';import{useId as de}from'../../hooks/use-id.js';import{useInertOthers as Xe}from'../../hooks/use-inert-others.js';import{useIsoMorphicEffect as q}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Je}from'../../hooks/use-latest-value.js';import{useOnDisappear as qe}from'../../hooks/use-on-disappear.js';import{useOutsideClick as Ye}from'../../hooks/use-outside-click.js';import{useOwnerDocument as _e}from'../../hooks/use-owner.js';import{useRefocusableInput as he}from'../../hooks/use-refocusable-input.js';import{useResolveButtonType as Qe}from'../../hooks/use-resolve-button-type.js';import{useScrollLock as Ze}from'../../hooks/use-scroll-lock.js';import{useSyncRefs as be}from'../../hooks/use-sync-refs.js';import{useTrackedPointer as et}from'../../hooks/use-tracked-pointer.js';import{transitionDataAttributes as tt,useTransition as ot}from'../../hooks/use-transition.js';import{useTreeWalker as nt}from'../../hooks/use-tree-walker.js';import{useWatch as Me}from'../../hooks/use-watch.js';import{useDisabled as rt}from'../../internal/disabled.js';import{FloatingProvider as it,useFloatingPanel as lt,useFloatingPanelProps as at,useFloatingReference as ut,useResolvedAnchor as pt}from'../../internal/floating.js';import{FormFields as st}from'../../internal/form-fields.js';import{Frozen as dt,useFrozenData as De}from'../../internal/frozen.js';import{useProvidedId as bt}from'../../internal/id.js';import{OpenClosedProvider as mt,State as me,useOpenClosed as ct}from'../../internal/open-closed.js';import{history as Fe}from'../../utils/active-element-history.js';import{isDisabledReactIssue7711 as ft}from'../../utils/bugs.js';import{Focus as A,calculateActiveIndex as Ve}from'../../utils/calculate-active-index.js';import{disposables as Le}from'../../utils/disposables.js';import{sortByDomNode as Tt}from'../../utils/focus-management.js';import{match as oe}from'../../utils/match.js';import{isMobile as xt}from'../../utils/platform.js';import{RenderFeatures as Be,forwardRefWithAs as re,mergeProps as xe,useRender as ie}from'../../utils/render.js';import{useDescribedBy as gt}from'../description/description.js';import{Keys as F}from'../keyboard.js';import{Label as vt,useLabelledBy as ge,useLabels as yt}from'../label/label.js';import{MouseButton as we}from'../mouse.js';import{Portal as Ot}from'../portal/portal.js';var Ct=(e=>(e[e.Open=0]=\"Open\",e[e.Closed=1]=\"Closed\",e))(Ct||{}),Et=(e=>(e[e.Single=0]=\"Single\",e[e.Multi=1]=\"Multi\",e))(Et||{}),St=(o=>(o[o.Pointer=0]=\"Pointer\",o[o.Focus=1]=\"Focus\",o[o.Other=2]=\"Other\",o))(St||{}),It=(l=>(l[l.OpenCombobox=0]=\"OpenCombobox\",l[l.CloseCombobox=1]=\"CloseCombobox\",l[l.GoToOption=2]=\"GoToOption\",l[l.SetTyping=3]=\"SetTyping\",l[l.RegisterOption=4]=\"RegisterOption\",l[l.UnregisterOption=5]=\"UnregisterOption\",l[l.SetActivationTrigger=6]=\"SetActivationTrigger\",l[l.UpdateVirtualConfiguration=7]=\"UpdateVirtualConfiguration\",l[l.SetInputElement=8]=\"SetInputElement\",l[l.SetButtonElement=9]=\"SetButtonElement\",l[l.SetOptionsElement=10]=\"SetOptionsElement\",l))(It||{});function ve(t,n=e=>e){let e=t.activeOptionIndex!==null?t.options[t.activeOptionIndex]:null,o=n(t.options.slice()),f=o.length>0&&o[0].dataRef.current.order!==null?o.sort((m,d)=>m.dataRef.current.order-d.dataRef.current.order):Tt(o,m=>m.dataRef.current.domRef.current),b=e?f.indexOf(e):null;return b===-1&&(b=null),{options:f,activeOptionIndex:b}}let Pt={[1](t){var n;return(n=t.dataRef.current)!=null&&n.disabled||t.comboboxState===1?t:{...t,activeOptionIndex:null,comboboxState:1,isTyping:!1,activationTrigger:2,__demoMode:!1}},[0](t){var n,e;if((n=t.dataRef.current)!=null&&n.disabled||t.comboboxState===0)return t;if((e=t.dataRef.current)!=null&&e.value){let o=t.dataRef.current.calculateIndex(t.dataRef.current.value);if(o!==-1)return{...t,activeOptionIndex:o,comboboxState:0,__demoMode:!1}}return{...t,comboboxState:0,__demoMode:!1}},[3](t,n){return t.isTyping===n.isTyping?t:{...t,isTyping:n.isTyping}},[2](t,n){var b,m,d,x;if((b=t.dataRef.current)!=null&&b.disabled||t.optionsElement&&!((m=t.dataRef.current)!=null&&m.optionsPropsRef.current.static)&&t.comboboxState===1)return t;if(t.virtual){let{options:i,disabled:r}=t.virtual,l=n.focus===A.Specific?n.idx:Ve(n,{resolveItems:()=>i,resolveActiveIndex:()=>{var R,s;return(s=(R=t.activeOptionIndex)!=null?R:i.findIndex(D=>!r(D)))!=null?s:null},resolveDisabled:r,resolveId(){throw new Error(\"Function not implemented.\")}}),S=(d=n.trigger)!=null?d:2;return t.activeOptionIndex===l&&t.activationTrigger===S?t:{...t,activeOptionIndex:l,activationTrigger:S,isTyping:!1,__demoMode:!1}}let e=ve(t);if(e.activeOptionIndex===null){let i=e.options.findIndex(r=>!r.dataRef.current.disabled);i!==-1&&(e.activeOptionIndex=i)}let o=n.focus===A.Specific?n.idx:Ve(n,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:i=>i.id,resolveDisabled:i=>i.dataRef.current.disabled}),f=(x=n.trigger)!=null?x:2;return t.activeOptionIndex===o&&t.activationTrigger===f?t:{...t,...e,isTyping:!1,activeOptionIndex:o,activationTrigger:f,__demoMode:!1}},[4]:(t,n)=>{var b,m,d;if((b=t.dataRef.current)!=null&&b.virtual)return{...t,options:[...t.options,n.payload]};let e=n.payload,o=ve(t,x=>(x.push(e),x));t.activeOptionIndex===null&&(m=t.dataRef.current)!=null&&m.isSelected(n.payload.dataRef.current.value)&&(o.activeOptionIndex=o.options.indexOf(e));let f={...t,...o,activationTrigger:2};return(d=t.dataRef.current)!=null&&d.__demoMode&&t.dataRef.current.value===void 0&&(f.activeOptionIndex=0),f},[5]:(t,n)=>{var o;if((o=t.dataRef.current)!=null&&o.virtual)return{...t,options:t.options.filter(f=>f.id!==n.id)};let e=ve(t,f=>{let b=f.findIndex(m=>m.id===n.id);return b!==-1&&f.splice(b,1),f});return{...t,...e,activationTrigger:2}},[6]:(t,n)=>t.activationTrigger===n.trigger?t:{...t,activationTrigger:n.trigger},[7]:(t,n)=>{var o,f;if(t.virtual===null)return{...t,virtual:{options:n.options,disabled:(o=n.disabled)!=null?o:()=>!1}};if(t.virtual.options===n.options&&t.virtual.disabled===n.disabled)return t;let e=t.activeOptionIndex;if(t.activeOptionIndex!==null){let b=n.options.indexOf(t.virtual.options[t.activeOptionIndex]);b!==-1?e=b:e=null}return{...t,activeOptionIndex:e,virtual:{options:n.options,disabled:(f=n.disabled)!=null?f:()=>!1}}},[8]:(t,n)=>t.inputElement===n.element?t:{...t,inputElement:n.element},[9]:(t,n)=>t.buttonElement===n.element?t:{...t,buttonElement:n.element},[10]:(t,n)=>t.optionsElement===n.element?t:{...t,optionsElement:n.element}},ye=ce(null);ye.displayName=\"ComboboxActionsContext\";function le(t){let n=Te(ye);if(n===null){let e=new Error(`<${t} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,le),e}return n}let Ne=ce(null);function At(t){let n=ne(\"VirtualProvider\"),{options:e}=n.virtual,[o,f]=W(()=>{let i=n.optionsElement;if(!i)return[0,0];let r=window.getComputedStyle(i);return[parseFloat(r.paddingBlockStart||r.paddingTop),parseFloat(r.paddingBlockEnd||r.paddingBottom)]},[n.optionsElement]),b=He({enabled:e.length!==0,scrollPaddingStart:o,scrollPaddingEnd:f,count:e.length,estimateSize(){return 40},getScrollElement(){return n.optionsElement},overscan:12}),[m,d]=Ae(0);q(()=>{d(i=>i+1)},[e]);let x=b.getVirtualItems();return x.length===0?null:M.createElement(Ne.Provider,{value:b},M.createElement(\"div\",{style:{position:\"relative\",width:\"100%\",height:`${b.getTotalSize()}px`},ref:i=>{i&&n.activationTrigger!==0&&n.activeOptionIndex!==null&&e.length>n.activeOptionIndex&&b.scrollToIndex(n.activeOptionIndex)}},x.map(i=>{var r;return M.createElement(Pe,{key:i.key},M.cloneElement((r=t.children)==null?void 0:r.call(t,{...t.slot,option:e[i.index]}),{key:`${m}-${i.key}`,\"data-index\":i.index,\"aria-setsize\":e.length,\"aria-posinset\":i.index+1,style:{position:\"absolute\",top:0,left:0,transform:`translateY(${i.start}px)`,overflowAnchor:\"none\"}}))})))}let ae=ce(null);ae.displayName=\"ComboboxDataContext\";function ne(t){let n=Te(ae);if(n===null){let e=new Error(`<${t} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,ne),e}return n}function Rt(t,n){return oe(n.type,Pt,t,n)}let _t=Pe;function ht(t,n){var Oe,Ce;let e=rt(),{value:o,defaultValue:f,onChange:b,form:m,name:d,by:x,disabled:i=e||!1,onClose:r,__demoMode:l=!1,multiple:S=!1,immediate:R=!1,virtual:s=null,nullable:D,...B}=t,_=We(f),[I=S?[]:void 0,O]=je(o,b,_),[P,g]=Ge(Rt,{dataRef:Ue(),comboboxState:l?0:1,isTyping:!1,options:[],virtual:s?{options:s.options,disabled:(Oe=s.disabled)!=null?Oe:()=>!1}:null,activeOptionIndex:null,activationTrigger:2,inputElement:null,buttonElement:null,optionsElement:null,__demoMode:l}),V=ee(!1),w=ee({static:!1,hold:!1}),T=Ke(x),$=c(p=>s?x===null?s.options.indexOf(p):s.options.findIndex(v=>T(v,p)):P.options.findIndex(v=>T(v.dataRef.current.value,p))),K=fe(p=>oe(u.mode,{[1]:()=>I.some(v=>T(v,p)),[0]:()=>T(I,p)}),[I]),Z=c(p=>P.activeOptionIndex===$(p)),u=W(()=>({...P,immediate:R,optionsPropsRef:w,value:I,defaultValue:_,disabled:i,mode:S?1:0,virtual:s?P.virtual:null,get activeOptionIndex(){if(V.current&&P.activeOptionIndex===null&&(s?s.options.length>0:P.options.length>0)){if(s){let v=s.options.findIndex(z=>{var se,Ee;return!((Ee=(se=s.disabled)==null?void 0:se.call(s,z))!=null&&Ee)});if(v!==-1)return v}let p=P.options.findIndex(v=>!v.dataRef.current.disabled);if(p!==-1)return p}return P.activeOptionIndex},calculateIndex:$,compare:T,isSelected:K,isActive:Z}),[I,_,i,S,l,P,s]);q(()=>{var p;s&&g({type:7,options:s.options,disabled:(p=s.disabled)!=null?p:null})},[s,s==null?void 0:s.options,s==null?void 0:s.disabled]),q(()=>{P.dataRef.current=u},[u]);let X=u.comboboxState===0;Ye(X,[u.buttonElement,u.inputElement,u.optionsElement],()=>C.closeCombobox());let N=W(()=>{var p,v,z;return{open:u.comboboxState===0,disabled:i,activeIndex:u.activeOptionIndex,activeOption:u.activeOptionIndex===null?null:u.virtual?u.virtual.options[(p=u.activeOptionIndex)!=null?p:0]:(z=(v=u.options[u.activeOptionIndex])==null?void 0:v.dataRef.current.value)!=null?z:null,value:I}},[u,i,I]),U=c(()=>{if(u.activeOptionIndex!==null){if(C.setIsTyping(!1),u.virtual)j(u.virtual.options[u.activeOptionIndex]);else{let{dataRef:p}=u.options[u.activeOptionIndex];j(p.current.value)}C.goToOption(A.Specific,u.activeOptionIndex)}}),y=c(()=>{g({type:0}),V.current=!0}),G=c(()=>{g({type:1}),V.current=!1,r==null||r()}),ue=c(p=>{g({type:3,isTyping:p})}),Y=c((p,v,z)=>(V.current=!1,p===A.Specific?g({type:2,focus:A.Specific,idx:v,trigger:z}):g({type:2,focus:p,trigger:z}))),Q=c((p,v)=>(g({type:4,payload:{id:p,dataRef:v}}),()=>{u.isActive(v.current.value)&&(V.current=!0),g({type:5,id:p})})),j=c(p=>oe(u.mode,{[0](){return O==null?void 0:O(p)},[1](){let v=u.value.slice(),z=v.findIndex(se=>T(se,p));return z===-1?v.push(p):v.splice(z,1),O==null?void 0:O(v)}})),h=c(p=>{g({type:6,trigger:p})}),pe=c(p=>{g({type:8,element:p})}),a=c(p=>{g({type:9,element:p})}),k=c(p=>{g({type:10,element:p})}),C=W(()=>({onChange:j,registerOption:Q,goToOption:Y,setIsTyping:ue,closeCombobox:G,openCombobox:y,setActivationTrigger:h,selectActiveOption:U,setInputElement:pe,setButtonElement:a,setOptionsElement:k}),[]),[H,E]=yt(),L=n===null?{}:{ref:n},J=fe(()=>{if(_!==void 0)return O==null?void 0:O(_)},[O,_]),ke=ie();return M.createElement(E,{value:H,props:{htmlFor:(Ce=u.inputElement)==null?void 0:Ce.id},slot:{open:u.comboboxState===0,disabled:i}},M.createElement(it,null,M.createElement(ye.Provider,{value:C},M.createElement(ae.Provider,{value:u},M.createElement(mt,{value:oe(u.comboboxState,{[0]:me.Open,[1]:me.Closed})},d!=null&&M.createElement(st,{disabled:i,data:I!=null?{[d]:I}:{},form:m,onReset:J}),ke({ourProps:L,theirProps:B,slot:N,defaultTag:_t,name:\"Combobox\"}))))))}let Mt=\"input\";function Dt(t,n){var Y,Q,j,h,pe;let e=ne(\"Combobox.Input\"),o=le(\"Combobox.Input\"),f=de(),b=bt(),{id:m=b||`headlessui-combobox-input-${f}`,onChange:d,displayValue:x,disabled:i=e.disabled||!1,autoFocus:r=!1,type:l=\"text\",...S}=t,R=ee(null),s=be(R,n,ut(),o.setInputElement),D=_e(e.inputElement),B=$e(),_=c(()=>{o.onChange(null),e.optionsElement&&(e.optionsElement.scrollTop=0),o.goToOption(A.Nothing)}),I=W(()=>{var a;return typeof x==\"function\"&&e.value!==void 0?(a=x(e.value))!=null?a:\"\":typeof e.value==\"string\"?e.value:\"\"},[e.value,x]);Me(([a,k],[C,H])=>{if(e.isTyping)return;let E=R.current;E&&((H===0&&k===1||a!==C)&&(E.value=a),requestAnimationFrame(()=>{if(e.isTyping||!E||(D==null?void 0:D.activeElement)!==E)return;let{selectionStart:L,selectionEnd:J}=E;Math.abs((J!=null?J:0)-(L!=null?L:0))===0&&L===0&&E.setSelectionRange(E.value.length,E.value.length)}))},[I,e.comboboxState,D,e.isTyping]),Me(([a],[k])=>{if(a===0&&k===1){if(e.isTyping)return;let C=R.current;if(!C)return;let H=C.value,{selectionStart:E,selectionEnd:L,selectionDirection:J}=C;C.value=\"\",C.value=H,J!==null?C.setSelectionRange(E,L,J):C.setSelectionRange(E,L)}},[e.comboboxState]);let O=ee(!1),P=c(()=>{O.current=!0}),g=c(()=>{B.nextFrame(()=>{O.current=!1})}),V=c(a=>{switch(o.setIsTyping(!0),a.key){case F.Enter:if(e.comboboxState!==0||O.current)return;if(a.preventDefault(),a.stopPropagation(),e.activeOptionIndex===null){o.closeCombobox();return}o.selectActiveOption(),e.mode===0&&o.closeCombobox();break;case F.ArrowDown:return a.preventDefault(),a.stopPropagation(),oe(e.comboboxState,{[0]:()=>o.goToOption(A.Next),[1]:()=>o.openCombobox()});case F.ArrowUp:return a.preventDefault(),a.stopPropagation(),oe(e.comboboxState,{[0]:()=>o.goToOption(A.Previous),[1]:()=>{te(()=>o.openCombobox()),e.value||o.goToOption(A.Last)}});case F.Home:if(a.shiftKey)break;return a.preventDefault(),a.stopPropagation(),o.goToOption(A.First);case F.PageUp:return a.preventDefault(),a.stopPropagation(),o.goToOption(A.First);case F.End:if(a.shiftKey)break;return a.preventDefault(),a.stopPropagation(),o.goToOption(A.Last);case F.PageDown:return a.preventDefault(),a.stopPropagation(),o.goToOption(A.Last);case F.Escape:return e.comboboxState!==0?void 0:(a.preventDefault(),e.optionsElement&&!e.optionsPropsRef.current.static&&a.stopPropagation(),e.mode===0&&e.value===null&&_(),o.closeCombobox());case F.Tab:if(e.comboboxState!==0)return;e.mode===0&&e.activationTrigger!==1&&o.selectActiveOption(),o.closeCombobox();break}}),w=c(a=>{d==null||d(a),e.mode===0&&a.target.value===\"\"&&_(),o.openCombobox()}),T=c(a=>{var C,H,E;let k=(C=a.relatedTarget)!=null?C:Fe.find(L=>L!==a.currentTarget);if(!((H=e.optionsElement)!=null&&H.contains(k))&&!((E=e.buttonElement)!=null&&E.contains(k))&&e.comboboxState===0)return a.preventDefault(),e.mode===0&&e.value===null&&_(),o.closeCombobox()}),$=c(a=>{var C,H,E;let k=(C=a.relatedTarget)!=null?C:Fe.find(L=>L!==a.currentTarget);(H=e.buttonElement)!=null&&H.contains(k)||(E=e.optionsElement)!=null&&E.contains(k)||e.disabled||e.immediate&&e.comboboxState!==0&&B.microTask(()=>{te(()=>o.openCombobox()),o.setActivationTrigger(1)})}),K=ge(),Z=gt(),{isFocused:u,focusProps:X}=Se({autoFocus:r}),{isHovered:N,hoverProps:U}=Ie({isDisabled:i}),y=W(()=>({open:e.comboboxState===0,disabled:i,hover:N,focus:u,autofocus:r}),[e,N,u,r,i]),G=xe({ref:s,id:m,role:\"combobox\",type:l,\"aria-controls\":(Y=e.optionsElement)==null?void 0:Y.id,\"aria-expanded\":e.comboboxState===0,\"aria-activedescendant\":e.activeOptionIndex===null?void 0:e.virtual?(Q=e.options.find(a=>!a.dataRef.current.disabled&&e.compare(a.dataRef.current.value,e.virtual.options[e.activeOptionIndex])))==null?void 0:Q.id:(j=e.options[e.activeOptionIndex])==null?void 0:j.id,\"aria-labelledby\":K,\"aria-describedby\":Z,\"aria-autocomplete\":\"list\",defaultValue:(pe=(h=t.defaultValue)!=null?h:e.defaultValue!==void 0?x==null?void 0:x(e.defaultValue):null)!=null?pe:e.defaultValue,disabled:i||void 0,autoFocus:r,onCompositionStart:P,onCompositionEnd:g,onKeyDown:V,onChange:w,onFocus:$,onBlur:T},X,U);return ie()({ourProps:G,theirProps:S,slot:y,defaultTag:Mt,name:\"Combobox.Input\"})}let Ft=\"button\";function Vt(t,n){var w;let e=ne(\"Combobox.Button\"),o=le(\"Combobox.Button\"),f=be(n,o.setButtonElement),b=de(),{id:m=`headlessui-combobox-button-${b}`,disabled:d=e.disabled||!1,autoFocus:x=!1,...i}=t,r=he(e.inputElement),l=c(T=>{switch(T.key){case F.Space:case F.Enter:T.preventDefault(),T.stopPropagation(),e.comboboxState===1&&te(()=>o.openCombobox()),r();return;case F.ArrowDown:T.preventDefault(),T.stopPropagation(),e.comboboxState===1&&(te(()=>o.openCombobox()),e.value||o.goToOption(A.First)),r();return;case F.ArrowUp:T.preventDefault(),T.stopPropagation(),e.comboboxState===1&&(te(()=>o.openCombobox()),e.value||o.goToOption(A.Last)),r();return;case F.Escape:if(e.comboboxState!==0)return;T.preventDefault(),e.optionsElement&&!e.optionsPropsRef.current.static&&T.stopPropagation(),te(()=>o.closeCombobox()),r();return;default:return}}),S=c(T=>{T.preventDefault(),!ft(T.currentTarget)&&(T.button===we.Left&&(e.comboboxState===0?o.closeCombobox():o.openCombobox()),r())}),R=ge([m]),{isFocusVisible:s,focusProps:D}=Se({autoFocus:x}),{isHovered:B,hoverProps:_}=Ie({isDisabled:d}),{pressed:I,pressProps:O}=ze({disabled:d}),P=W(()=>({open:e.comboboxState===0,active:I||e.comboboxState===0,disabled:d,value:e.value,hover:B,focus:s}),[e,B,s,I,d]),g=xe({ref:f,id:m,type:Qe(t,e.buttonElement),tabIndex:-1,\"aria-haspopup\":\"listbox\",\"aria-controls\":(w=e.optionsElement)==null?void 0:w.id,\"aria-expanded\":e.comboboxState===0,\"aria-labelledby\":R,disabled:d||void 0,autoFocus:x,onMouseDown:S,onKeyDown:l},D,_,O);return ie()({ourProps:g,theirProps:i,slot:P,defaultTag:Ft,name:\"Combobox.Button\"})}let Lt=\"div\",Bt=Be.RenderStrategy|Be.Static;function wt(t,n){var Y,Q,j;let e=de(),{id:o=`headlessui-combobox-options-${e}`,hold:f=!1,anchor:b,portal:m=!1,modal:d=!0,transition:x=!1,...i}=t,r=ne(\"Combobox.Options\"),l=le(\"Combobox.Options\"),S=pt(b);S&&(m=!0);let[R,s]=lt(S),[D,B]=Ae(null),_=at(),I=be(n,S?R:null,l.setOptionsElement,B),O=_e(r.optionsElement),P=ct(),[g,V]=ot(x,D,P!==null?(P&me.Open)===me.Open:r.comboboxState===0);qe(g,r.inputElement,l.closeCombobox);let w=r.__demoMode?!1:d&&r.comboboxState===0;Ze(w,O);let T=r.__demoMode?!1:d&&r.comboboxState===0;Xe(T,{allowed:fe(()=>[r.inputElement,r.buttonElement,r.optionsElement],[r.inputElement,r.buttonElement,r.optionsElement])}),q(()=>{var h;r.optionsPropsRef.current.static=(h=t.static)!=null?h:!1},[r.optionsPropsRef,t.static]),q(()=>{r.optionsPropsRef.current.hold=f},[r.optionsPropsRef,f]),nt(r.comboboxState===0,{container:r.optionsElement,accept(h){return h.getAttribute(\"role\")===\"option\"?NodeFilter.FILTER_REJECT:h.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(h){h.setAttribute(\"role\",\"none\")}});let $=ge([(Y=r.buttonElement)==null?void 0:Y.id]),K=W(()=>({open:r.comboboxState===0,option:void 0}),[r.comboboxState]),Z=c(()=>{l.setActivationTrigger(0)}),u=c(h=>{h.preventDefault(),l.setActivationTrigger(0)}),X=xe(S?_():{},{\"aria-labelledby\":$,role:\"listbox\",\"aria-multiselectable\":r.mode===1?!0:void 0,id:o,ref:I,style:{...i.style,...s,\"--input-width\":Re(r.inputElement,!0).width,\"--button-width\":Re(r.buttonElement,!0).width},onWheel:r.activationTrigger===0?void 0:Z,onMouseDown:u,...tt(V)}),N=g&&r.comboboxState===1,U=De(N,(Q=r.virtual)==null?void 0:Q.options),y=De(N,r.value),G=c(h=>r.compare(y,h));if(r.virtual){if(U===void 0)throw new Error(\"Missing `options` in virtual mode\");Object.assign(i,{children:M.createElement(ae.Provider,{value:U!==r.virtual.options?{...r,virtual:{...r.virtual,options:U}}:r},M.createElement(At,{slot:K},i.children))})}let ue=ie();return M.createElement(Ot,{enabled:m?t.static||g:!1},M.createElement(ae.Provider,{value:r.mode===1?r:{...r,isSelected:G}},ue({ourProps:X,theirProps:{...i,children:M.createElement(dt,{freeze:N},typeof i.children==\"function\"?(j=i.children)==null?void 0:j.call(i,K):i.children)},slot:K,defaultTag:Lt,features:Bt,visible:g,name:\"Combobox.Options\"})))}let Nt=\"div\";function kt(t,n){var u,X,N,U;let e=ne(\"Combobox.Option\"),o=le(\"Combobox.Option\"),f=de(),{id:b=`headlessui-combobox-option-${f}`,value:m,disabled:d=(N=(X=(u=e.virtual)==null?void 0:u.disabled)==null?void 0:X.call(u,m))!=null?N:!1,order:x=null,...i}=t,r=he(e.inputElement),l=e.virtual?e.activeOptionIndex===e.calculateIndex(m):e.activeOptionIndex===null?!1:((U=e.options[e.activeOptionIndex])==null?void 0:U.id)===b,S=e.isSelected(m),R=ee(null),s=Je({disabled:d,value:m,domRef:R,order:x}),D=Te(Ne),B=be(n,R,D?D.measureElement:null),_=c(()=>{o.setIsTyping(!1),o.onChange(m)});q(()=>o.registerOption(b,s),[s,b]);let I=ee(!(e.virtual||e.__demoMode));q(()=>{if(!e.virtual&&!e.__demoMode)return Le().requestAnimationFrame(()=>{I.current=!0})},[e.virtual,e.__demoMode]),q(()=>{if(I.current&&e.comboboxState===0&&l&&e.activationTrigger!==0)return Le().requestAnimationFrame(()=>{var y,G;(G=(y=R.current)==null?void 0:y.scrollIntoView)==null||G.call(y,{block:\"nearest\"})})},[R,l,e.comboboxState,e.activationTrigger,e.activeOptionIndex]);let O=c(y=>{y.preventDefault(),y.button===we.Left&&(d||(_(),xt()||requestAnimationFrame(()=>r()),e.mode===0&&o.closeCombobox()))}),P=c(()=>{if(d)return o.goToOption(A.Nothing);let y=e.calculateIndex(m);o.goToOption(A.Specific,y)}),g=et(),V=c(y=>g.update(y)),w=c(y=>{if(!g.wasMoved(y)||d||l)return;let G=e.calculateIndex(m);o.goToOption(A.Specific,G,0)}),T=c(y=>{g.wasMoved(y)&&(d||l&&(e.optionsPropsRef.current.hold||o.goToOption(A.Nothing)))}),$=W(()=>({active:l,focus:l,selected:S,disabled:d}),[l,S,d]),K={id:b,ref:B,role:\"option\",tabIndex:d===!0?void 0:-1,\"aria-disabled\":d===!0?!0:void 0,\"aria-selected\":S,disabled:void 0,onMouseDown:O,onFocus:P,onPointerEnter:V,onMouseEnter:V,onPointerMove:w,onMouseMove:w,onPointerLeave:T,onMouseLeave:T};return ie()({ourProps:K,theirProps:i,slot:$,defaultTag:Nt,name:\"Combobox.Option\"})}let Ht=re(ht),Ut=re(Vt),Gt=re(Dt),zt=vt,Kt=re(wt),jt=re(kt),Ho=Object.assign(Ht,{Input:Gt,Button:Ut,Label:zt,Options:Kt,Option:jt});export{Ho as Combobox,Ut as ComboboxButton,Gt as ComboboxInput,zt as ComboboxLabel,jt as ComboboxOption,Kt as ComboboxOptions};\n","import { dynatrace } from '@dx-ui/framework-logger';\nimport { keepPreviousData, useQuery } from '@tanstack/react-query';\nimport type { AutocompletePrediction } from './use-suggestions';\n\nexport type Predictions = AutocompletePrediction[] | null;\n\nexport type PredictionStatusTypes = 'OK' | 'SELECTION_REQUIRED';\n\nexport type AutoCompleteResponse = {\n predictions: Predictions;\n status: PredictionStatusTypes | null;\n};\n\nexport type Coordinate = {\n latitude: number;\n longitude: number;\n};\n\nexport type LocationTypes = 'geocode' | 'airport' | 'pointOfInterest' | 'property' | 'address';\n\nexport interface PredictionService {\n /** The auto-complete service url */\n uri: string;\n /** The input text to use for searching locations */\n input: string;\n /** The language param to use for the search */\n language: string;\n /** The type of location to search for.\n * Options: `'geocode' | 'airport' | 'pointOfInterest' | 'property' | 'address'`\n * Can be provided in an array\n */\n type?: LocationTypes | LocationTypes[];\n /** The number of results to limit the search to. * Can be provided in an array with each value corresponding to the `type` option. */\n count?: number | number[];\n /** The coordinates to use when making a search. This is used to bias the results based on location */\n coordinate?: Coordinate;\n /** Unique id to use when making a search. If one is not supplied one is created using crypto.randomUUID(). @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID} */\n sessionId?: string;\n /** Toggle exclusion rules by country */\n applyExclusions?: boolean;\n}\n\nexport type UsePlacesAutocompleteProps = {\n /** Enabled autocomplete fetch */\n isEnabled?: boolean;\n /** Minimum charters needed to be entered before a search is attempted */\n minLength?: number;\n /** Query options that are used when making a search for locations */\n serviceOptions: PredictionService;\n};\n\nconst mapParamToString = (param: unknown) => {\n if (Array.isArray(param)) return param.join(',');\n if (Number.isFinite(param)) return String(param);\n return String(param);\n};\n\nconst getPredictions = async ({\n sessionId = crypto.randomUUID(),\n coordinate,\n uri,\n ...params\n}: PredictionService): Promise<AutoCompleteResponse | null> => {\n const url = new URL(uri, window.location.origin);\n\n const urlSearchParams = new URLSearchParams({\n ...(params?.input && { input: params.input }),\n ...(params?.language && { language: params.language }),\n ...(params?.type && { type: mapParamToString(params?.type) }),\n ...(params?.count && { count: mapParamToString(params.count) }),\n ...(params?.applyExclusions && { applyExclusions: mapParamToString(params.applyExclusions) }),\n ...(coordinate && {\n location: mapParamToString(`${coordinate.latitude},${coordinate.longitude}`),\n }),\n });\n\n try {\n const response = await fetch(url.href + `?${urlSearchParams.toString()}`, {\n method: 'GET',\n headers: {\n 'dx-map-session-token': sessionId,\n },\n });\n const autocompleteResults = await response.json();\n\n if (autocompleteResults?.status === 'SELECTION_REQUIRED') {\n dynatrace?.sendSessionProperties({ shortString: { searchdrawbridge: 'Up' } });\n }\n\n return autocompleteResults;\n } catch {\n return null;\n }\n};\n\n/**\n * A search as you type hook that provides a list of predictions.\n */\nexport const usePlacesAutocomplete = ({\n isEnabled = true,\n minLength = 2,\n serviceOptions,\n}: UsePlacesAutocompleteProps) => {\n const hasSearchTerms = !!serviceOptions?.input && serviceOptions.input?.length >= minLength;\n\n const { isFetching, data: autocompleteResponse } = useQuery<AutoCompleteResponse | null>({\n queryKey: ['autocomplete', serviceOptions],\n queryFn: () => getPredictions(serviceOptions),\n enabled: isEnabled && hasSearchTerms,\n placeholderData: keepPreviousData,\n });\n\n return {\n predictions: autocompleteResponse?.predictions || null,\n loading: isFetching,\n status: autocompleteResponse?.status || null,\n };\n};\n","/// <reference types=\"@types/google.maps\" />\n\nimport { useState, useEffect } from 'react';\n\nexport type FormattedSuggestion = {\n mainText: string;\n secondaryText: string;\n};\n\nexport type PlacesAutocompleteSuggestion = {\n id?: string;\n description: string;\n placeId: string;\n active?: boolean;\n index?: number;\n formattedSuggestion: FormattedSuggestion;\n matchedSubstrings?: google.maps.places.PredictionSubstring[];\n terms?: google.maps.places.PredictionTerm[];\n type?: string;\n types?: string[];\n};\n\nexport type AutocompletePrediction = google.maps.places.AutocompletePrediction & {\n type: string;\n};\ntype SuggestionsProps = {\n predictions: AutocompletePrediction[] | null;\n};\n\ntype SuggestionsRenderProps = {\n suggestions: PlacesAutocompleteSuggestion[];\n};\n\ntype UseSuggestionsHook = (props: SuggestionsProps) => SuggestionsRenderProps;\n\nconst formattedSuggestion = (\n formatting: google.maps.places.StructuredFormatting\n): FormattedSuggestion => ({\n mainText: formatting.main_text,\n secondaryText: formatting.secondary_text,\n});\n\nexport const useSuggestions: UseSuggestionsHook = ({ predictions }) => {\n const [suggestions, setSuggestions] = useState<PlacesAutocompleteSuggestion[]>([]);\n\n useEffect(() => {\n if (!predictions || predictions.length === 0) {\n setSuggestions([]);\n return;\n }\n const results = predictions.map((p, idx) => ({\n id: p.place_id,\n description: p.description,\n placeId: p.place_id,\n active: false,\n index: idx,\n formattedSuggestion: formattedSuggestion(p.structured_formatting),\n matchedSubstrings: p.matched_substrings,\n terms: p.terms,\n type: p.type,\n types: p.types,\n }));\n setSuggestions(results);\n }, [predictions]);\n\n return { suggestions };\n};\n","export * from './use-places-autocomplete';\nexport * from './use-suggestions';\n","export * from './lib';\n","import type * as React from 'react';\nimport { ComboboxOption } from '@headlessui/react';\nimport type { FormInputBase } from '@dx-ui/osc-form';\nimport { useTranslation } from 'next-i18next';\nimport type { GeocodeCoordinateQuery } from '../gql/types';\n\ntype LocationHotelsNearMeOption = FormInputBase<\n Omit<React.HTMLAttributes<HTMLInputElement>, 'value' | 'onSelect'>\n>;\n\nconst LocationHotelsNearMeOption = ({\n geocodeData,\n}: {\n geocodeData?: GeocodeCoordinateQuery['geocode'];\n showNoResultsFound?: boolean;\n}) => {\n const { t } = useTranslation('osc-location');\n const userCity = geocodeData?.match?.address?.city || '';\n\n let stateCountry = geocodeData?.match?.address?.stateName;\n if (stateCountry)\n stateCountry += geocodeData?.match?.address?.country\n ? `, ${geocodeData?.match?.address?.country}`\n : `${geocodeData?.match?.address?.country}`;\n else\n stateCountry += geocodeData?.match?.address?.country\n ? ` ${geocodeData?.match?.address?.country}`\n : ``;\n\n return geocodeData && userCity ? (\n <div>\n <div className=\"flex pb-0 pt-1 ltr:pl-2 ltr:text-left rtl:pr-2 \">\n <span className=\"text-text-alt\">{t('optionsHeader.hotelsNearBy')}</span>\n </div>\n <ComboboxOption\n key={userCity}\n value={userCity}\n className=\"data-[focus]:bg-bg-primary data-[selected]:bg-bg-alt highlighted:bg-bg-alt cursor-pointer px-4 py-2\"\n aria-setsize={1}\n aria-posinset={1}\n >\n <div className=\"flex min-w-[226px]\">\n <div className=\"flex justify-center\" aria-hidden>\n <img\n className=\"size-6 object-contain\"\n alt=\"location icon\"\n src=\"/modules/assets/img/common/icon_location@2x.png\"\n />\n </div>\n <div className=\"flex flex-col ltr:pl-2 ltr:text-left rtl:pr-2\">\n <span className=\"text-base\">{userCity}</span>\n <span className=\"text-text-alt text-xs\">{stateCountry}</span>\n </div>\n </div>\n </ComboboxOption>\n </div>\n ) : null;\n};\n\nexport { LocationHotelsNearMeOption };\nexport default LocationHotelsNearMeOption;\n","import type { PlacesAutocompleteSuggestion } from '@dx-ui/framework-places-autocomplete';\nimport { useLocalStorage } from 'usehooks-ts';\n\nconst REFRESH_TTL_2WEEK = 604800 * 2 * 1000;\nconst DISPLAY_COUNT = 5;\n\nexport function sanitizePlacesAutocompleteSuggestions(\n places: PlacesAutocompleteSuggestion[]\n): PlacesAutocompleteSuggestion[] {\n const knownDescriptions = new Set();\n\n return places\n .filter((place) => {\n if (knownDescriptions.has(place.description)) {\n return false;\n } else {\n knownDescriptions.add(place.description);\n return true;\n }\n })\n .slice(0, DISPLAY_COUNT);\n}\n\nexport function useRecentSearches() {\n const [value, setValue] = useLocalStorage<PlacesAutocompleteSuggestion[]>('RecentSearches', [], {\n initializeWithValue: false,\n\n serializer: (instance) =>\n JSON.stringify({\n instance,\n expireDate: new Date().getTime() + REFRESH_TTL_2WEEK,\n }),\n\n deserializer: (s: string): PlacesAutocompleteSuggestion[] => {\n try {\n const val: unknown = JSON.parse(s);\n if (\n val &&\n typeof val === 'object' &&\n 'expireDate' in val &&\n typeof val.expireDate === 'number' &&\n 'instance' in val\n ) {\n const { expireDate, instance } = val;\n const ttl = new Date(expireDate).getTime() - new Date().getTime();\n\n if (ttl <= 0) {\n return [];\n }\n\n if (instance && Array.isArray(instance)) {\n return instance;\n }\n }\n return [];\n } catch {\n return [];\n }\n },\n });\n\n const lengthLimitedValue = (value ?? []).slice(0, DISPLAY_COUNT);\n\n return [lengthLimitedValue, setValue] as const;\n}\n","import type { LocationTypes } from '@dx-ui/framework-places-autocomplete';\nimport type { IconNames } from '@dx-ui/osc-icon';\n\nexport const LocationIcons: { [key in LocationTypes]: (typeof IconNames)[number] } = {\n address: 'location',\n airport: 'airport',\n geocode: 'location',\n pointOfInterest: 'point-of-interest',\n property: 'hotel',\n};\n","import { ComboboxOption } from '@headlessui/react';\nimport type { FormInputBase } from '@dx-ui/osc-form';\nimport type {\n LocationTypes,\n PlacesAutocompleteSuggestion,\n} from '@dx-ui/framework-places-autocomplete';\nimport { LocationIcons } from './icons.constant';\nimport Icon from '@dx-ui/osc-icon';\n\ntype PlacesAutoCompleteSuggestionOptions = FormInputBase<\n Omit<React.HTMLAttributes<HTMLInputElement>, 'value' | 'onSelect'>\n>;\n\nconst PlacesAutoCompleteSuggestionOptions = ({\n suggestions,\n header = '',\n}: {\n header?: string;\n suggestions?: PlacesAutocompleteSuggestion[];\n}) => {\n if (!suggestions) return null;\n return (\n <div>\n {suggestions.map((suggestion, index: number) => {\n return (\n <ComboboxOption\n key={suggestion.description}\n value={suggestion.description}\n className=\"data-[focus]:bg-bg-primary data-[selected]:bg-bg-alt highlighted:bg-bg-alt cursor-pointer px-4 py-2\"\n aria-setsize={suggestions.length}\n aria-posinset={index + 1}\n data-testid={header ? header : undefined}\n >\n <AutoCompleteSuggestionOptionsWrapper\n iconType={suggestion?.type}\n header={header && !!suggestions.length && index === 0 ? header : undefined}\n >\n <>\n <span className=\"text-base\" data-testid=\"autocomplete-text\">\n {suggestion.formattedSuggestion.mainText}\n </span>\n <span className=\"text-text-alt text-xs\">\n {suggestion.formattedSuggestion.secondaryText}\n </span>\n </>\n </AutoCompleteSuggestionOptionsWrapper>\n </ComboboxOption>\n );\n })}\n </div>\n );\n};\n\nconst AutoCompleteSuggestionOptionsWrapper = ({\n header,\n iconType,\n children,\n}: {\n header?: string;\n iconType?: string;\n children: React.ReactNode;\n}) => {\n const locationIconName =\n iconType && iconType in LocationIcons ? LocationIcons[iconType as LocationTypes] : 'location';\n return (\n <>\n {header ? (\n <div className=\"flex min-w-[226px] pb-2 pr-1 ltr:text-left rtl:ps-2\">\n <span className=\"text-text-alt\">{header}</span>\n </div>\n ) : null}\n <div className=\"flex min-w-[226px]\">\n <div className=\"flex shrink-0 justify-center\" aria-hidden>\n <Icon name={locationIconName} size=\"lg\" />\n </div>\n <div className=\"flex flex-col ps-2 ltr:text-left\">{children}</div>\n </div>\n </>\n );\n};\n\nexport { PlacesAutoCompleteSuggestionOptions, AutoCompleteSuggestionOptionsWrapper };\nexport default PlacesAutoCompleteSuggestionOptions;\n","import type { FormInputBase } from '@dx-ui/osc-form';\nimport type * as React from 'react';\nimport { useRecentSearches } from './location-options-utils';\nimport type { PlacesAutocompleteSuggestion } from '@dx-ui/framework-places-autocomplete';\nimport PlacesAutoCompleteSuggestionOptions from '../autoComplete-suggestion-options';\nimport { useTranslation } from 'next-i18next';\n\ntype LocationPopularDestinationsOption = FormInputBase<\n Omit<React.HTMLAttributes<HTMLInputElement>, 'value' | 'onSelect'>\n>;\n\nconst LocationPopularDestinationsOption = ({\n isNearByEnabled,\n popularDestinations,\n popularDestinationsCount = 5,\n showRecentDestinations = false,\n}: {\n isNearByEnabled?: boolean;\n popularDestinations?: PlacesAutocompleteSuggestion[];\n popularDestinationsCount?: number;\n showRecentDestinations?: boolean;\n}) => {\n const { t } = useTranslation('osc-location');\n const cachedRecentSearches = useRecentSearches();\n\n const displayCount = isNearByEnabled ? 3 : popularDestinationsCount;\n\n const popularDestinationsOptions = popularDestinations?.slice(\n 0,\n displayCount\n ) as unknown as PlacesAutocompleteSuggestion[];\n const recentSearchOptions = showRecentDestinations ? cachedRecentSearches : [];\n const showPopularDestinations = !(!!showRecentDestinations && recentSearchOptions?.length);\n\n return showPopularDestinations ? (\n <PlacesAutoCompleteSuggestionOptions\n header={t('optionsHeader.popularDestinations')}\n suggestions={popularDestinationsOptions}\n />\n ) : null;\n};\n\nexport { LocationPopularDestinationsOption };\nexport default LocationPopularDestinationsOption;\n","import type { FormInputBase } from '@dx-ui/osc-form';\nimport type * as React from 'react';\nimport { useRecentSearches } from './location-options-utils';\nimport { PlacesAutoCompleteSuggestionOptions } from '../autoComplete-suggestion-options';\nimport { useTranslation } from 'next-i18next';\n\ntype LocationRecentSearchesOption = FormInputBase<\n Omit<React.HTMLAttributes<HTMLInputElement>, 'value' | 'onSelect'>\n>;\n\nconst LocationRecentSearchesOption = ({ isNearByEnabled }: { isNearByEnabled?: boolean }) => {\n const { t } = useTranslation('osc-location');\n\n const [recentSearchOptions] = useRecentSearches();\n const displayCount = isNearByEnabled ? 3 : 5;\n const recentSearches = recentSearchOptions?.slice(0, displayCount);\n\n return (\n <PlacesAutoCompleteSuggestionOptions\n header={t('optionsHeader.recentSearches')}\n suggestions={recentSearches}\n />\n );\n};\n\nexport { LocationRecentSearchesOption };\nexport default LocationRecentSearchesOption;\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const GetTranslateAutocompleteConfigDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs {\n featureConfigs(names: [\"config-ui-translate-autocomplete\"]) {\n config\n name\n }\n}`,\n originalOpName: 'getTranslateAutocompleteConfig',\n};\nexport function useGetTranslateAutocompleteConfigQuery<\n TData = Types.GetTranslateAutocompleteConfigQuery,\n TError = DXError\n>(\n variables?: Types.GetTranslateAutocompleteConfigQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.GetTranslateAutocompleteConfigQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.GetTranslateAutocompleteConfigQuery, TError, TData>({\n queryKey: [GetTranslateAutocompleteConfigDocument, variables],\n ...options,\n });\n}\nexport function serverSideGetTranslateAutocompleteConfigQuery(\n queryClient: QueryClient,\n variables?: Types.GetTranslateAutocompleteConfigQueryVariables,\n options?: FetchQueryOptions<Types.GetTranslateAutocompleteConfigQuery>\n) {\n return queryClient.fetchQuery<Types.GetTranslateAutocompleteConfigQuery>({\n queryKey: [GetTranslateAutocompleteConfigDocument, variables],\n ...options,\n });\n}\n\nexport const GeocodeCoordinateDocument = {\n operationName: 'geocode',\n operationString: `query geocode($location: GeocodeCoordinateInput, $language: String!, $sessionToken: String) {\n geocode(language: $language, location: $location, sessionToken: $sessionToken) {\n match {\n address {\n city\n country\n stateName\n }\n }\n }\n}`,\n originalOpName: 'geocodeCoordinate',\n};\nexport function useGeocodeCoordinateQuery<TData = Types.GeocodeCoordinateQuery, TError = DXError>(\n variables: Types.GeocodeCoordinateQueryVariables,\n options?: Omit<UseQueryOptions<Types.GeocodeCoordinateQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GeocodeCoordinateQuery, TError, TData>({\n queryKey: [GeocodeCoordinateDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocodeCoordinateQuery(\n queryClient: QueryClient,\n variables: Types.GeocodeCoordinateQueryVariables,\n options?: FetchQueryOptions<Types.GeocodeCoordinateQuery>\n) {\n return queryClient.fetchQuery<Types.GeocodeCoordinateQuery>({\n queryKey: [GeocodeCoordinateDocument, variables],\n ...options,\n });\n}\n","import * as React from 'react';\nimport { Controller, get, useFormContext, useFormState, useWatch } from 'react-hook-form';\nimport { Combobox, ComboboxInput, ComboboxOptions, Field } from '@headlessui/react';\nimport type { FormInputBase } from '@dx-ui/osc-form';\nimport { useTranslation } from 'next-i18next';\nimport { useSuggestions } from '@dx-ui/framework-places-autocomplete';\nimport { FormError, FormLabel } from '@dx-ui/osc-form';\nimport { Spinner } from '@dx-ui/osc-spinner';\nimport cx from 'classnames';\nimport HotelsNearMeOption from './location-options/hotels-near-me-option';\nimport type {\n PredictionService,\n AutocompletePrediction,\n PredictionStatusTypes,\n PlacesAutocompleteSuggestion,\n} from '@dx-ui/framework-places-autocomplete';\nimport PopularDestinationsOptions from './location-options/popular-destinations';\nimport RecentSearchesOptions from './location-options/recent-searches';\nimport {\n sanitizePlacesAutocompleteSuggestions,\n useRecentSearches,\n} from './location-options/location-options-utils';\nimport PlacesAutoCompleteSuggestionOptions, {\n AutoCompleteSuggestionOptionsWrapper,\n} from './autoComplete-suggestion-options';\nimport { useGeocodeCoordinateQuery } from './gql/queries';\n\ntype BaseLocationInputOptions = FormInputBase<\n Omit<React.ComponentProps<'input'>, 'value' | 'onSelect'>\n>;\n\nexport interface LocationInput extends BaseLocationInputOptions {\n /** minimum length to trigger a search */\n autoCompleteLength?: number;\n /** Set the lat/long bias for this search.\n * PredictionService [coordinate](/?path=/docs/library-framework-places-autocomplete--page)\n */\n coordinate?: PredictionService['coordinate'];\n /** Flag to ensure hotels near `coordinates` provided are displayed */\n enableHotelsNearMe?: boolean;\n /** language value passed from router */\n language: string;\n /** Flag to ensure recent searches are displayed */\n enableRecentSearches?: boolean;\n /** Need to provide context */\n placeIdFieldName?: string;\n /** List of predictions that are returned from the service */\n predictions: AutocompletePrediction[] | null;\n /** popular destinations options */\n popularDestinationOptions?: PlacesAutocompleteSuggestion[] | null;\n /** Whether this input field is required */\n required?: HTMLInputElement['required'];\n /** Provide the sessionId to use with this search.\n * PredictionService [sessionId](/?path=/docs/library-framework-places-autocomplete--page)\n */\n sessionId?: PredictionService['sessionId'];\n status: PredictionStatusTypes | null;\n checkAutocompleteStatus?: boolean;\n}\n\nconst isHandheld = (userAgent: string): boolean => {\n return /mobile|tablet|ipad|android/i.test(userAgent);\n};\n\nexport const LocationInput: React.FC<React.PropsWithChildren<LocationInput>> = ({\n coordinate,\n enableHotelsNearMe = false,\n enableRecentSearches = false,\n name,\n predictions,\n required,\n optional,\n loading,\n label,\n labelClassName,\n language,\n className,\n registerOptions,\n sessionId,\n autoCompleteLength = 2,\n placeIdFieldName = 'placeId',\n status,\n checkAutocompleteStatus = true,\n popularDestinationOptions,\n ...rest\n}) => {\n const { t } = useTranslation('osc-location');\n const errorId = `input-error-location`;\n const {\n getFieldState,\n control,\n setValue,\n trigger,\n formState: { errors },\n } = useFormContext();\n\n const [currentSuggestion, setCurrentSuggestion] =\n React.useState<PlacesAutocompleteSuggestion | null>(null);\n const [recentSearches, setRecentSearches] = useRecentSearches();\n const { isSubmitting } = useFormState();\n\n React.useEffect(() => {\n if (isSubmitting && currentSuggestion) {\n setRecentSearches((recentSearches) =>\n sanitizePlacesAutocompleteSuggestions([currentSuggestion, ...recentSearches])\n );\n }\n }, [currentSuggestion, isSubmitting, setRecentSearches]);\n\n const [showAriaLabel, setShowAriaLabel] = React.useState(false);\n const { suggestions } = useSuggestions({ predictions });\n const inputName = name;\n const inputValue = useWatch({ control, name });\n const fieldError = get(errors, name);\n const hasError = !!fieldError;\n const hasSearchTerm = !!inputValue && inputValue.length >= autoCompleteLength;\n const hasSuggestions = suggestions.length > 0;\n const autoCompleteSelectionRequired = status === 'SELECTION_REQUIRED' && checkAutocompleteStatus;\n\n const { data, isFetching: isGeoCodeFetching } = useGeocodeCoordinateQuery(\n { language, location: coordinate, sessionToken: sessionId },\n { enabled: !!coordinate && enableHotelsNearMe }\n );\n\n const geocodeData = data?.geocode;\n const enablePopularDestinations = !!popularDestinationOptions;\n const isPlacesAutocompleteSuggestions = !(\n enableHotelsNearMe ||\n enablePopularDestinations ||\n enableRecentSearches\n );\n const [showSuggestions, setShowSuggestions] = React.useState(!isPlacesAutocompleteSuggestions);\n const onKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key !== 'Enter') {\n const hideSuggestions = isPlacesAutocompleteSuggestions && !hasSearchTerm;\n setShowSuggestions(!hideSuggestions);\n }\n //When customer freeform types still check autocomplete results to see whether a valid placeId is found\n setValue(\n placeIdFieldName,\n suggestions.find((suggestion) => suggestion.description === e.currentTarget.value)?.placeId ||\n ''\n );\n };\n\n const showHotelsNearMe = !!(enableHotelsNearMe && !hasSearchTerm && geocodeData);\n const showPopularDestinations = enablePopularDestinations && !hasSearchTerm;\n const showRecentSearches = enableRecentSearches && !hasSearchTerm && recentSearches.length > 0;\n\n const showAutoCompleteSuggestions = !(\n showHotelsNearMe ||\n showPopularDestinations ||\n showRecentSearches\n );\n const showSuggestionsPopover =\n showSuggestions || showHotelsNearMe || showPopularDestinations || showRecentSearches;\n const showSuggestionOptions =\n showSuggestions &&\n (hasSuggestions || showHotelsNearMe || showPopularDestinations || showRecentSearches);\n\n const onSelect = async (selectValue: string) => {\n setValue(inputName, selectValue);\n const selectedSuggestion = getSelectedSuggestion(selectValue);\n\n setValue(placeIdFieldName, selectedSuggestion?.placeId ?? '');\n setShowSuggestions(false);\n if (enableRecentSearches && selectedSuggestion) {\n setCurrentSuggestion(selectedSuggestion);\n }\n await trigger(inputName);\n\n if (autoCompleteSelectionRequired) await trigger(inputName);\n };\n\n const onFocus = () => {\n if (isPlacesAutocompleteSuggestions && !hasSearchTerm) {\n setShowSuggestions(false);\n } else {\n const locationFieldState = getFieldState(name);\n const locationFieldError = !!locationFieldState?.error?.message;\n if (locationFieldError) setShowSuggestions(false);\n }\n setShowAriaLabel(true);\n };\n\n const getSelectedSuggestion = (selectValue: string) => {\n if (showRecentSearches && recentSearches?.length) {\n return recentSearches.find((suggestion) => suggestion.description === selectValue);\n } else if (showPopularDestinations) {\n return popularDestinationOptions?.find(\n (suggestion) => suggestion?.description === selectValue\n );\n } else return suggestions?.find((suggestion) => suggestion.description === selectValue);\n };\n\n const getAriaText = () => {\n if (!hasSearchTerm || !showAriaLabel) {\n return '';\n }\n switch (true) {\n case loading:\n return t('loading');\n case autoCompleteSelectionRequired && hasSuggestions:\n return t('ariaSuggestionRequired', {\n drawBridgeNotification: t('drawBridgeSelect'),\n ariaSuggestions: t('ariaSuggestions', { count: suggestions.length }),\n });\n case hasSuggestions:\n return t('ariaSuggestions', { count: suggestions.length });\n case autoCompleteSelectionRequired && !hasSuggestions:\n return t('drawBridgeNoResults');\n default:\n return t('noSuggestions');\n }\n };\n\n const validatePredictions = (value: string) => {\n const isValidPrediction = suggestions.some((suggestion) => suggestion.description === value);\n return isValidPrediction || t('selectSuggestion');\n };\n\n // HACK: Temporarily switch ComboboxInput to uncontrolled while isComposing is true\n // to prevent selections from an Input Method Editor (IME) on mobile from being appended to\n // the text input instead of replaced.\n const isComposing = React.useRef(false);\n const isMobileIME =\n (language === 'ja' || /^zh.*/.test(language)) &&\n typeof navigator !== 'undefined' &&\n isHandheld(navigator.userAgent);\n const handleCompositionEnd = () => {\n isComposing.current = false;\n };\n const handleCompositionStart = () => {\n isComposing.current = true;\n };\n const openOnFocus = !isPlacesAutocompleteSuggestions && !hasError;\n\n const comboboxInputValue = inputValue || '';\n\n return (\n <div className=\"relative w-full\" data-osc-product=\"shop-form-location\">\n <Controller\n name={inputName}\n control={control}\n rules={{\n ...registerOptions,\n required: required && !autoCompleteSelectionRequired ? t('validation') : false,\n validate:\n (autoCompleteSelectionRequired && validatePredictions) || registerOptions?.validate,\n onBlur: () => setShowAriaLabel(false),\n }}\n render={({ field }) => {\n return (\n <Field>\n <FormLabel\n label={label}\n required={required}\n optional={optional}\n hasError={hasError}\n className={cx('brand-ey:font-normal brand-lx:font-semibold w-full', labelClassName)}\n htmlFor=\"location-input\"\n />\n <Combobox\n name=\"location\"\n value={isMobileIME && isComposing.current ? undefined : comboboxInputValue}\n immediate={openOnFocus}\n onChange={onSelect}\n >\n <ComboboxInput\n {...field}\n {...rest}\n ref={field.ref as React.Ref<HTMLInputElement>}\n id=\"location-input\"\n displayValue={isMobileIME && isComposing.current ? undefined : comboboxInputValue}\n className={cx(\n 'form-input brand-ey:border-primary-alt brand-lx:bg-bg-light brand-lx:border-primary brand-lx:placeholder:text-text brand-ou:bg-transparent brand-ou:border-primary w-full',\n className,\n {\n 'form-error': hasError,\n }\n )}\n onKeyUp={onKeyUp}\n onFocus={onFocus}\n onCompositionEnd={handleCompositionEnd}\n onCompositionStart={handleCompositionStart}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck={false}\n aria-label={t('ariaInput', { label })}\n aria-invalid={hasError}\n aria-describedby={errorId}\n data-osc-product=\"shop-form-location-input\"\n required={required}\n />\n <ComboboxOptions\n // This prevents headlessui-react from adding aria-hidden to sibling elements when Combobox is active. That behavior was causing jest tests to fail.\n modal={false}\n className={cx(\n 'text-text bg-bg border-border absolute z-50 transform-gpu rounded border border-solid text-sm font-normal shadow-lg',\n { hidden: !showSuggestionsPopover }\n )}\n >\n {autoCompleteSelectionRequired ? (\n <div className=\"bg-warn-alt px-4 py-2\">\n <AutoCompleteSuggestionOptionsWrapper iconType=\"alert\">\n <span className=\"text-base font-bold\" aria-hidden>\n {hasSuggestions ? t('drawBridgeSelect') : t('drawBridgeNoResults')}\n </span>\n </AutoCompleteSuggestionOptionsWrapper>\n </div>\n ) : null}\n\n {showSuggestionOptions ? (\n <>\n {showHotelsNearMe && !isGeoCodeFetching ? (\n <HotelsNearMeOption\n geocodeData={geocodeData}\n key={`hotels-nearby-${!!geocodeData}`}\n />\n ) : null}\n {showPopularDestinations ? (\n <PopularDestinationsOptions\n isNearByEnabled={showHotelsNearMe}\n popularDestinations={popularDestinationOptions}\n showRecentDestinations={showRecentSearches}\n />\n ) : null}\n {showRecentSearches ? (\n <RecentSearchesOptions isNearByEnabled={showHotelsNearMe} />\n ) : null}\n {showAutoCompleteSuggestions ? (\n <PlacesAutoCompleteSuggestionOptions suggestions={suggestions} />\n ) : null}\n </>\n ) : !hasSuggestions && !hasError ? (\n <div className=\"p-3\" aria-hidden>\n {loading ? <Spinner size=\"md\" delay={0} /> : t('noSuggestions')}\n </div>\n ) : null}\n </ComboboxOptions>\n </Combobox>\n </Field>\n );\n }}\n />\n <p className=\"sr-only\" aria-live=\"assertive\">\n {getAriaText()}\n </p>\n <FormError id={errorId} error={hasError && fieldError} className=\"lg:absolute\" />\n </div>\n );\n};\n\nLocationInput.displayName = 'LocationInput';\n\nexport default LocationInput;\n","import { useFormContext, useWatch } from 'react-hook-form';\nimport { LocationInput } from './location.input';\nimport type { PredictionService } from '@dx-ui/framework-places-autocomplete';\nimport { usePlacesAutocomplete } from '@dx-ui/framework-places-autocomplete';\nimport { useDebounceValue } from 'usehooks-ts';\nimport { useGetTranslateAutocompleteConfigQuery } from './gql/queries';\n\nexport type Location = Omit<LocationInput, 'predictions' | 'status'> & {\n autocompleteUri?: PredictionService['uri'];\n type?: PredictionService['type'];\n count?: PredictionService['count'];\n enableRecentSearches?: boolean;\n assetsUrl?: string;\n applyExclusions?: boolean;\n};\n\n/**\n * Location is an optional component that may be consumed either standalone or as part of the newer [composable shop form component](?path=/docs/library-products-shop-form--default-story).\n */\nexport const Location: React.FC<React.PropsWithChildren<Location>> = ({\n coordinate,\n type,\n count,\n sessionId,\n label,\n language,\n applyExclusions,\n name = 'query',\n autocompleteUri = '/dx-customer/autocomplete',\n autoCompleteLength = 2,\n ...rest\n}) => {\n const { control } = useFormContext();\n const inputValue = useWatch({ control, name });\n\n const [debouncedInputValue] = useDebounceValue<string>(inputValue, 300);\n const enablePlacesAutoComplete =\n !!debouncedInputValue && debouncedInputValue.length >= autoCompleteLength;\n const { data, isFetched: IsTranslateAutocompleteResolved } =\n useGetTranslateAutocompleteConfigQuery();\n const configLanguages = data?.featureConfigs?.[0]?.config?.languages;\n const isSupportedLanguage =\n IsTranslateAutocompleteResolved &&\n !!configLanguages?.length &&\n configLanguages.includes(language);\n\n const { loading, predictions, status } = usePlacesAutocomplete({\n isEnabled: enablePlacesAutoComplete && IsTranslateAutocompleteResolved,\n minLength: autoCompleteLength,\n serviceOptions: {\n coordinate,\n uri: autocompleteUri,\n input: debouncedInputValue,\n type,\n applyExclusions,\n count,\n language: isSupportedLanguage ? language : 'en',\n sessionId,\n },\n });\n\n return (\n <LocationInput\n coordinate={coordinate}\n name={name}\n predictions={predictions}\n loading={loading}\n status={status}\n label={label}\n language={language}\n autoCompleteLength={autoCompleteLength}\n sessionId={sessionId}\n {...rest}\n />\n );\n};\n\nLocation.displayName = 'Location';\nexport default Location;\n","export * from './lib/location';\nexport * from './lib/location-options/hotels-near-me-option';\nexport * from './lib/location.input';\nexport * from './lib/gql/types';\nexport * from './lib/gql/queries';\nexport * from './lib/location-options/location-options-utils';\n","/* eslint-disable camelcase */\nimport type { Link } from '@dx-ui/osc-link';\nimport type { LoginResponse } from '@dx-ui/framework-auth-provider';\n\nexport type { LoginResponse };\n\nexport type GuestLoginState = {\n password: {\n status: string;\n value: string;\n };\n remember: { value: boolean };\n recaptcha?: string;\n username: {\n override: string;\n status: string;\n value: string;\n };\n};\n\n/** @deprecated - @see AuthUserInfo */\nexport type GuestUserInfo = {\n keyIdentifier: number;\n guestId: number;\n domainUserName: string;\n userRealm: string;\n hhonorsNumber: number;\n username: string;\n};\n\n/**\n * Thes are the login event types in the message body passed from the login form\n * @see [Window.postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)\n */\nexport const LoginFormEventType = {\n /** Used when requesting app's digitalData object */\n DIGITALDATA: 'digitalData',\n /** Used when there is a login attempt */\n LOGIN: 'onLogin',\n /**\n * **deprecated** - used to clear prefilled username\n * @deprecated\n */\n CLEAR: 'clearUser',\n /** Used to indicate closing of the login form */\n CLOSE: 'onClose',\n /** Used when login form is ready */\n READY: 'onReady',\n /** Used when login form height changes */\n HEIGHT: 'onHeightChange',\n /** Used when the login process is finished */\n COMPLETE: 'onComplete',\n} as const;\n\nexport type GuestLoginResponse = LoginResponse & {\n /**\n * **deprecated** - use `type`\n * @deprecated\n */\n handler?: ValuesOf<typeof LoginFormEventType>;\n /** Login form event type. This */\n type?: ValuesOf<typeof LoginFormEventType>;\n /**\n * **deprecated** - The active state of parent window\n * @deprecated\n */\n status?: string;\n /** The height of login page */\n height?: number;\n};\n\n/** @deprecated - @see AuthTokenInfo */\nexport type TokenInfo = {\n scope: string;\n token_type: string;\n expires_in: number;\n iat: number;\n exp: number;\n access_token: string;\n};\n\nexport type GuestLoginConfigOptions = {\n /** Display the create password text. must be set with `forgetInfoLink` */\n showCreatePassword?: boolean;\n /** Displays the forgot password link on the login form */\n forgetInfoLink?: Omit<Link, 'icon'>;\n /** Displays the secure info link on the login form */\n secureInfoLink?: Omit<Link, 'icon'>;\n /** Displays the Join link on the login form */\n joinLink?: Omit<Link, 'icon'>;\n /** Displays the parent window's digitalData object */\n digitalData?: string;\n /** Default username **/\n username?: string;\n};\n","import * as React from 'react';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type { GuestLoginConfigOptions, LoginResponse, GuestLoginResponse } from './login.types';\nimport { LoginFormEventType } from './login.types';\n\ntype LoginIFrame = React.IframeHTMLAttributes<HTMLIFrameElement> & {\n /** Title of the iframe */\n title: string;\n /** The source for the iframe to use */\n frameSrc: string;\n /**\n * Callback for login attempts. Handles both success and error.\n *\n * > NOTE: `onLogin` and `onLoginError` are **DEPRECATED** in favor of this prop\n * */\n onLoginAttempt: (response: LoginResponse<any>) => void; // eslint-disable-line @typescript-eslint/no-explicit-any\n /** Options for the iframe */\n options?: GuestLoginConfigOptions;\n /** Handler for closing, if used in a modal */\n onClose?: () => void;\n /**\n * **deprecated** - Do not use - use `onLoginAttempt`\n * @deprecated\n */\n onLogin?: (data: NonNullable<LoginResponse['data']>) => void;\n /**\n * **deprecated** - Do not use - use `onLoginAttempt`\n * @deprecated\n */\n onLoginError?: (error: NonNullable<LoginResponse['error']>) => void;\n};\n\n/**\n * This component can be used separately and provides the communication logic between the parent windown and the iframe.\n *\n * `import { LoginIFrame } from '@dx-ui/osc-login'`\n */\nexport const LoginIFrame: React.FC<React.PropsWithChildren<LoginIFrame>> = ({\n frameSrc,\n options = {},\n onClose,\n onLoginAttempt,\n onLogin,\n title,\n onLoginError,\n ...rest\n}: LoginIFrame) => {\n const readyCount = React.useRef(0);\n const iframeRef = React.useRef<HTMLIFrameElement>(null);\n const noOptions = Object.keys(options).length === 0;\n const [frameHeight, setFrameHeight] = React.useState(291.25);\n\n const handleMessage = React.useCallback(\n (event: MessageEvent<GuestLoginResponse>) => {\n const {\n data: { handler, type, height, data, error, status },\n } = event;\n // @todo remove - Keeping status, handler for backwards compatibility\n if (\n (status === 'ready' ||\n type === LoginFormEventType.HEIGHT ||\n handler === LoginFormEventType.HEIGHT) &&\n height\n ) {\n readyCount.current += 1;\n if (noOptions || readyCount.current > 1) {\n setFrameHeight(height);\n }\n }\n\n if (type === LoginFormEventType.DIGITALDATA) {\n options.digitalData = JSON.stringify(window.digitalData);\n sendMessageToIframe();\n }\n\n // @todo remove - Keeping handler for backwards compatibility\n if (type === LoginFormEventType.CLOSE || handler === LoginFormEventType.CLOSE) {\n onClose?.();\n }\n\n // @todo remove - Keeping handler for backwards compatibility\n if (type === LoginFormEventType.LOGIN || handler === LoginFormEventType.LOGIN) {\n if (error) {\n onLoginError?.(error);\n onLoginAttempt({ error });\n }\n if (data) {\n onLogin?.(data);\n onLoginAttempt({ data });\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const sendMessageToIframe = () => {\n if (iframeRef.current && iframeRef.current.contentWindow) {\n iframeRef.current.contentWindow.postMessage(options, frameSrc);\n }\n };\n\n React.useEffect(() => {\n if (isBrowser) {\n window.addEventListener('message', handleMessage);\n }\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [handleMessage]);\n\n return (\n <div className=\"w-full py-2\">\n <iframe\n onLoad={sendMessageToIframe}\n ref={iframeRef}\n src={frameSrc}\n title={title}\n height={frameHeight}\n width=\"100%\"\n {...rest}\n />\n </div>\n );\n};\n\nLoginIFrame.displayName = 'LoginIFrame';\n\nexport default LoginIFrame;\n","import { forwardRef } from 'react';\n\nconst AccountIcon = forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>>(\n ({ width = 20, height = 20, ...rest }, ref) => (\n <svg\n ref={ref}\n role=\"img\"\n aria-hidden\n height={height}\n width={width}\n viewBox=\"2 3 20 17\"\n {...rest}\n >\n <g fill=\"#666\" className=\"fill-current\">\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n </g>\n </svg>\n )\n);\n\nAccountIcon.displayName = 'AccountIcon';\n\nexport { AccountIcon };\nexport default AccountIcon;\n","import * as React from 'react';\nimport { LoginIFrame } from './frame';\nimport { Dialog } from '@dx-ui/osc-dialog-v2';\nimport type { GuestLoginConfigOptions, LoginResponse } from './login.types';\nimport { useTranslation } from 'next-i18next';\nimport { AccountIcon } from './login.icon';\nimport cx from 'classnames';\nimport { sendReward } from '@dx-ui/framework-conductrics';\n\nexport type LoginBaseProps = {\n /** Source url for the login page */\n frameSrc: string;\n /** Name of the button to display */\n buttonName?: string;\n /**\n * Set the classNames for the button element\n */\n buttonClassName?: string;\n /** Specify the title for the iframe element */\n title: string;\n /** Display options for the login page */\n options?: GuestLoginConfigOptions;\n /** Provides additional styling to the iframe */\n className?: string;\n /** Provides a parameter for disabling the icon */\n hideIcon?: boolean;\n /** callback to run after login attempt */\n onLoginAttempt: (response: LoginResponse) => Promise<void>;\n /** function to run on open */\n onOpen?: () => void;\n};\n\nexport type LoginProps = LoginBaseProps & React.HTMLAttributes<HTMLIFrameElement>;\n\n/**\n * A modal that wraps the LoginIFrame component.\n *\n * `import { Login } from '@dx-ui/osc-login'`\n */\nexport const Login: React.FC<React.PropsWithChildren<LoginBaseProps>> = ({\n options = {},\n className = '',\n title,\n frameSrc,\n buttonName,\n buttonClassName,\n hideIcon,\n onLoginAttempt,\n onOpen,\n}) => {\n const [t] = useTranslation('osc-login');\n const [showDialog, setShowDialog] = React.useState<boolean>(false);\n const open = () => {\n onOpen?.();\n sendReward('nav-sign-in-click');\n setShowDialog(true);\n };\n const close = () => setShowDialog(false);\n const handleLogin = async (response: LoginResponse) => {\n await onLoginAttempt?.(response);\n if (!response.error) {\n close();\n }\n };\n\n return (\n <Dialog\n title={title}\n isOpen={showDialog}\n onDismiss={close}\n size=\"md\"\n dialogTrigger={\n <button\n type=\"button\"\n className={cx(buttonClassName, {\n 'btn btn-text-text sm:btn-xl flex items-center brand-wa:!font-normal': !buttonClassName,\n })}\n onClick={open}\n >\n <span>{buttonName || t('signIn')}</span>\n {!hideIcon ? (\n <span\n aria-hidden\n className=\"bg-text text-text-inverse ms-2 flex size-5 items-center justify-center rounded-full\"\n >\n <AccountIcon className=\"size-3\" />\n </span>\n ) : null}\n </button>\n }\n >\n <LoginIFrame\n frameSrc={frameSrc}\n options={options}\n data-e2e=\"loginIframe\"\n onLoginAttempt={handleLogin}\n onClose={close}\n title={title}\n className={className}\n />\n </Dialog>\n );\n};\n\nLogin.displayName = 'Login';\n\nexport default Login;\n","export * from './lib/login';\nexport * from './lib/login.icon';\nexport * from './lib/frame';\nexport * from './lib/login.types';\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport type * as React from 'react';\nimport type { MarkdownToJSX } from 'markdown-to-jsx';\nimport MarkdownToJsx from 'markdown-to-jsx';\nimport type { Rule } from '@dx-ui/utilities-url-config';\nimport { getUrlConfig, RuleEngine } from '@dx-ui/utilities-url-config';\nimport { Link } from '@dx-ui/osc-link';\nimport merge from 'lodash/merge';\nimport { Speedbump, useSpeedbump } from '@dx-ui/osc-speedbump';\n\nexport type Markdown = {\n /** Specific config rule that is used by the [RuleEngine](https://jira.hilton.com/stash/projects/HIW/repos/dx-shared/browse/packages/rule-engine) to process urls in the markdown */\n rule?: Rule;\n /** current language */\n language: string;\n /** url origin to use for determining url props to use when constructing links */\n origin: string;\n} & MarkdownAttributes;\n\ntype MarkdownAttributes = {\n [key: string]: unknown;\n children: string;\n options?: MarkdownToJSX.Options;\n};\n\ntype MarkdownLink = {\n language: string;\n origin: string;\n rule: Rule;\n} & React.AnchorHTMLAttributes<HTMLAnchorElement>;\n\nconst MarkdownLink: React.FC<React.PropsWithChildren<MarkdownLink>> = ({\n children,\n rule,\n language,\n origin,\n href,\n ...props\n}) => {\n const { onShow, onHide, isVisible, onContinue, isEnabled } = useSpeedbump(language);\n if (!href) {\n return null;\n }\n const linkProps: Link = { url: href };\n if (rule) {\n const ruleEngine = new RuleEngine(rule);\n const data = getUrlConfig(ruleEngine, href, origin, language);\n linkProps.url = data.url;\n if (data.speedbump) {\n linkProps.onClick = onShow;\n }\n }\n return (\n <>\n <Link {...linkProps} {...props}>\n {children}\n </Link>\n {isEnabled && <Speedbump isShowing={isVisible} onContinue={onContinue} onClose={onHide} />}\n </>\n );\n};\n\n/**\n * Used to display markdown content. This is a wrapper around [markdown-to-jsx](https://www.npmjs.com/package/markdown-to-jsx) that provides standard overrides\n * to handle links in the markdown. This incorporates the @see RuleEngine to process the urls in the markdown and provide\n * information to construct the [HTMLAnchorElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement).\n * @returns JSX that is used to render the html\n */\nexport const Markdown: React.FC<Markdown> = ({\n children,\n options,\n language,\n origin,\n rule,\n ...props\n}) => {\n const defaultOptions = {\n overrides: {\n a: {\n component: MarkdownLink,\n props: {\n rule,\n language,\n origin,\n className: '!text-base',\n },\n },\n },\n };\n const mergedOptions = merge(defaultOptions, options);\n return (\n <MarkdownToJsx options={mergedOptions} {...props}>\n {children}\n </MarkdownToJsx>\n );\n};\n\nexport default Markdown;\n","export * from './lib/markdown';\n","import type * as React from 'react';\nimport { ControlNext, ControlBack } from '@dx-ui/osc-controls';\nimport { useTranslation } from 'next-i18next';\n\nexport type Pagination = {\n /**\n * `id` of the element pagination controls for usage with aria-controls\n */\n controls?: string;\n /**\n * Current active page (zero based)\n */\n current?: number;\n /**\n * The text displayed in front of the page numbers and used for a11y\n */\n label?: string;\n /**\n * Whether to visually hide the label\n */\n hideLabel?: boolean;\n /**\n * Controls whether or not to disable buttons at either end\n */\n loop?: boolean;\n /**\n * Total number of pages\n */\n total?: number;\n /**\n * When the page is selected from the dropdown\n */\n onChange?: (val: number) => void;\n onPreviousClick?: React.DOMAttributes<HTMLButtonElement>['onClick'];\n onNextClick?: React.DOMAttributes<HTMLButtonElement>['onClick'];\n /** Pagination item id */\n groupId?: string;\n};\n\n/**\n * Use when you need a control to cycle through \"pages\" or any paginated data.\n *\n * Pass the `current` page _(zero-based)_ and `total` pages, if you want to allow the select element to jump to a specific page, include the `onChange` callback. You can include listeners for `onPreviousClick` and `onNextClick` to change pages one by one.\n */\nexport const Pagination: React.FC<React.PropsWithChildren<Pagination>> = ({\n controls,\n loop,\n onChange,\n onPreviousClick,\n onNextClick,\n hideLabel,\n current = 0,\n total = 0,\n label,\n groupId,\n}) => {\n const { t } = useTranslation('osc-pagination');\n // eslint-disable-next-line prefer-spread\n const pageNumbers = Array.apply(null, Array(total));\n const prevDisabled = loop ? false : current === 0;\n const nextDisabled = loop ? false : current === total - 1;\n\n const paginationLabel = label ?? t('defaultLabel');\n\n return (\n <div className=\"pointer-events-auto flex items-center justify-center space-x-4\">\n <div className=\"sr-only\" aria-live=\"polite\">{`${paginationLabel} ${t('count', {\n current: current + 1,\n total,\n })}`}</div>\n <ControlBack\n id={groupId ? `pagination-left-${groupId}` : 'pagination-left'}\n size=\"lg\"\n aria-controls={controls}\n onClick={onPreviousClick}\n disabled={prevDisabled}\n label={`${t('previousLabel', { label: paginationLabel })}, ${t('count', {\n current: current - 1 < 0 ? total : current,\n total,\n })}`}\n />\n <div className=\"flex items-center justify-center\">\n {onChange ? (\n <>\n {!hideLabel && <span className=\"pr-2\">{paginationLabel}</span>}\n <label>\n <span className=\"sr-only\">{t('prompt', { label: paginationLabel })}</span>\n <select\n aria-controls={controls}\n className=\"form-select\"\n value={current}\n onBlur={(e) => onChange(parseInt(e.currentTarget.value, 10))}\n onChange={(e) => onChange(parseInt(e.currentTarget.value, 10))}\n >\n {pageNumbers.map((_, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <option key={index} value={index}>\n {index + 1}\n </option>\n ))}\n </select>\n </label>\n <span className=\"pl-2\">{t('count', { current: undefined, total })}</span>\n </>\n ) : (\n <span className=\"text-center\">\n {!hideLabel && `${paginationLabel} `}\n <span className=\"tabular-nums\">{t('count', { current: current + 1, total })}</span>\n </span>\n )}\n </div>\n <ControlNext\n id={groupId ? `pagination-right-${groupId}` : 'pagination-right'}\n size=\"lg\"\n aria-controls={controls}\n onClick={onNextClick}\n disabled={nextDisabled}\n label={`${t('nextLabel', { label: paginationLabel })}, ${t('count', {\n current: current + 1 >= total ? 1 : current + 2,\n total,\n })}`}\n />\n </div>\n );\n};\n\nexport default Pagination;\n","export * from './lib/pagination';\n","import * as React from 'react';\nimport type { Dispatch, SetStateAction } from 'react';\n\ntype TriggerRef = React.MutableRefObject<HTMLButtonElement | HTMLInputElement | null>;\ntype PopoverRef = React.MutableRefObject<HTMLSpanElement | null>;\n\ntype PopupContext = {\n triggerRef: TriggerRef;\n triggerClickedRef: React.MutableRefObject<boolean>;\n popoverRef: PopoverRef;\n popupId?: string;\n isOpen?: boolean;\n setOpen: Dispatch<SetStateAction<boolean>>;\n closePopup: () => void;\n};\n\nconst PopupContext = React.createContext<PopupContext>({} as PopupContext);\n\nexport const usePopup = () => {\n const context = React.useContext(PopupContext);\n if (context === undefined) {\n throw new Error('usePopup must be used within a Popup Component parent');\n }\n return context;\n};\n\nexport { PopupContext };\nexport default PopupContext;\n","import type * as React from 'react';\nimport type { Side } from './popup.content';\n\nexport function isRightClick(nativeEvent: MouseEvent) {\n return nativeEvent.which === 3 || nativeEvent.button === 2;\n}\n\nexport function focus<T extends HTMLElement = HTMLElement>(element: T | undefined | null) {\n element && element.focus();\n}\n\nexport function getXStyles(\n targetRect: DOMRect,\n popoverRect: DOMRect,\n side?: Side\n): React.CSSProperties {\n const { directionRight, directionLeft, directionX, directionY } = getCollisions(\n targetRect,\n popoverRect\n );\n const xPosition = targetRect.right - popoverRect.width;\n const styles: React.CSSProperties = {};\n const popupOnLeft = side === 'left';\n if (directionX && !directionY) {\n // we collide with left, right but not top, bottom, start at left, full-width\n styles.maxWidth = window.innerWidth;\n styles.overflowX = 'auto';\n styles.left = 0;\n } else if (directionX && directionY) {\n // we collide top, bottom, right, left - display in middle\n styles.maxWidth = window.innerWidth;\n styles.overflowX = 'auto';\n styles.left = '50%';\n styles.transform = 'translate(-50%, -50%)';\n } else if (directionY && (directionLeft || directionRight)) {\n // we collide top, bottom, (left or right) - display in middle, no maxWidth\n styles.overflowX = 'auto';\n styles.left = '50%';\n styles.transform = 'translate(-50%, -50%)';\n } else if (popupOnLeft && !popoverRect.width) {\n // avoids popover flashing on right on initial trigger\n styles.visibility = 'hidden';\n } else {\n // we collide with right or popupOnLeft - place on left, otherwise place on right\n styles.left = directionRight || popupOnLeft ? `${xPosition}px` : `${targetRect.left}px`;\n }\n return styles;\n}\n\nexport function getYStyles(\n targetRect: DOMRect,\n popoverRect: DOMRect,\n side?: Side\n): React.CSSProperties {\n const { directionY, directionUp } = getCollisions(targetRect, popoverRect);\n const yPosition = targetRect.bottom;\n const styles: React.CSSProperties = {};\n const popupOnTop = side === 'top';\n if (directionY) {\n // we collide with top and bottom, display in the middle\n styles.maxHeight = window.innerHeight;\n styles.overflowY = 'auto';\n styles.top = '50%';\n styles.transform = 'translate(-50%, -50%)';\n } else if (popupOnTop && !popoverRect.height) {\n styles.visibility = 'hidden';\n } else {\n // we collide with bottom - place on top, otherwise bottom\n styles.top =\n directionUp || popupOnTop\n ? `${targetRect.top - (popoverRect.height + 8)}px`\n : `${yPosition}px`;\n }\n return styles;\n}\n\nexport function getCollisions(\n targetRect: DOMRect,\n popoverRect: DOMRect,\n offsetLeft = 0,\n offsetBottom = 0\n) {\n const collisions = {\n top: targetRect.top - popoverRect.height < 0,\n right: window.innerWidth < targetRect.left + popoverRect.width - offsetLeft,\n bottom: window.innerHeight < targetRect.bottom + popoverRect.height - offsetBottom,\n left: targetRect.left + targetRect.width - popoverRect.width < 0,\n };\n const directions = {\n directionRight: collisions.right && !collisions.left,\n directionLeft: collisions.left && !collisions.right,\n directionUp: collisions.bottom && !collisions.top,\n directionDown: collisions.top && !collisions.bottom,\n directionX: collisions.left && collisions.right,\n directionY: collisions.top && collisions.bottom,\n };\n return directions;\n}\n\nexport function getPopupStyles(\n targetRect: DOMRect | null,\n popoverRect: DOMRect | null,\n side?: Side\n): React.CSSProperties {\n const styles: React.CSSProperties =\n targetRect && popoverRect\n ? {\n ...getXStyles(targetRect, popoverRect, side),\n ...getYStyles(targetRect, popoverRect, side),\n }\n : { visibility: 'hidden' };\n return styles;\n}\n","import * as React from 'react';\nimport { PopupContext } from './popup.context';\nimport { focus } from './popup.utils';\n\n/**\n * Presents more content in an expanded state after the user interacts with a trigger. Use `<Popup>` as a container around `<PopupButton>` and `<PopupContent>`.\n * Placement rules for the `<PopupContent>` are determined by its collision with the current viewport. The following rules determine the its position.\n *\n * | Collision | Position |\n * | ------------------------ | ------ |\n * | bottom, top, right, left | middle, max-width |\n * | bottom, top, right | middle, no-max-width |\n * | bottom, top, left | middle, no-max-width |\n * | bottom, top | middle, no-max-width |\n * | bottom | target-top |\n * | bottom, left | target-top |\n * | bottom, right | target-top |\n * | top | target-bottom |\n * | top, right, left | middle, max-width |\n * | top, right | target-bottom |\n * | top, left | target-bottom |\n * | right, left | target-bottom, max-width |\n * | right | target-bottom |\n * | left | target-bottom |\n */\nexport const Popup: React.FC<{ isOpen?: boolean; children: React.ReactNode }> = ({\n isOpen: isInitiallyOpen = false,\n children,\n}) => {\n const id = React.useId();\n const [isOpen, setOpen] = React.useState<boolean>(isInitiallyOpen);\n const triggerRef = React.useRef<HTMLButtonElement | HTMLInputElement>(null);\n const triggerClickedRef = React.useRef(false);\n const popoverRef = React.useRef<HTMLSpanElement>(null);\n const closePopup = () => {\n setOpen(false);\n focus(triggerRef.current);\n };\n\n return (\n <PopupContext.Provider\n value={{\n triggerRef,\n triggerClickedRef,\n popoverRef,\n popupId: id,\n isOpen,\n setOpen,\n closePopup,\n }}\n >\n {children}\n </PopupContext.Provider>\n );\n};\n\nexport default Popup;\n","import * as React from 'react';\nimport { usePopup } from './popup.context';\nimport { isRightClick } from './popup.utils';\nimport { useForkedRef } from '@dx-ui/utilities-use-forked-ref';\n\ntype PopupButtonProps = {\n onArrowDownWhenOpen?: () => void;\n} & React.HTMLAttributes<HTMLButtonElement>;\n\nconst PopupButton = React.forwardRef<HTMLButtonElement, PopupButtonProps>(\n ({ children, onArrowDownWhenOpen, ...rest }, forwardedRef) => {\n const { triggerRef, triggerClickedRef, popupId, isOpen, setOpen } = usePopup();\n const ref = useForkedRef(\n forwardedRef,\n triggerRef as React.MutableRefObject<HTMLButtonElement | null>\n );\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n switch (e.key) {\n case 'Enter':\n case ' ':\n if (!isOpen) {\n triggerClickedRef.current = true;\n }\n setOpen(!isOpen);\n break;\n case 'ArrowDown':\n e.preventDefault();\n setOpen(true);\n if (isOpen) {\n onArrowDownWhenOpen?.();\n }\n break;\n case 'ArrowUp':\n case 'Escape':\n //we only want to do something when overlay is open otherwise we will trigger parent event handlers\n if (isOpen) {\n //Make sure we dont bubble up to other elements with listeners on escape\n e.stopPropagation();\n setOpen(!isOpen);\n }\n break;\n default:\n break;\n }\n };\n\n const onMouseDown = (e: React.MouseEvent) => {\n if (!isOpen) {\n triggerClickedRef.current = true;\n }\n if (!isRightClick(e.nativeEvent)) {\n setOpen(!isOpen);\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n aria-expanded={isOpen ? 'true' : 'false'}\n aria-controls={popupId}\n {...rest}\n >\n {children}\n </button>\n );\n }\n);\n\nPopupButton.displayName = 'PopupButton';\n\nexport { PopupButton };\nexport default PopupButton;\n","import { useRect } from '@dx-ui/utilities-use-rect';\nimport cx from 'classnames';\nimport * as React from 'react';\nimport { usePopup } from './popup.context';\nimport { getPopupStyles } from './popup.utils';\nimport { useForkedRef } from '@dx-ui/utilities-use-forked-ref';\n\nexport type Side = 'top' | 'right' | 'bottom' | 'left';\n\nexport type PopupContentPropsBase = {\n popupStyles?: React.CSSProperties;\n side?: Side;\n};\n\n/** Used in conjunction with [Popup](?path=/docs/library-components-popup--docs), PopupContent is a component that wraps the content of a popup.\n */\nconst PopupContent = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLDivElement> & PopupContentPropsBase\n>(({ children, className, style, popupStyles = {}, side = 'bottom', ...rest }, forwardedRef) => {\n const { triggerRef, triggerClickedRef, popoverRef, popupId, isOpen, setOpen, closePopup } =\n usePopup();\n const ref = useForkedRef(forwardedRef, popoverRef);\n\n React.useEffect(() => {\n const popoverRefCurrent = popoverRef?.current;\n const onMouseDown = (e: MouseEvent) => {\n if (triggerClickedRef.current) {\n triggerClickedRef.current = false;\n } else if (isOpen && popoverRefCurrent && !popoverRefCurrent.contains(e.target as Element)) {\n setOpen(false);\n }\n };\n const onKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n //parent elements such as <Dialog /> may have event listeners for keydown. Make sure we dont bubble the event back up\n e.stopPropagation();\n switch (e.key) {\n case 'Enter':\n case ' ':\n if (triggerClickedRef.current) {\n triggerClickedRef.current = false;\n } else if (\n isOpen &&\n popoverRefCurrent &&\n !popoverRefCurrent.contains(e.target as Element)\n ) {\n setOpen(false);\n }\n break;\n case 'Escape':\n closePopup();\n break;\n case 'Tab':\n requestAnimationFrame(() => {\n if (popoverRefCurrent && !popoverRefCurrent.contains(document.activeElement)) {\n setOpen(false);\n }\n });\n break;\n default:\n break;\n }\n }\n };\n if (popoverRefCurrent) {\n document.addEventListener('mousedown', onMouseDown);\n document.addEventListener('keydown', onKeyDown);\n }\n return () => {\n if (popoverRefCurrent) {\n document.removeEventListener('mousedown', onMouseDown);\n document.removeEventListener('keydown', onKeyDown);\n }\n };\n }, [triggerClickedRef, triggerRef, closePopup, isOpen, popoverRef, setOpen]);\n\n const popoverRect = useRect({ ref: popoverRef });\n const targetRect = useRect({ ref: triggerRef });\n const styles = getPopupStyles(targetRect, popoverRect, side);\n\n return (\n <div\n id={popupId}\n data-testid=\"popup-content\"\n ref={ref}\n className={cx(\n 'bg-bg border-border brand-ou:bg-secondary fixed z-50 mt-1 rounded border border-solid p-2 shadow-lg',\n {\n block: isOpen,\n hidden: !isOpen,\n },\n className\n )}\n style={{ ...style, ...styles, ...popupStyles }}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\nPopupContent.displayName = 'PopupContent';\n\nexport { PopupContent };\nexport default PopupContent;\n","export * from './lib/popup';\nexport * from './lib/popup.button';\nexport * from './lib/popup.content';\nexport * from './lib/popup.context';\nexport * from './lib/popup.utils';\n","import type { Child } from '@dx-ui/framework-uri-builder';\n\nexport const DEFAULT_FORM_VALUES = {\n attendee_count: 0,\n brandCode: 'HH',\n dates: {\n arrivalDate: null,\n datesFlex: false,\n departureDate: null,\n },\n hhonors: null,\n numNights: null,\n numRooms: null,\n numAttendees: null,\n placeId: '',\n query: '',\n rooms: [\n {\n adults: 1,\n children: [] as Child[],\n },\n ],\n sessionToken: '',\n specialRates: {\n aaaRate: false,\n aarpRate: false,\n corporateCode: '',\n employeeRate: false,\n friendsAndFamilyRate: false,\n governmentOrMilitaryRate: false,\n groupCode: '',\n offerId: null,\n ownerHGVRate: false,\n ownerVIPRate: false,\n pnd: null,\n promoCode: '',\n redeemPts: false,\n requestedRatesOnly: false,\n searchedRatePlanDescription: '',\n seniorRate: false,\n smbRate: false,\n travelAgentId: '',\n useOfferId: false,\n usePnd: false,\n useRequestedRatesOnly: false,\n travelAgentRate: false,\n },\n};\n","import type { GuestQuery } from '@dx-ui/framework-auth-provider';\nimport type SpecialRates from './special-rates';\n\nexport type Hhonors = NonNullable<GuestQuery['guest']>['hhonors'];\n\nexport const isTeamMember = (hhonors?: Hhonors) =>\n Boolean(hhonors?.isTeamMember || hhonors?.isTeamMemberSpouse || hhonors?.isLongTenure20);\n\nexport const isFriendsAndFamily = (hhonors?: Hhonors) =>\n Boolean(hhonors?.isFamilyAndFriends || hhonors?.isLongTenure10);\n\nexport const isOwner = (hhonors?: Hhonors) => Boolean(hhonors?.isOwner || hhonors?.isOwnerHGV);\n\nexport const isHGVMax = (hhonors?: Hhonors) => Boolean(hhonors?.isOwnerHGVNew);\n\nexport const isTMTPProgramMember = (hhonors?: Hhonors) =>\n isTeamMember(hhonors) || isFriendsAndFamily(hhonors) || isOwner(hhonors);\n\nexport const isSmbMember = (hhonors?: Hhonors) => Boolean(hhonors?.isSMBMember);\n\nexport const isTMTPRateSelected = (specialRates?: SpecialRates) =>\n Boolean(specialRates?.employeeRate) ||\n Boolean(specialRates?.friendsAndFamilyRate) ||\n Boolean(specialRates?.ownerVIPRate);\n\nexport const isHGVMaxRateSelected = (specialRates?: SpecialRates) =>\n Boolean(specialRates?.ownerHGVRate);\n\nexport const isSMBRateSelected = (specialRates?: SpecialRates) => Boolean(specialRates?.smbRate);\n","import { useLocalStorage } from 'usehooks-ts';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport { useEffect } from 'react';\n\nexport type SMBContextType = 'personal' | 'business';\n\nexport const useSMBContextLocalStorage = (enabled: boolean) => {\n const { guestInfo } = useAuth();\n const [smbContext, setSMBContext] = useLocalStorage<SMBContextType | null>('smbContext', null);\n\n useEffect(() => {\n const isSMBMemberButNoContextSet = Boolean(\n guestInfo?.hhonors?.isSMBMember && !smbContext && enabled\n );\n\n if (isSMBMemberButNoContextSet) {\n setSMBContext('personal');\n }\n }, [enabled, guestInfo?.hhonors?.isSMBMember, setSMBContext, smbContext]);\n\n return { isSMBContextSet: Boolean(smbContext), smbContext, setSMBContext };\n};\n","export * from './lib/use-smb-context-local-storage';\nexport * from './lib/use-smb-program-id-local-storage';\n","import { FormInput } from '@dx-ui/osc-form';\nimport { useTranslation } from 'next-i18next';\nimport type { Hhonors } from './utils';\nimport { isOwner, isTeamMember, isFriendsAndFamily, isHGVMax, isSmbMember } from './utils';\nimport { useFormContext } from 'react-hook-form';\nimport { useSMBContextLocalStorage } from '@dx-ui/utilities-use-smb-context-local-storage';\n\nexport type SpecialRates = {\n aaaRate: boolean;\n aarpRate: boolean;\n corporateCode: string;\n employeeRate: boolean;\n friendsAndFamilyRate: boolean;\n governmentOrMilitaryRate: boolean;\n groupCode: string;\n offerId: null | { id?: number; name?: string };\n ownerHGVRate: boolean;\n ownerVIPRate: boolean;\n pnd: null | { pnd?: string; name?: string };\n promoCode: string;\n redeemPts: boolean;\n requestedRatesOnly: boolean;\n searchedRatePlanDescription: string;\n seniorRate: boolean;\n smbRate: boolean;\n travelAgentId: string;\n travelAgentRate: boolean;\n useOfferId: boolean;\n usePnd: boolean;\n useRequestedRatesOnly: boolean;\n};\n\nexport type SpecialRatesKey = keyof SpecialRates;\n\nexport const specialRatesKeys: Array<SpecialRatesKey> = [\n 'aaaRate',\n 'aarpRate',\n 'corporateCode',\n 'employeeRate',\n 'friendsAndFamilyRate',\n 'governmentOrMilitaryRate',\n 'groupCode',\n 'offerId',\n 'ownerHGVRate',\n 'ownerVIPRate',\n 'pnd',\n 'promoCode',\n 'redeemPts',\n 'requestedRatesOnly',\n 'searchedRatePlanDescription',\n 'seniorRate',\n 'smbRate',\n 'travelAgentId',\n 'travelAgentRate',\n 'useOfferId',\n 'usePnd',\n 'useRequestedRatesOnly',\n] as const;\n\nexport function isSpecialRatesKey(someString: string): someString is keyof SpecialRates {\n return Boolean(specialRatesKeys.find((value) => someString === value));\n}\n\nexport type SpecialRatesFormContext = { specialRates: SpecialRates; hhonors: Hhonors };\n\nexport const SpecialRates = ({\n shouldDisablePoints = false,\n shouldEnableSMBContextAwareRates = false,\n shouldDisableAARP = false,\n}: {\n /** option to disable use points checkbox */\n shouldDisablePoints?: boolean;\n /** Are we checking SMB Context to determine whether to show SMB Rates */\n shouldEnableSMBContextAwareRates?: boolean;\n shouldDisableAARP?: boolean;\n}) => {\n const [t] = useTranslation('osc-special-rates');\n const { watch } = useFormContext<SpecialRatesFormContext>();\n const { smbContext } = useSMBContextLocalStorage(shouldEnableSMBContextAwareRates);\n\n const promoCode = watch('specialRates.promoCode');\n const groupCode = watch('specialRates.groupCode');\n const corporateCode = watch('specialRates.corporateCode');\n const isOfferIdSelected = watch('specialRates.useOfferId');\n const isPndSelected = watch('specialRates.usePnd');\n const smbRate = watch('specialRates.smbRate');\n const hhonors = watch('hhonors');\n const offerId = watch('specialRates.offerId');\n const pnd = watch('specialRates.pnd');\n const searchedRatePlanDescription = watch('specialRates.searchedRatePlanDescription');\n const requestedRatesOnly = watch('specialRates.requestedRatesOnly');\n const requestedRatesOnlySelected = watch('specialRates.useRequestedRatesOnly');\n const isOnBusinessProfile = smbContext === 'business';\n const isSMBRatesEnabled = shouldEnableSMBContextAwareRates ? isOnBusinessProfile : true;\n\n const oneCode =\n [\n !!promoCode,\n !!groupCode,\n !!corporateCode,\n !!isPndSelected,\n !!isOfferIdSelected,\n !!requestedRatesOnlySelected,\n ].filter(Boolean).length > 0;\n\n const showSMBCheckbox = isSmbMember(hhonors) && isSMBRatesEnabled;\n const isCorpFieldDisabled =\n !!isPndSelected ||\n ((oneCode || !!smbRate) && !corporateCode) ||\n (shouldEnableSMBContextAwareRates && isOnBusinessProfile);\n\n return (\n <div className=\"w-full space-y-4\" data-testid=\"special-rates\">\n <div\n data-osc-product=\"search-rates-first\"\n className=\"grid h-auto gap-4 md:grid-cols-1 lg:grid-cols-2\"\n >\n <FormInput\n disabled={shouldDisablePoints}\n type=\"checkbox\"\n label={t('usePoints')}\n name=\"specialRates.redeemPts\"\n />\n <FormInput type=\"checkbox\" label={t('travelAgents')} name=\"specialRates.travelAgentRate\" />\n <FormInput type=\"checkbox\" label={t('aaaRate')} name=\"specialRates.aaaRate\" />\n {shouldDisableAARP ? null : (\n <FormInput type=\"checkbox\" label={t('aarpRate')} name=\"specialRates.aarpRate\" />\n )}\n <FormInput type=\"checkbox\" label={t('seniorRate')} name=\"specialRates.seniorRate\" />\n <FormInput\n type=\"checkbox\"\n label={t('gvmtRates')}\n name=\"specialRates.governmentOrMilitaryRate\"\n />\n {(isOwner(hhonors) || isTeamMember(hhonors)) && (\n <FormInput type=\"checkbox\" label={t('employeeRate')} name=\"specialRates.employeeRate\" />\n )}\n {(isOwner(hhonors) || isTeamMember(hhonors) || isFriendsAndFamily(hhonors)) && (\n <FormInput\n type=\"checkbox\"\n label={t('friendsAndFamilyRate')}\n name=\"specialRates.friendsAndFamilyRate\"\n />\n )}\n {isOwner(hhonors) && (\n <FormInput type=\"checkbox\" label={t('ownerVIPRate')} name=\"specialRates.ownerVIPRate\" />\n )}\n {isHGVMax(hhonors) && (\n <FormInput type=\"checkbox\" label={t('hgvMaxRate')} name=\"specialRates.ownerHGVRate\" />\n )}\n {showSMBCheckbox ? (\n <label className=\"label\">\n <FormInput type=\"checkbox\" label={t('smbRate')} name=\"specialRates.smbRate\" />\n </label>\n ) : null}\n </div>\n <div className=\"space-y-2\">\n {offerId?.name || pnd?.name || requestedRatesOnly ? (\n <div className=\"grid gap-4 md:grid-cols-1 lg:grid-cols-2\">\n {offerId?.name || requestedRatesOnly ? (\n <label className=\"label\">\n <span className=\"rtl:pr-1\">{t('promoCode')}</span>\n <FormInput\n type=\"checkbox\"\n label={\n searchedRatePlanDescription\n ? searchedRatePlanDescription\n : requestedRatesOnly\n ? t('specialOffer')\n : offerId?.name\n }\n name={\n requestedRatesOnly\n ? 'specialRates.useRequestedRatesOnly'\n : 'specialRates.useOfferId'\n }\n />\n </label>\n ) : null}\n {pnd?.name ? (\n <label className=\"label\">\n <span className=\"rtl:pr-1\">{t('corpAccount')}</span>\n <FormInput type=\"checkbox\" label={pnd?.name} name=\"specialRates.usePnd\" />\n </label>\n ) : null}\n </div>\n ) : null}\n <div\n data-osc-product=\"search-rates-second\"\n className=\"grid gap-4 md:grid-cols-1 lg:grid-cols-2\"\n >\n {!offerId?.name && !requestedRatesOnly ? (\n <FormInput\n label={t('promoCode')}\n labelClassName=\"w-full\"\n name=\"specialRates.promoCode\"\n disabled={!!isOfferIdSelected || (oneCode && !promoCode)}\n maxLength={6}\n registerOptions={{\n pattern: {\n value: /^[A-Za-z0-9]{2,6}$/,\n message: t('promoCodeError'),\n },\n }}\n />\n ) : null}\n <FormInput\n label={t('groupCode')}\n labelClassName=\"w-full\"\n name=\"specialRates.groupCode\"\n disabled={oneCode && !groupCode}\n maxLength={6}\n registerOptions={{\n pattern: {\n value: /^[A-Za-z0-9]{2,6}$/,\n message: t('groupCodeError'),\n },\n }}\n />\n <div>\n {!pnd?.name ? (\n <FormInput\n label={t('corpAccount')}\n labelClassName=\"w-full\"\n name=\"specialRates.corporateCode\"\n disabled={isCorpFieldDisabled}\n maxLength={10}\n registerOptions={{\n pattern: {\n value: /^[A-Za-z0-9]{2,10}$/,\n message: t('corpAccountError'),\n },\n }}\n />\n ) : null}\n </div>\n </div>\n </div>\n <div className=\"text-text-alt\" aria-live=\"polite\">\n {oneCode && (\n <div className=\"flex gap-1\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n focusable=\"false\"\n className=\"text-text-disabled size-5 shrink-0\"\n >\n <circle fill=\"#FFF\" cx=\"12\" cy=\"12\" r=\"11.5\" />\n <circle fill=\"currentColor\" cx=\"12\" cy=\"12\" r=\"10\" />\n <path\n fill=\"#FFF\"\n d=\"m14 15.25h-1.25v-4.25c0-.41-.34-.75-.75-.75h-2c-.41 0-.75.34-.75.75s.34.75.75.75h1.25v3.5h-1.25c-.41 0-.75.34-.75.75s.34.75.75.75h4c.41 0 .75-.34.75-.75s-.34-.75-.75-.75z\"\n />\n <path fill=\"#FFF\" d=\"m12 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z\" />\n </svg>{' '}\n {t('oneCodeError')}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default SpecialRates;\n","export * from './lib/special-rates';\nexport * from './lib/utils';\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const FeatureTogglesDocument = {\n operationName: 'featureToggles_featureConfigs',\n operationString: `query featureToggles_featureConfigs($names: [String!]!) {\n featureToggles(names: $names) {\n enabled\n name\n }\n featureConfigs(names: $names) {\n name\n config\n conditions\n }\n}`,\n originalOpName: 'featureToggles',\n};\nexport function useFeatureTogglesQuery<TData = Types.FeatureTogglesQuery, TError = DXError>(\n variables: Types.FeatureTogglesQueryVariables,\n options?: Omit<UseQueryOptions<Types.FeatureTogglesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FeatureTogglesQuery, TError, TData>({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureTogglesQuery(\n queryClient: QueryClient,\n variables: Types.FeatureTogglesQueryVariables,\n options?: FetchQueryOptions<Types.FeatureTogglesQuery>\n) {\n return queryClient.fetchQuery<Types.FeatureTogglesQuery>({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\n\nexport const GeocodeDocument = {\n operationName: 'geocode',\n operationString: `query geocode($address: String, $language: String!, $placeId: String, $sessionToken: String) {\n geocode(\n language: $language\n address: $address\n placeId: $placeId\n sessionToken: $sessionToken\n ) {\n match {\n _id\n id\n address {\n _id\n city\n country\n countryName\n postalCode\n state\n stateName\n }\n geometry {\n location {\n latitude\n longitude\n }\n bounds {\n northeast {\n latitude\n longitude\n }\n southwest {\n latitude\n longitude\n }\n }\n }\n name\n placeUri\n type\n }\n }\n}`,\n originalOpName: 'geocode',\n};\nexport function useGeocodeQuery<TData = Types.GeocodeQuery, TError = DXError>(\n variables: Types.GeocodeQueryVariables,\n options?: Omit<UseQueryOptions<Types.GeocodeQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GeocodeQuery, TError, TData>({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocodeQuery(\n queryClient: QueryClient,\n variables: Types.GeocodeQueryVariables,\n options?: FetchQueryOptions<Types.GeocodeQuery>\n) {\n return queryClient.fetchQuery<Types.GeocodeQuery>({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\n","export const NHCSEARCH_4807 = 'NHCSEARCH-4807-improve-dateless-search';\nexport const DISABLE_AARP_SPECIAL_RATES = 'aarp-special-rate-toggle';\n","import type { FormDataValues, FormDefaultValues, TargetOHWPage } from './shop-form';\nimport type {\n BrandCode,\n LocationUrlParams,\n SortByValues,\n TripAdvisorRatings,\n MapLanguage,\n Path,\n} from '@dx-ui/framework-uri-builder';\nimport { searchUriBuilder, bookUriBuilder, locationUriBuilder } from '@dx-ui/framework-uri-builder';\nimport { DEFAULT_FORM_VALUES } from './shop-form.constants';\nimport merge from 'lodash/merge';\nimport { differenceInDays, startOfDay } from 'date-fns';\nimport type { GeocodeQuery } from './gql/types';\nimport type { SpecialRates } from '@dx-ui/osc-special-rates';\nimport {\n isTMTPRateSelected,\n isHGVMax,\n isHGVMaxRateSelected,\n isOwner,\n isTeamMember,\n isFriendsAndFamily,\n isTMTPProgramMember,\n} from '@dx-ui/osc-special-rates';\nimport type { QueryClient } from '@tanstack/react-query';\nimport {\n getSpeedBumpFeatureConfig,\n GetSpeedBumpFeatureConfigsDocument,\n type GetSpeedBumpFeatureConfigsQuery,\n} from '@dx-ui/osc-speedbump';\nimport { FeatureTogglesDocument, serverSideFeatureTogglesQuery } from './gql/queries';\nimport {\n GetTranslateAutocompleteConfigDocument,\n serverSideGetTranslateAutocompleteConfigQuery,\n} from '@dx-ui/osc-location';\nimport { DISABLE_AARP_SPECIAL_RATES, NHCSEARCH_4807 } from './constants/featureToggles';\n\nexport const RatePlanCodes = {\n GOVERNMENT_MILITARY: 'GDSGOV',\n AARP: 'HCARP',\n SENIOR: 'GDSSNR',\n AAA: 'HCAAA',\n USE_POINTS: 'HCSMR',\n} as const;\n\nexport const getSearchPath = (\n data: Partial<FormDataValues>,\n targetOHWPage: Omit<TargetOHWPage, 'book' | 'ten-plus-book'>\n): Path => {\n if (isTMTPRateSelected(data?.specialRates) && isTMTPProgramMember(data.hhonors)) {\n if (targetOHWPage === 'search') {\n return 'go-hilton';\n } else if (targetOHWPage === 'search-zero') {\n return 'go-hilton-find-hotels';\n }\n } else if (isHGVMax(data.hhonors) && isHGVMaxRateSelected(data?.specialRates)) {\n if (targetOHWPage === 'search') {\n return 'hgv-max';\n } else if (isHGVMax(data.hhonors) && targetOHWPage === 'search-zero') {\n return 'hgv-max-find-hotels';\n }\n } else if (targetOHWPage === 'search') {\n return 'search';\n } else if (targetOHWPage === 'ten-plus-search') {\n return 'group-search';\n }\n return 'find-hotels';\n};\n\n/** This must be updated along with the additionalQSParameterKeys array below */\nexport type AdditionalQSParameters = {\n adjoiningRoomStay?: boolean;\n availableHotelsOnly?: boolean;\n brandCode?: string;\n content?: string;\n displayCurrency?: string;\n fromId?: string;\n f_attributeIds?: string[];\n f_amenityIds?: string[];\n f_brandCodes?: string[];\n f_price?: [number, number];\n f_tripAdvisorRatings?: TripAdvisorRatings;\n maxPoints?: number;\n requestedRatesOnly?: boolean;\n sortBy?: SortByValues;\n specPlan?: string[];\n specialRatesTokens?: string;\n redeemPts?: boolean;\n token?: string[];\n cid?: string;\n};\n\n/** This must be updated along with the AdditionalQSParameters type above */\nexport const additionalQSParameterKeys: Array<keyof AdditionalQSParameters> = [\n 'adjoiningRoomStay',\n 'availableHotelsOnly',\n 'brandCode',\n 'cid',\n 'content',\n 'displayCurrency',\n 'f_amenityIds',\n 'f_attributeIds',\n 'f_brandCodes',\n 'f_price',\n 'f_tripAdvisorRatings',\n 'fromId',\n 'maxPoints',\n 'redeemPts',\n 'requestedRatesOnly',\n 'sortBy',\n 'specPlan',\n 'specialRatesTokens',\n 'token',\n];\n\nexport function isAdditionalQsParameterKey(\n someString: string\n): someString is keyof AdditionalQSParameters {\n return Boolean(additionalQSParameterKeys.find((key) => someString === key));\n}\n\nconst getNumRooms = (numRooms?: number | null) => {\n return numRooms == null || isNaN(numRooms) ? null : numRooms;\n};\n\nexport const generateShopFormUrl = async ({\n additionalQSParameters,\n formData,\n disableAARPSpecialRates,\n locale,\n targetOHWPage,\n enableDatesFlexDreamRouting = false,\n geocodeData,\n client,\n}: {\n additionalQSParameters?: AdditionalQSParameters;\n formData: Partial<FormDataValues>;\n disableAARPSpecialRates: boolean | undefined;\n locale: string;\n targetOHWPage: TargetOHWPage;\n enableDatesFlexDreamRouting?: boolean;\n geocodeData?: GeocodeQuery;\n client?: QueryClient;\n}) => {\n const token = additionalQSParameters?.token;\n /** If enableDatesFlexDreamRouting enabled, route user to locations result page\n * if not using special rates beside points,\n * date range is within 30 days of today and language is English.\n * If geocode fails for dream routing, fallback to default routing.\n */\n const flexDatesDreamRouting = isflexDatesDreamRouting({\n data: formData,\n target: targetOHWPage,\n enableDreamRouting: enableDatesFlexDreamRouting,\n geocodeData,\n });\n\n /** OHW Search URL generation */\n\n //if flexdates dream redirect enabled and conditions met, return dream URL\n if (flexDatesDreamRouting) {\n return await generateFlexDatesDreamRedirectURL({\n formData,\n language: locale,\n additionalQSParameters,\n geocodeData,\n client,\n });\n }\n if (\n targetOHWPage === 'search' ||\n targetOHWPage === 'search-zero' ||\n targetOHWPage === 'ten-plus-search'\n ) {\n const brandCodeParam = additionalQSParameters?.brandCode as keyof BrandCode;\n return searchUriBuilder({\n brandCode: brandCodeParam ?? (formData.brandCode as keyof BrandCode),\n locale: locale as MapLanguage,\n path: getSearchPath(formData, targetOHWPage),\n relative: true,\n urlParams: {\n adjoiningRoomStay: additionalQSParameters?.adjoiningRoomStay,\n content: additionalQSParameters?.content,\n dates: {\n arrivalDate: formData?.dates?.arrivalDate,\n departureDate: formData?.dates?.departureDate,\n flexibleDates: formData?.dates?.datesFlex,\n },\n displayCurrency: additionalQSParameters?.displayCurrency,\n placeId: formData?.placeId,\n query: formData?.query,\n maxPoints: formData?.specialRates?.redeemPts ? additionalQSParameters?.maxPoints : null,\n numAttendees: formData?.attendee_count,\n availableHotelsOnly: additionalQSParameters?.availableHotelsOnly,\n f_amenityIds: additionalQSParameters?.f_amenityIds,\n f_attributeIds: additionalQSParameters?.f_attributeIds,\n f_brandCodes: additionalQSParameters?.f_brandCodes,\n f_price: additionalQSParameters?.f_price,\n f_tripAdvisorRatings: additionalQSParameters?.f_tripAdvisorRatings,\n sortBy: additionalQSParameters?.sortBy,\n //if on a 10+ search uri or numRooms is provided with a value less than 10, consume numRooms. Otherwise consume length of rooms array from rooms modal sub component\n numRooms:\n targetOHWPage === 'ten-plus-search' || (formData?.numRooms && formData?.numRooms < 10)\n ? formData?.numRooms\n : formData?.rooms?.length,\n rates: {\n aarp: disableAARPSpecialRates ? undefined : formData?.specialRates?.aarpRate,\n corporateAccount: formData?.specialRates?.corporateCode,\n employeeRate: formData?.specialRates?.employeeRate,\n friendsAndFamilyRate: formData?.specialRates?.friendsAndFamilyRate,\n fromId: additionalQSParameters?.fromId,\n government: formData?.specialRates?.governmentOrMilitaryRate,\n groupCode: formData?.specialRates?.groupCode,\n offerId: formData?.specialRates?.useOfferId ? formData?.specialRates?.offerId?.id : null,\n ownerHGVRate: formData?.specialRates?.ownerHGVRate,\n ownerVIPRate: formData?.specialRates?.ownerVIPRate,\n pnd: formData?.specialRates?.usePnd ? formData?.specialRates?.pnd?.pnd : null,\n promoCode: formData?.specialRates?.promoCode,\n requestedRatesOnly: additionalQSParameters?.requestedRatesOnly,\n senior: formData?.specialRates?.seniorRate,\n smbRate: formData?.specialRates?.smbRate,\n travelAgents: formData?.specialRates?.travelAgentRate,\n tripleA: formData?.specialRates?.aaaRate,\n spec_plan: additionalQSParameters?.specPlan?.join(','),\n //TODO PAUL. THIS LOGIC MAKES NO SENSE. IF CUSTOMER SAYS USEPOINTS IS FALSE BUT I HAVE A TOKEN I IGNORE IT?\n usePoints:\n token?.includes(RatePlanCodes.USE_POINTS) ||\n formData?.specialRates?.redeemPts ||\n additionalQSParameters?.redeemPts,\n },\n rooms: formData?.rooms,\n sessionToken: formData?.sessionToken,\n specialRateTokens: additionalQSParameters?.specialRatesTokens?.split(','),\n cid: additionalQSParameters?.cid,\n },\n });\n }\n\n //TODO talk to kevin\n /** OHW Book URL Generation */\n return bookUriBuilder({\n locale: locale as MapLanguage,\n page: formData?.dates?.datesFlex ? 'flexibledates' : 'rooms',\n relative: true,\n urlParams: {\n additionalQS: {\n displayCurrency: additionalQSParameters?.displayCurrency,\n requestedRatesOnly: additionalQSParameters?.requestedRatesOnly,\n spec_plan: additionalQSParameters?.specPlan?.join(','),\n specialRateTokens: additionalQSParameters?.specialRatesTokens,\n srpName: additionalQSParameters?.specialRatesTokens,\n },\n adjoiningRoomStay: additionalQSParameters?.adjoiningRoomStay,\n ctyhocn: formData.query || '',\n dates: {\n arrivalDate: formData?.dates?.arrivalDate,\n departureDate: formData?.dates?.departureDate,\n flexibleDates: formData?.dates?.datesFlex,\n },\n rates: {\n aaaRate: formData?.specialRates?.aaaRate,\n aarpRate: disableAARPSpecialRates ? undefined : formData?.specialRates?.aarpRate,\n corporateCode: formData?.specialRates?.corporateCode,\n employeeRate: formData?.specialRates?.employeeRate,\n friendsAndFamilyRate: formData?.specialRates?.friendsAndFamilyRate,\n fromId: additionalQSParameters?.fromId,\n governmentRate: formData?.specialRates?.governmentOrMilitaryRate,\n groupCode: formData?.specialRates?.groupCode,\n offerId: formData?.specialRates?.offerId?.id,\n ownerHGVRate: formData?.specialRates?.ownerHGVRate,\n ownerVIPRate: formData?.specialRates?.ownerVIPRate,\n pnd: formData?.specialRates?.pnd?.pnd,\n promotionCode: formData?.specialRates?.promoCode,\n redeemPts: formData?.specialRates?.redeemPts,\n seniorRate: formData?.specialRates?.seniorRate,\n smbRate: formData?.specialRates?.smbRate,\n travelAgent: formData?.specialRates?.travelAgentRate,\n travelAgentId: formData?.specialRates?.travelAgentId,\n },\n rooms: formData?.rooms,\n numRooms: getNumRooms(formData.numRooms),\n numAttendees: formData?.numAttendees,\n },\n });\n};\n\nexport const generateSanitizedDefaultValues = (defaultValues?: FormDefaultValues) => {\n const initialValues: FormDataValues = merge({}, DEFAULT_FORM_VALUES, defaultValues);\n\n if (initialValues?.dates?.arrivalDate) {\n initialValues.dates.arrivalDate = startOfDay(initialValues.dates.arrivalDate);\n }\n if (initialValues?.dates?.departureDate) {\n initialValues.dates.departureDate = startOfDay(initialValues.dates.departureDate);\n }\n\n //clear HGV rate is user not eligible\n if (!isHGVMax(initialValues?.hhonors)) {\n initialValues['specialRates']['ownerHGVRate'] = false;\n }\n\n //clear tmtp rates if user is not eligible\n if (!isOwner(initialValues?.hhonors)) {\n if (isTeamMember(initialValues?.hhonors)) {\n initialValues['specialRates']['ownerVIPRate'] = false;\n } else if (isFriendsAndFamily(initialValues?.hhonors)) {\n initialValues['specialRates']['ownerVIPRate'] = false;\n initialValues['specialRates']['employeeRate'] = false;\n } else {\n initialValues['specialRates']['ownerVIPRate'] = false;\n initialValues['specialRates']['employeeRate'] = false;\n initialValues['specialRates']['friendsAndFamilyRate'] = false;\n }\n }\n\n return initialValues;\n};\n\nexport const isflexDatesDreamRouting = ({\n data,\n target,\n enableDreamRouting,\n geocodeData,\n}: {\n data: Partial<FormDataValues>;\n target: string;\n enableDreamRouting?: boolean;\n geocodeData?: GeocodeQuery;\n}) => {\n const noSpecialRatesOrOnlyUsePointsApplied = (specialRates?: Partial<SpecialRates>) => {\n //no special rate applied\n if ((specialRates && Object.values(specialRates).filter(Boolean).length === 0) || !specialRates)\n return true;\n //or only one special rate applied and that rate is usePoints\n if (\n specialRates &&\n Object.values(specialRates).filter(Boolean).length < 2 &&\n specialRates.redeemPts\n )\n return true;\n return false;\n };\n const isDateLess = !(data?.dates?.arrivalDate && data?.dates?.departureDate);\n return (\n //flexDates dream routing opt-in\n enableDreamRouting &&\n /*geocode data returned for routing to dream flow \n or search routing passed from dream page to route to search flow*/\n !!geocodeData &&\n !!geocodeData?.geocode?.match?.placeUri &&\n (target === 'search' || target === 'search-zero') &&\n noSpecialRatesOrOnlyUsePointsApplied(data?.specialRates) &&\n //searched dates must be within 30 days of today or dateless\n (isDateLess ||\n (!!data?.dates?.arrivalDate &&\n data?.dates?.datesFlex &&\n differenceInDays(data?.dates?.arrivalDate, new Date()) <= 30))\n );\n};\nexport const generateFlexDatesDreamRedirectURL = async ({\n formData,\n language,\n additionalQSParameters,\n geocodeData,\n client,\n}: {\n formData?: Partial<FormDataValues>;\n language: string;\n additionalQSParameters?: AdditionalQSParameters;\n geocodeData?: GeocodeQuery;\n client?: QueryClient;\n}) => {\n let shouldAddLocationCoordParams = false;\n try {\n if (client) {\n const { featureToggles } = await serverSideFeatureTogglesQuery(client, {\n names: NHCSEARCH_4807,\n });\n shouldAddLocationCoordParams =\n featureToggles.find(({ name }) => NHCSEARCH_4807 === name)?.enabled || false;\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n\n const locationCoordParams = {\n placeId: geocodeData?.geocode?.match?.id,\n location: geocodeData?.geocode?.match?.geometry?.location,\n bounds: geocodeData?.geocode?.match?.geometry?.bounds,\n geocodeType: geocodeData?.geocode?.match?.type,\n query: formData?.query,\n };\n const urlParams: LocationUrlParams = {\n displayCurrency: additionalQSParameters?.displayCurrency,\n adjoiningRoomStay: additionalQSParameters?.adjoiningRoomStay,\n sortBy: additionalQSParameters?.sortBy,\n f_amenityIds: additionalQSParameters?.f_amenityIds,\n f_brandCodes: additionalQSParameters?.f_brandCodes,\n f_price: additionalQSParameters?.f_price,\n f_tripAdvisorRatings: additionalQSParameters?.f_tripAdvisorRatings,\n redeemPts: formData?.specialRates?.redeemPts || additionalQSParameters?.redeemPts,\n placeUri: geocodeData?.geocode?.match?.placeUri,\n cid: additionalQSParameters?.cid,\n content: additionalQSParameters?.content,\n ...(shouldAddLocationCoordParams && locationCoordParams),\n };\n const brandCodeParam = additionalQSParameters?.brandCode as keyof BrandCode;\n const locationUrlString = locationUriBuilder({\n locale: language,\n brandCode: brandCodeParam ?? (formData?.brandCode as keyof BrandCode),\n urlParams,\n relative: true,\n });\n return locationUrlString;\n};\n\nexport const SHOP_FORM_ORIGINAL_OP_NAMES = [\n GetSpeedBumpFeatureConfigsDocument.originalOpName,\n GetTranslateAutocompleteConfigDocument.originalOpName,\n FeatureTogglesDocument.originalOpName,\n];\nexport const getServerSideShopFormData: (\n queryClient: QueryClient,\n options?: { getTranslateAutocomplete?: boolean }\n) => Promise<void | GetSpeedBumpFeatureConfigsQuery> = (queryClient, options = {}) => {\n const { getTranslateAutocomplete = false } = options;\n const speedBumpFeatureconfig = getSpeedBumpFeatureConfig(queryClient).catch((e) => {\n // eslint-disable-next-line no-console\n console.error('Error fetching shopFormSpeedBumpData', e);\n });\n\n if (getTranslateAutocomplete)\n serverSideGetTranslateAutocompleteConfigQuery(queryClient).catch((e: Error) => {\n console.error('Error fetching translateAutocompleteData', e); // eslint-disable-line no-console\n });\n\n serverSideFeatureTogglesQuery(queryClient, { names: [DISABLE_AARP_SPECIAL_RATES] }).catch((e) => {\n // eslint-disable-next-line no-console\n console.error('Error fetching aarp-special-rate-toggle featureConfigs', e);\n });\n\n return speedBumpFeatureconfig;\n};\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameYear} function options.\n */\n\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport function isSameYear(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return laterDate_.getFullYear() === earlierDate_.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default isSameYear;\n","import { useTranslation } from 'next-i18next';\nimport type { TFunction } from 'i18next';\nimport { differenceInDays, isSameYear } from 'date-fns';\nimport type { ShopFormRoom } from '@dx-ui/osc-rooms';\n\ntype ResSummaryText = {\n dates: string;\n adaDates: string;\n kidsAgesText: string | null;\n occupancy: string;\n stayDuration?: string;\n};\n\nconst handleUnder1Text = (childAge: number, t: TFunction<'osc-rooms', undefined>) =>\n childAge === 0 ? t('occupancy.under1') : childAge;\n\nexport const useShopFormSummaryText = ({\n arrivalDate,\n departureDate,\n language,\n showChildAges,\n rooms,\n}: {\n arrivalDate: Date | null;\n departureDate: Date | null;\n /** language value passed from router */\n language: string;\n showChildAges?: boolean;\n rooms: ShopFormRoom[];\n}): ResSummaryText => {\n const { t } = useTranslation('osc-rooms');\n const { formattedStayDates, adaFormattedStayDates, stayDuration } = useFormattedStayDates({\n arrivalDate,\n departureDate,\n language,\n });\n const numRooms = rooms.length;\n const { numAdults, numChildren, childrenAges } = rooms.reduce(\n (acc, room) => {\n acc.numAdults = acc.numAdults + room.adults;\n acc.numChildren = acc.numChildren + room.children.length;\n acc.childrenAges = [\n ...acc.childrenAges,\n ...room.children.filter((c) => typeof c.age === 'number').map((c) => c.age as number),\n ];\n return acc;\n },\n { numAdults: 0, numChildren: 0, childrenAges: [] as number[] }\n );\n const updatedChildrenAges = childrenAges?.map((childAge) => handleUnder1Text(childAge, t));\n const roomsText = t('occupancy.rooms', { count: numRooms });\n const adultsText = t('occupancy.adult', { count: numAdults ?? undefined });\n const hasKids = (numChildren || 0) > 0;\n const kidsText = hasKids ? t('occupancy.kids', { count: numChildren ?? undefined }) : '';\n\n let kidsAgesText: string | null = null;\n\n if (showChildAges && hasKids && updatedChildrenAges?.length) {\n const firstKidsAge = updatedChildrenAges?.slice(0, -1).join(', ');\n\n kidsAgesText = t('occupancy.kidsAgeText', {\n count: updatedChildrenAges.length,\n firstKidsAge: updatedChildrenAges.length < 3 ? firstKidsAge : firstKidsAge + ',',\n lastKidAge: updatedChildrenAges?.slice(-1)[0],\n kidAge: updatedChildrenAges[0],\n });\n }\n\n const noDatesStayDuration = formattedStayDates ? t('occupancy.dayOnly') : t('occupancy.anyDates');\n\n return {\n dates: formattedStayDates,\n adaDates: adaFormattedStayDates,\n kidsAgesText,\n occupancy: t(kidsText ? 'occupancy.occupancyWithKids' : 'occupancy.occupancy', {\n adults: adultsText,\n kids: kidsText,\n rooms: roomsText,\n }),\n stayDuration:\n stayDuration === 0\n ? noDatesStayDuration\n : t('occupancy.stayDurationNights', { count: stayDuration }),\n };\n};\n\nexport const formatDates = (arrivalDate: Date, departureDate: Date, locale: Intl.Locale) => {\n const sameYear = isSameYear(arrivalDate, departureDate);\n const kanji = isKanji(locale);\n const month = isTurkish(locale) ? ('long' as const) : ('short' as const);\n const weekday = 'short';\n const day = 'numeric';\n const year = 'numeric';\n const options: Intl.DateTimeFormatOptions = {\n weekday,\n month,\n day,\n };\n const optionsWithYear: Intl.DateTimeFormatOptions = { ...options, year };\n\n const arrivalDateString = arrivalDate.toLocaleDateString(\n locale,\n !sameYear || kanji ? optionsWithYear : options\n );\n const departureDateString = departureDate.toLocaleDateString(\n locale,\n sameYear && kanji ? options : optionsWithYear\n );\n\n return `${arrivalDateString} \\u2013 ${departureDateString}`;\n};\n\nexport interface Props {\n children: (args: {\n arrivalDate: Date | null;\n departureDate: Date | null;\n formattedStayDates: string;\n adaFormattedStayDates: string;\n stayDuration: number;\n }) => JSX.Element | null;\n}\n\nexport function useFormattedStayDates({\n language,\n arrivalDate,\n departureDate,\n}: {\n language: string;\n arrivalDate: Date | null;\n departureDate: Date | null;\n}) {\n const locale = useLocale({ language });\n const { t, ready: textReady } = useTranslation('osc-rooms');\n\n return {\n formattedStayDates:\n !!arrivalDate && !!departureDate && !!locale\n ? formatDates(arrivalDate, departureDate, locale)\n : '',\n adaFormattedStayDates:\n !!arrivalDate && !!departureDate && !!locale\n ? t('occupancy.stayDatesADA', {\n arrivalDate: arrivalDate.toLocaleDateString(locale, {\n dateStyle: 'full',\n }),\n departureDate: departureDate.toLocaleDateString(locale, { dateStyle: 'full' }),\n })\n : '',\n stayDuration:\n !!arrivalDate && !!departureDate ? differenceInDays(departureDate, arrivalDate) : 0,\n textReady,\n };\n}\n\nexport const isKanji = (locale: string | Intl.Locale) => {\n const language = localeToLanguage(locale);\n return ['ja', 'ko', 'zh-hans', 'zh-hant'].includes(language);\n};\n\nexport const isTurkish = (locale: Intl.Locale | string) => {\n const language = localeToLanguage(locale);\n return ['tr'].includes(language);\n};\n\nfunction localeToLanguage(locale: string | Intl.Locale) {\n return (\n isLocale(locale) && locale?.baseName ? locale.baseName : (locale as string)\n ).toLowerCase();\n}\n\nfunction isLocale(locale: string | Intl.Locale | undefined): locale is Intl.Locale {\n if ((locale as Intl.Locale)?.baseName) {\n return true;\n }\n return false;\n}\n\nconst defaultOptions: Intl.DateTimeFormatOptions = {\n calendar: 'gregory',\n};\n\nconst localeOptions: Record<string, Intl.DateTimeFormatOptions> = {\n ar: {\n numberingSystem: 'latn',\n },\n};\n\nexport function useLocale({ language }: { language: string }) {\n return new Intl.Locale(language, {\n ...defaultOptions,\n ...localeOptions[language],\n });\n}\n","import Icon from '@dx-ui/osc-icon';\nimport type * as React from 'react';\nimport cx from 'classnames';\nimport { useShopFormSummaryText } from './shop-form.summary.utils';\nimport { useTranslation } from 'next-i18next';\nimport type { ShopFormRoom } from '@dx-ui/osc-rooms';\nimport { useMediaQuery } from 'usehooks-ts';\n\nexport type ShopFormSummaryProps = {\n arrivalDate: Date | null;\n className?: string;\n departureDate: Date | null;\n editButtonRef?: React.Ref<HTMLButtonElement>;\n isExpanded: boolean;\n isLoading?: boolean;\n language: string;\n location?: string;\n onEditClick: () => void;\n rooms: ShopFormRoom[];\n showChildAges?: boolean;\n summaryType: 'search' | 'stay';\n hideRoomSummary?: boolean;\n};\n\nexport function ShopFormSummary({\n arrivalDate,\n className,\n departureDate,\n editButtonRef,\n isExpanded,\n isLoading: isLoadingProp,\n language,\n location,\n onEditClick,\n rooms,\n showChildAges,\n summaryType,\n hideRoomSummary,\n}: ShopFormSummaryProps) {\n const isLargeView = useMediaQuery('(min-width: 1024px)');\n const isSmallAndMediumView = !isLargeView;\n const { t, ready } = useTranslation('osc-shop-form');\n const { dates, adaDates, kidsAgesText, occupancy, stayDuration } = useShopFormSummaryText({\n arrivalDate,\n departureDate,\n language,\n rooms,\n showChildAges,\n });\n const titleText = summaryType === 'search' ? t('yourSearchTitleCase') : t('yourStayTitleCase');\n const editText = summaryType === 'search' ? t('editSearch') : t('editStayTitleCase');\n const locationAnywhere = t('anywhere');\n const adaEditSummary =\n summaryType === 'search'\n ? t('editSearchDetails', { location, dates: adaDates, occupancy })\n : t('editStayDetails', { location: location ?? undefined, dates: adaDates, occupancy });\n\n const isLoading = isLoadingProp || !ready;\n\n const editStayButton = (\n <button\n ref={editButtonRef}\n className=\"btn-primary-link\"\n type=\"button\"\n aria-expanded={isExpanded}\n aria-label={adaEditSummary}\n onClick={onEditClick}\n data-testid=\"search-edit-button\"\n >\n {editText}\n </button>\n );\n\n return (\n <div\n className={cx(\n 'flex w-full flex-wrap justify-between gap-2 lg:flex-nowrap lg:items-center lg:justify-center lg:gap-3',\n className\n )}\n data-testid=\"search-summary\"\n >\n <div className=\"font-bold lg:shrink-0\">\n {isLoading ? <SkeletonLoader className=\"h-6 w-16\" /> : titleText}\n </div>\n {isLoading ? (\n <SkeletonLoader className=\"h-6 w-16 lg:hidden\" />\n ) : isSmallAndMediumView ? (\n editStayButton\n ) : null}\n <div className=\"lg:divide-border lg:border-border flex w-full flex-col gap-2 lg:w-auto lg:flex-row lg:gap-3 lg:divide-x lg:border-e lg:pe-3 rtl:lg:divide-x-reverse lg:[&>*:not(:first-child)]:ps-3 lg:[&>*]:py-2\">\n {isLoading ? (\n <SkeletonLoader className=\"h-6 w-20 lg:self-center\" />\n ) : (\n <div className=\"flex w-full gap-1 lg:w-auto lg:min-w-0\">\n <Icon name=\"hotel-location\" variant=\"solid\" className=\"size-6\" />\n <span\n className=\"text-base font-normal lg:truncate\"\n title={location || locationAnywhere}\n >\n {location || locationAnywhere}\n </span>\n </div>\n )}\n <div className=\"flex w-full gap-1 lg:w-auto lg:shrink-0\" data-testid=\"search-summary-dates\">\n <Icon name=\"calendar\" variant=\"solid\" className=\"size-6\" />\n {isLoading ? (\n <SkeletonLoader className=\"h-6 w-64\" />\n ) : (\n <>\n <span aria-hidden={true}>\n {dates}\n {dates ? ' ' : null}\n <span\n className={cx('inline-block whitespace-nowrap text-base font-normal', {\n 'text-text-alt': dates,\n })}\n data-testid=\"search-summary-nights\"\n >\n {dates ? `(${stayDuration})` : stayDuration}\n </span>\n </span>\n <span className=\"sr-only\">\n {adaDates} {stayDuration}\n </span>\n </>\n )}\n </div>\n {hideRoomSummary ? null : (\n <div className=\"flex w-full gap-1 lg:w-auto lg:min-w-0\">\n <Icon name=\"users\" className=\"size-6\" />\n {isLoading ? (\n <SkeletonLoader className=\"h-6 w-28\" />\n ) : (\n <span\n className=\"lg:truncate\"\n title={`${occupancy}${kidsAgesText ? kidsAgesText : ''}`}\n >\n {occupancy}\n {kidsAgesText ? <span className=\"text-text-alt\"> {kidsAgesText}</span> : null}\n </span>\n )}\n </div>\n )}\n </div>\n {isLoading ? (\n <SkeletonLoader className=\"hidden h-6 w-16 lg:block\" />\n ) : isLargeView ? (\n editStayButton\n ) : null}\n </div>\n );\n}\n\nfunction SkeletonLoader({\n className,\n ...rest\n}: React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>) {\n return (\n <span\n className={cx('bg-bg-alt inline-block animate-pulse align-middle', className)}\n {...rest}\n />\n );\n}\n","import * as React from 'react';\nimport type { FormDataValues, ShopForm } from '../shop-form';\nimport { useTranslationsConfig } from '@dx-ui/osc-speedbump';\nimport type { Rule, Facts } from '@dx-shared/rule-engine';\nimport { RuleEngine } from '@dx-shared/rule-engine';\nimport { useRouter } from 'next/router';\nimport { useTranslation } from 'next-i18next';\n\nconst DEFAULT_LANGUAGE = 'en';\n\nexport function useShopFormSpeedBump({\n locale,\n onSubmit,\n targetOHWPage,\n}: Pick<React.ComponentProps<typeof ShopForm>, 'onSubmit' | 'targetOHWPage'> & {\n locale: string;\n}) {\n const { asPath } = useRouter();\n const { t } = useTranslation(['osc-speedbump', 'osc-rooms']);\n\n const [speedBumpData, setSpeedBumpData] = React.useState<{\n formData: FormDataValues;\n url: string | null;\n } | null>(null);\n const [speedBumpType, setSpeedBumpType] = React.useState<'language' | 'ten-plus' | null>(null);\n const { translateRules } = useTranslationsConfig({ isEnabled: !!targetOHWPage });\n\n const isSpeedBumpVisible = speedBumpData !== null;\n const closeSpeedBump = () => {\n setSpeedBumpData(null);\n };\n\n const handleSpeedBumpClose = () => {\n closeSpeedBump();\n };\n const handleSpeedBumpContinue = () => {\n let url = speedBumpData?.url ?? null;\n if (speedBumpType === 'language') {\n url = speedBumpData?.url?.replace(`/${locale}/`, `/${DEFAULT_LANGUAGE}/`) || null;\n }\n if (\n speedBumpData?.formData &&\n speedBumpType !== 'language' &&\n shouldShowLanguageSpeedBump(url)\n ) {\n setSpeedBumpData({ formData: speedBumpData?.formData, url });\n setSpeedBumpType('language');\n return;\n }\n speedBumpData &&\n onSubmit?.({\n formData: speedBumpData.formData,\n url,\n locale: speedBumpType === 'language' ? DEFAULT_LANGUAGE : locale ?? DEFAULT_LANGUAGE,\n });\n closeSpeedBump();\n };\n\n const shouldShowLanguageSpeedBump = (url?: string | null) => {\n if (url && locale && locale !== DEFAULT_LANGUAGE) {\n try {\n const ruleEngine = new RuleEngine(translateRules as Rule);\n\n return ruleEngine?.run({ language: locale, url } as Facts) === false;\n } catch (e) {\n console.warn('Error while running rule engine in shouldShowSpeedBump', e); // eslint-disable-line no-console\n return true;\n }\n }\n };\n const shouldShowSpeedBump = (url?: string | null, formData?: FormDataValues) => {\n const isGMELessThanTenRoomsAndNoAttendees =\n asPath.includes('/events/') &&\n formData?.numRooms &&\n Number(formData.numRooms) < 10 &&\n (!formData?.numAttendees || Number(formData?.numAttendees) === 0);\n\n if (isGMELessThanTenRoomsAndNoAttendees) {\n setSpeedBumpType('ten-plus');\n return true;\n }\n if (shouldShowLanguageSpeedBump(url)) {\n setSpeedBumpType('language');\n return true;\n }\n return false;\n };\n\n const getSpeedBumpOptions = () => {\n switch (speedBumpType) {\n case 'language':\n return {\n title: t('osc-speedbump:title'),\n };\n case 'ten-plus':\n return {\n title: t('osc-rooms:roomsAttendees.groupSpeedbump.speedbumpTitle'),\n message: t('osc-rooms:roomsAttendees.groupSpeedbump.speedbumpMessage'),\n confirmButtonLabel: t('osc-rooms:roomsAttendees.groupSpeedbump.continueSelections'),\n cancelButtonLabel: t('osc-rooms:roomsAttendees.groupSpeedbump.changeSelections'),\n };\n\n default:\n break;\n }\n };\n return {\n isSpeedBumpVisible,\n handleSpeedBumpClose,\n handleSpeedBumpContinue,\n shouldShowSpeedBump,\n setSpeedBumpData,\n speedBumpType,\n getSpeedBumpOptions,\n };\n}\n","import { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { useTranslation } from 'next-i18next';\n\nexport const GeocodeFailModal = ({\n isGeocodeError,\n setIsGeoCodeError,\n dialogTrigger,\n}: {\n isGeocodeError: boolean;\n setIsGeoCodeError: React.Dispatch<React.SetStateAction<boolean>>;\n dialogTrigger?: React.ReactNode;\n}) => {\n const { t } = useTranslation('osc-shop-form');\n\n return (\n <Dialog\n isOpen={isGeocodeError}\n size=\"sm\"\n onDismiss={() => setIsGeoCodeError(false)}\n title={t('geocodeFailModalTitle')}\n dialogTrigger={dialogTrigger}\n >\n <div className=\"pb-2 text-center\">\n <div>{t('geocodeFailModalContent')}</div>\n </div>\n <div className=\"flex items-center justify-center space-x-2 py-2 rtl:space-x-reverse\">\n <button\n className=\"btn btn-lg btn-primary\"\n onClick={() => setIsGeoCodeError(false)}\n type=\"button\"\n >\n {t('geocodeFailModalButton')}\n </button>\n </div>\n </Dialog>\n );\n};\n","import type { FeatureConfig, FeatureToggle } from '@dx-ui/gql-types';\n\nexport type FeatureTogglesQueryData = {\n featureToggles: Pick<FeatureToggle, 'name' | 'enabled'>[];\n};\n\nexport type FeatureConfigsQueryData = FeatureTogglesQueryData & {\n featureConfigs: Pick<FeatureConfig, 'name' | 'conditions' | 'config'>[];\n};\n\nexport function getIsFeatureToggleEnabled({\n featureToggleData,\n name,\n}: {\n featureToggleData: FeatureTogglesQueryData | null | undefined;\n name: string;\n}) {\n return (\n featureToggleData?.featureToggles?.find((toggle) => toggle.name === name)?.enabled || false\n );\n}\n\nexport function getFeatureConfig<T = Record<string, unknown>>({\n featureToggleData,\n name,\n}: {\n featureToggleData: FeatureConfigsQueryData | undefined;\n name: string;\n}): T | null {\n const toggleEnabled = getIsFeatureToggleEnabled({ featureToggleData, name });\n const allConfigs = featureToggleData?.featureConfigs || [];\n const searchedConfig = allConfigs.find((toggle) => toggle.name === name);\n return toggleEnabled ? searchedConfig?.config : null;\n}\n","import { DISABLE_AARP_SPECIAL_RATES } from '../constants/featureToggles';\nimport { useFeatureTogglesQuery } from '../gql/queries';\nimport { getIsFeatureToggleEnabled } from '@dx-ui/utilities-feature-toggles-configs';\n\nexport function useAarpToggle() {\n const { data } = useFeatureTogglesQuery({\n names: [DISABLE_AARP_SPECIAL_RATES],\n });\n\n return {\n disableAARPSpecialRates: getIsFeatureToggleEnabled({\n featureToggleData: data,\n name: DISABLE_AARP_SPECIAL_RATES,\n }),\n };\n}\n","import type { FormProps } from '@dx-ui/osc-form';\nimport { Form, FormConnector } from '@dx-ui/osc-form';\nimport cx from 'classnames';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport type { AdditionalQSParameters } from './shop-form.utils';\nimport { generateShopFormUrl, generateSanitizedDefaultValues } from './shop-form.utils';\nimport type { DEFAULT_FORM_VALUES } from './shop-form.constants';\nimport { ShopFormSummary } from './shop-form.summary';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { serverSideGeocodeQuery } from './gql/queries';\nimport type { FormState } from 'react-hook-form';\nimport { getSafeLanguage } from '@dx-ui/framework-react-query';\nimport type { Hhonors, SpecialRates } from '@dx-ui/osc-special-rates';\nimport type { ShopFormRoom } from '@dx-ui/osc-rooms';\nimport type { ShopFormDatesProps } from './shop-form.dates';\nimport { Speedbump } from '@dx-ui/osc-speedbump';\nimport { useShopFormSpeedBump } from './hooks/use-shop-form-speedbump';\nimport type { GeocodeQuery } from './gql/types';\nimport { GeocodeFailModal } from './shop-form.geocode-fail-modal';\nimport { logError } from '@dx-ui/framework-logger';\nimport { ControlClose } from '@dx-ui/osc-controls';\nimport { useAarpToggle } from './hooks/use-aarp-toggle';\n\ntype FormValues = Omit<\n typeof DEFAULT_FORM_VALUES,\n 'dates' | 'hhonors' | 'numRooms' | 'numAttendees' | 'specialRates' | 'numNights'\n> & {\n dates: {\n arrivalDate: Date | null;\n departureDate: Date | null;\n datesFlex: boolean;\n };\n hhonors: Hhonors | null;\n numRooms: number | null;\n numNights: number | null;\n numAttendees: number | null;\n specialRates: SpecialRates;\n shouldFocusRoomsInput?: boolean;\n};\n\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>;\n }\n : T;\n\nexport interface FormDataValues extends FormValues {\n dates: ShopFormDatesProps;\n hhonors: Hhonors;\n rooms: ShopFormRoom[];\n}\n\nexport interface FormDefaultValues extends DeepPartial<FormDataValues> {\n dates?: Partial<ShopFormDatesProps>;\n rooms?: ShopFormRoom[];\n specialRates?: Partial<SpecialRates>;\n}\n\nexport type TargetOHWPage = 'search' | 'ten-plus-search' | 'book' | 'ten-plus-book' | 'search-zero';\n\ntype ShopForm = {\n /** Additional query string parameters that are typically pass-through parameters that are not used in widget directly */\n additionalQSParameters?: AdditionalQSParameters;\n buttonClassName?: string;\n /** override for the cta button text */\n cta?: string;\n /** initial values to set in form */\n defaultValues?: FormDefaultValues;\n /** enable to exclude the internal form provider when wrapping with \\<ShopFormProvider /\\> */\n excludeProvider?: boolean;\n isLoading?: boolean;\n /** language value passed from router */\n language: string;\n onClose?: () => void;\n onSubmit?: (args0: { formData: FormDataValues; url: string | null; locale: string }) => void;\n shouldDirtyToSubmit?: boolean;\n /** Adds screen reader text to update button **/\n submitOpensNewTab?: boolean;\n /** Target OHW page to generate URL for from onSubmit. If none passed url in onSubmit will return null */\n summaryOptions?: {\n expanded?: boolean;\n initiallyExpanded?: boolean;\n state?: FormDataValues;\n onEditClick?: () => void;\n showChildAges?: boolean;\n summaryClassName?: string;\n summaryWrapperClassName?: string;\n suppressHeader?: boolean;\n hideRoomSummary?: boolean;\n type: 'search' | 'stay';\n };\n /** Target OHW page to generate URL for from onSubmit. If none passed url in onSubmit will return null */\n targetOHWPage?: TargetOHWPage;\n /** optional title of the form */\n title?: string;\n wrapperClassName?: string;\n useFormProps?: Pick<FormProps, 'useFormProps'> & {\n defaultValues?: FormDefaultValues;\n };\n /**Opt-in to route flex date searches to locations page results - <br/>\n * Once routed to dream flow, dates and flexible date selection will be wiped <br/>\n * If user selects again in dream flow, will be routed to search flow flex dates experience.\n */\n enableDatesFlexDreamRouting?: boolean;\n baseUrl?: string;\n canAlwaysSubmit?: boolean;\n onSubmitClick?: (formState: FormState<FormDataValues>) => void;\n renderAfterUpdateButton?: React.ReactNode;\n shouldDisplayGeocodeErrorModal?: boolean;\n /** Override for the Error Banner Defaults to displaying */\n hasErrorBanner?: boolean | undefined;\n} & Omit<FormProps, 'onSubmit'>;\n\nexport const wrapperClassNameDefault = [\n 'container', // container needs to be first for wrappers to slice(1) to remove\n 'relative',\n 'flex',\n 'flex-wrap',\n 'items-end',\n 'justify-center',\n 'gap-2',\n 'lg:gap-3',\n 'lg:flex-nowrap',\n];\n\nexport const wrapperClassNameDefaultWithLocation = [...wrapperClassNameDefault, 'lg:mb-6'];\n\n/**\n * The OSC shop form is an extended version of the OSC form component with some key additional features:\n *\n * `defaultValues` is somewhat strictly typed with `FormDefaultValues`. This allows consumers to pass in search-specific defaults like dates, room parameters, and special rates. The defaults also allow us to handle business logic cases—such as generating valid search URLs—more easily.\n\nTo use more freeform form values, consider using [the OSC `<Form />` component instead](https://nx-storybook-ui.dig-t.hhc.hilton.com/?path=/docs*library-components-form--combining-form-components).\n *\n * Use the `additionalQSParameters` prop to include any “passthrough†query strings. `displayCurrency` are used to ensure the URL returned from `onFormSubmit()` is generated properly.\n *\n * Certain error handling is built in and standardized. For example, if a user tries to select a freeform rate while trying to use points, the form displays messaging that lets the user know they cannot use both points and freeform rates.\n *\n * The `targetOHWPage` allows for auto generation of a specific OHW page URL as part of the `onSubmit` callback. The resulting URI is only valid if consumers pass the correct initial values into `additionalQSParameters` and `defaultValues` props.\n */\nexport const ShopForm: React.FC<React.PropsWithChildren<ShopForm>> = ({\n additionalQSParameters,\n buttonClassName,\n children,\n cta,\n defaultValues,\n excludeProvider,\n isLoading: isLoadingProp,\n language,\n onClose,\n onSubmit,\n shouldDirtyToSubmit = false,\n onSubmitClick,\n canAlwaysSubmit = false,\n submitOpensNewTab,\n summaryOptions,\n targetOHWPage,\n title,\n wrapperClassName,\n enableDatesFlexDreamRouting = false,\n renderAfterUpdateButton,\n shouldDisplayGeocodeErrorModal = false,\n hasErrorBanner,\n useFormProps,\n ...rest\n}) => {\n const client = useQueryClient();\n const formContentRef = React.useRef<HTMLDivElement | null>(null);\n const editButtonRef = React.useRef<HTMLButtonElement | null>(null);\n const [\n {\n hasLocationInput,\n hasRoomsButton,\n hasSpecialRatesButton,\n hasNumRoomsButton,\n hasNumAttendeesButton,\n },\n setElementState,\n ] = React.useState<ReturnType<typeof getElementState>>(getElementState(formContentRef.current));\n const { t, ready } = useTranslation(['osc-link', 'osc-shop-form']);\n const isLoading = !ready || isLoadingProp;\n const [isExpanded, setIsExpanded] = React.useState(\n !!summaryOptions?.initiallyExpanded || !summaryOptions\n );\n const [isGeocodeError, setIsGeoCodeError] = React.useState(false);\n const expanded = !!summaryOptions?.expanded || isExpanded;\n const locale = React.useMemo(() => getSafeLanguage(language), [language]);\n const {\n isSpeedBumpVisible,\n handleSpeedBumpClose,\n handleSpeedBumpContinue,\n shouldShowSpeedBump,\n setSpeedBumpData,\n speedBumpType,\n getSpeedBumpOptions,\n } = useShopFormSpeedBump({ locale, onSubmit, targetOHWPage });\n\n const { disableAARPSpecialRates } = useAarpToggle();\n\n //React hook form doesn't recommend undefined defaultValues. So merge user values with defaults object to pass into consumer form values.\n const defaultValuesWithDefaults = React.useMemo(\n () => generateSanitizedDefaultValues(defaultValues),\n [defaultValues]\n );\n\n const [internalSummaryState, setInternalSummaryState] =\n React.useState<FormDataValues>(defaultValuesWithDefaults);\n const summaryState = summaryOptions?.state || internalSummaryState;\n\n const onFormSubmit = async (data: FormDataValues) => {\n const formData = {\n ...data,\n rooms: data.rooms.map((room) => ({\n adults: room.adults,\n children: room.children.map((c) => {\n return { age: Number.isNaN(c.age) ? null : c.age };\n }),\n })),\n };\n setInternalSummaryState(formData);\n\n const hasGeoCodeInput = formData.query || formData.placeId;\n const hasFlexDates = formData.dates.datesFlex && enableDatesFlexDreamRouting;\n const shouldAttemptToGeocode =\n hasGeoCodeInput && (hasFlexDates || shouldDisplayGeocodeErrorModal);\n\n let geocodeData: GeocodeQuery = {};\n\n if (shouldAttemptToGeocode) {\n try {\n geocodeData = await serverSideGeocodeQuery(client, {\n address: formData?.query,\n placeId: formData?.placeId,\n sessionToken: formData?.sessionToken,\n language: locale || 'en',\n });\n\n if (!geocodeData?.geocode && shouldDisplayGeocodeErrorModal) return setIsGeoCodeError(true);\n } catch (error) {\n if (error instanceof Error || typeof error === 'string')\n logError('OSC_SHOP_FORM', error, 'failed to fetch geocode data');\n if (shouldDisplayGeocodeErrorModal) {\n return setIsGeoCodeError(true);\n }\n }\n }\n if (onSubmit) {\n const url = targetOHWPage\n ? await generateShopFormUrl({\n additionalQSParameters,\n formData,\n locale,\n disableAARPSpecialRates,\n targetOHWPage,\n enableDatesFlexDreamRouting,\n geocodeData,\n client,\n })\n : null;\n if (shouldShowSpeedBump(url, formData)) {\n setSpeedBumpData({ formData, url });\n return;\n }\n onSubmit({ formData, url, locale });\n }\n };\n React.useEffect(() => {\n if (!isLoading && expanded) {\n setElementState(getElementState(formContentRef.current));\n }\n }, [expanded, isLoading]);\n\n function closeShopForm() {\n setIsExpanded(false);\n onClose?.();\n editButtonRef?.current?.focus();\n }\n const formContent = (\n <FormConnector<FormDataValues>>\n {({ formState, setValue }) => {\n const { isValid, isDirty } = formState;\n const canSubmit =\n canAlwaysSubmit || (summaryOptions || shouldDirtyToSubmit ? isValid && isDirty : isValid);\n\n return (\n <div>\n <GeocodeFailModal\n isGeocodeError={isGeocodeError}\n setIsGeoCodeError={setIsGeoCodeError}\n />\n {summaryOptions ? (\n <div\n className={cx(summaryOptions.summaryWrapperClassName, {\n 'border-border border-b pb-2': expanded,\n })}\n >\n <ShopFormSummary\n className={summaryOptions.summaryClassName || 'container'}\n arrivalDate={summaryState.dates.arrivalDate}\n departureDate={summaryState.dates.departureDate}\n isLoading={isLoading}\n language={language}\n location={summaryState.query}\n onEditClick={() => {\n summaryOptions?.onEditClick?.();\n if (summaryOptions?.expanded === undefined) {\n setIsExpanded(true);\n }\n }}\n rooms={summaryState.rooms}\n showChildAges={summaryOptions.showChildAges}\n summaryType={summaryOptions.type}\n hideRoomSummary={summaryOptions.hideRoomSummary}\n isExpanded={expanded}\n editButtonRef={editButtonRef}\n />\n </div>\n ) : null}\n {!isLoading && expanded ? (\n <div className={cx({ 'pt-2': summaryOptions })}>\n {!!title && (\n <h2 className=\"heading-2xl lg:heading-4xl mb-4 font-medium\">{title}</h2>\n )}\n <div\n ref={formContentRef}\n className={\n wrapperClassName ||\n cx(...wrapperClassNameDefault, {\n 'md:flex-nowrap':\n !hasRoomsButton &&\n !hasSpecialRatesButton &&\n !hasNumRoomsButton &&\n !hasNumAttendeesButton,\n })\n }\n >\n {summaryOptions && !summaryOptions.suppressHeader && !hasLocationInput ? (\n <header\n className=\"w-full font-bold lg:mb-2.5 lg:w-auto\"\n id=\"shop-form-header\"\n data-testid=\"shop-form-header\"\n tabIndex={-1}\n >\n {summaryOptions.type === 'search'\n ? t('osc-shop-form:editSearch')\n : t('osc-shop-form:editStayTitleCase')}\n </header>\n ) : null}\n {children}\n <div\n data-osc-product=\"shop-form-btn-submit-wrapper\"\n className=\"flex w-full md:w-auto md:flex-1\"\n >\n <button\n data-osc-product=\"shop-form-button\"\n data-testid=\"search-submit-button\"\n disabled={!canSubmit}\n {...(onSubmitClick && { onClick: () => onSubmitClick(formState) })}\n className={\n buttonClassName ||\n 'shop-form-btn-submit btn btn-lg w-full px-4 motion-safe:transition md:w-auto md:flex-1'\n }\n type=\"submit\"\n >\n {cta || t('osc-shop-form:ctaButton')}\n {submitOpensNewTab ? (\n <span className=\"sr-only\">{t('osc-link:newTab')}</span>\n ) : null}\n </button>\n </div>\n {renderAfterUpdateButton}\n {summaryOptions ? (\n <ControlClose\n onClick={closeShopForm}\n className=\"absolute -top-2.5 end-1 order-last md:end-4 lg:static lg:-ms-2\"\n size=\"xl\"\n label={t('osc-shop-form:close')}\n />\n ) : null}\n </div>\n </div>\n ) : null}\n {isSpeedBumpVisible ? (\n <Speedbump\n isShowing={true}\n speedbumpOptions={getSpeedBumpOptions()}\n onClose={() => {\n handleSpeedBumpClose();\n if (speedBumpType === 'ten-plus') setValue('shouldFocusRoomsInput', true);\n }}\n onContinue={handleSpeedBumpContinue}\n />\n ) : null}\n </div>\n );\n }}\n </FormConnector>\n );\n\n if (excludeProvider) {\n return (\n <FormConnector<FormDataValues>>\n {({ handleSubmit }) => (\n <form method=\"POST\" {...rest} noValidate onSubmit={handleSubmit(onFormSubmit)}>\n {formContent}\n </form>\n )}\n </FormConnector>\n );\n }\n\n return (\n <Form\n onSubmit={onFormSubmit}\n useFormProps={{\n ...useFormProps,\n defaultValues: defaultValuesWithDefaults,\n }}\n {...rest}\n hasErrorBanner={hasErrorBanner}\n >\n {formContent}\n </Form>\n );\n};\n\nfunction getElementState(formContentElement: HTMLDivElement | null) {\n return {\n hasLocationInput: formContentElement?.querySelector(\n '[data-osc-product=\"shop-form-location-input\"]'\n ),\n hasRoomsButton: formContentElement?.querySelector('[data-osc-product=\"search-rooms-button\"]'),\n hasSpecialRatesButton: formContentElement?.querySelector(\n '[data-osc-product=\"search-rates-button\"]'\n ),\n hasNumRoomsButton: formContentElement?.querySelector('#shop-form-numRooms'),\n hasNumAttendeesButton: formContentElement?.querySelector('#shop-form-numAttendees'),\n };\n}\n\nexport default ShopForm;\n","import { useEffect, useRef } from 'react';\n\nfunction usePreviousValue<T = unknown>(value: T) {\n const ref = useRef<T>(value);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n\nexport { usePreviousValue };\n","export * from './use-previous-value';\n","export * from './lib';\n","import { useMemo, useEffect } from 'react';\nimport type { UseFormProps } from 'react-hook-form';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { usePreviousValue } from '@dx-ui/utilities-use-previous-value';\nimport type { FormDataValues, FormDefaultValues } from './shop-form';\nimport { generateSanitizedDefaultValues } from './shop-form.utils';\nimport isEqual from 'lodash/isEqual';\nimport { useQuery, useQueryClient } from '@tanstack/react-query';\n\ntype SearchForProviderProps = React.PropsWithChildren<\n Omit<UseFormProps<FormDataValues>, 'defaultValues'> & { defaultValues?: FormDefaultValues }\n>;\n\n/**\n * Use `<ShopFormProvider/>` when shop form state needs to be shared across multiple components e.g. `<ShopForm />` itself and an external `<ShopFormSpecialRates />` used on the same page.\n * When using with `<ShopForm />` make sure to set excludeProvider to true `<ShopForm excludeProvider={true} />`.\n */\nexport function ShopFormProvider({ children, ...formProps }: SearchForProviderProps) {\n const defaultValuesWithDefaults = useMemo(\n () => generateSanitizedDefaultValues(formProps.defaultValues),\n [formProps.defaultValues]\n );\n const previousDefaultValues = usePreviousValue(defaultValuesWithDefaults);\n const methods = useForm<FormDataValues>({\n mode: 'onTouched',\n criteriaMode: 'all',\n ...formProps,\n defaultValues: defaultValuesWithDefaults,\n });\n const reset = methods.reset;\n const { defaultValues, setShopFormDefaultValues } = useShopFormDefaultValues();\n\n useEffect(() => {\n if (!isEqual(defaultValues, defaultValuesWithDefaults)) {\n setShopFormDefaultValues(defaultValuesWithDefaults);\n }\n if (!isEqual(previousDefaultValues, defaultValuesWithDefaults)) {\n reset(defaultValuesWithDefaults);\n }\n }, [\n defaultValues,\n defaultValuesWithDefaults,\n reset,\n previousDefaultValues,\n setShopFormDefaultValues,\n ]);\n\n return <FormProvider {...methods}>{children}</FormProvider>;\n}\n\nexport function useShopFormDefaultValues() {\n const queryClient = useQueryClient();\n const queryKey = ['oscShopFormDefaultValues'];\n const { data: defaultValues } = useQuery<FormDataValues>({ queryKey, enabled: false });\n const setShopFormDefaultValues = (defaultValues: FormDefaultValues) => {\n queryClient.setQueryData(queryKey, defaultValues);\n };\n return {\n defaultValues,\n setShopFormDefaultValues,\n };\n}\n","import type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { Location } from '@dx-ui/osc-location';\n\n/**\n * Use the `<ShopFormLocation/>` component inside of the ShopForm in order to provide the OSC experience for querying the location used to search.\n */\nexport const ShopFormLocation: React.FC<\n React.PropsWithChildren<Partial<Location>> & Pick<Location, 'language'>\n> = ({ label, language, placeholder, ...rest }) => {\n const [t] = useTranslation('osc-location');\n return (\n <div className=\"flex-basis-full relative flex\">\n <Location\n label={label ?? t('label')}\n language={language}\n placeholder={placeholder ?? t('placeholder')}\n name=\"query\"\n {...rest}\n />\n </div>\n );\n};\n","import type { DatePickerProps } from '@dx-ui/osc-date-picker';\nimport { DatePicker } from '@dx-ui/osc-date-picker';\n/**\n *\n * @param props\n * @returns Soft wrapper of <DatePicker /> component to maintain compatibility. Once all apps are in monorepo work to deprecate this.\n */\n\nexport type ShopFormDatesProps = {\n arrivalDate: Date | null;\n departureDate: Date | null;\n datesFlex: boolean;\n};\n\nexport const ShopFormDates = (props: DatePickerProps) => <DatePicker {...props} />;\n","import type * as React from 'react';\n\n/**\n * @deprecated\n * The `<ShopFormInfoContainer/>` can be used for layout purposes, originally for use as a wrapper around `<ShopFormRooms/>` and `<ShopFormSpecialRates/>`\n */\nconst ShopFormInfoContainer = ({ children }: { children: React.ReactNode }) => children;\n\nShopFormInfoContainer.displayName = 'ShopFormInfoContainer';\n\nexport { ShopFormInfoContainer };\nexport default ShopFormInfoContainer;\n","import { useFormContext } from 'react-hook-form';\nimport type { FormDataValues } from './shop-form';\n\nexport const useShopFormContext = () => useFormContext<FormDataValues>();\n","import * as React from 'react';\nimport cx from 'classnames';\n\nconst InfoCircle: React.FC<{ error: boolean; info: string | null; 'data-testid'?: string }> = ({\n error,\n info,\n ...rest\n}) => {\n if (error || info !== null) {\n return (\n <div\n className={cx(\n 'text-text-inverse absolute -top-2 inline-block size-5 rounded-full ltr:-right-2 rtl:-left-2',\n {\n 'bg-danger': !!error,\n 'bg-primary': !!info && !error,\n }\n )}\n {...(rest?.['data-testid'] && { 'data-testid': `${rest?.['data-testid']}-info` })}\n >\n <span aria-hidden=\"true\">{error ? '!' : info !== null ? info : null}</span>\n </div>\n );\n }\n\n return null;\n};\n\nexport type ShopFormButtonProps = React.ComponentProps<'button'> & {\n label: string;\n product: string;\n hasError: boolean;\n info?: string | null;\n 'data-testid'?: string;\n};\n\nexport const ShopFormButton = React.forwardRef<HTMLButtonElement, ShopFormButtonProps>(\n ({ product, children, label, hasError, info = null, ...props }, ref) => {\n return (\n <div data-osc-product={product} className=\"flex flex-1\">\n <button\n data-osc-product=\"shop-form-selection-button\"\n className={cx(\n 'shop-form-btn btn btn-lg relative w-full px-2 motion-safe:transition lg:px-4',\n props.className\n )}\n ref={ref}\n type=\"button\"\n {...props}\n >\n <span>{label}</span>\n <InfoCircle error={hasError} info={info} data-testid={props?.['data-testid']} />\n </button>\n {children}\n </div>\n );\n }\n);\n\nShopFormButton.displayName = 'ShopFormButton';\n\nexport default ShopFormButton;\n","import cx from 'classnames';\nimport type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\n\nexport type StepperProps = {\n /**\n * when used in a form, this is the id of the hidden input. (must also include the `inputName` prop)\n */\n inputId?: HTMLInputElement['id'];\n /**\n * when used in a form, this will be the key for the form results. (must also include the `inputId` prop)\n */\n inputName?: HTMLInputElement['name'];\n /**\n * the current state of the Stepper\n */\n value?: number;\n /**\n * upper limit of the value\n */\n max?: number;\n /**\n * lower limit of the value\n */\n min?: number;\n onMinusClick?: React.DOMAttributes<HTMLButtonElement>['onClick'];\n onPlusClick?: React.DOMAttributes<HTMLButtonElement>['onClick'];\n /**\n * used for a11y to give a label to the value\n */\n valueLabel?: string;\n /**\n * used for a11y to label the minus button\n */\n minusLabel?: string;\n minusTestId?: string;\n /**\n * used for a11y to label the plus button\n */\n plusLabel?: string;\n plusTestId?: string;\n /**\n * Allows control of plus and minus icon colors\n */\n iconColor?: string;\n iconColorDisabled?: string;\n};\n\ntype Stepper = StepperProps & React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Used to increment/decrement a value\n *\n * Use `onPlusClick` and `onMinusClick` to change value one by one.\n */\nexport const Stepper: React.FC<React.PropsWithChildren<Stepper>> = ({\n className,\n inputId,\n inputName,\n max,\n min,\n onMinusClick,\n onPlusClick,\n value = 0,\n valueLabel = '',\n minusLabel,\n minusTestId,\n plusLabel,\n plusTestId,\n iconColor,\n iconColorDisabled,\n ...rest\n}) => {\n const minusDisabled = value === min;\n const plusDisabled = value === max;\n const { t } = useTranslation('osc-stepper');\n return (\n <div className={cx('flex items-center justify-center', className)} {...rest}>\n {!!inputId && !!inputName && (\n <input id={inputId} type=\"hidden\" name={inputName} value={value} />\n )}\n <button\n type=\"button\"\n className=\"btn btn-primary-text btn-lg size-6 rounded-full\"\n onClick={onMinusClick}\n disabled={minusDisabled}\n aria-label={minusLabel || t('minusLabel')}\n data-testid={minusTestId}\n >\n <span className=\"sr-only\">{minusLabel || t('minusLabel')}</span>\n <svg\n role=\"img\"\n aria-hidden\n viewBox=\"0 0 27 27\"\n className={cx('size-6', {\n 'stroke-text-disabled': minusDisabled,\n 'stroke-primary': !minusDisabled,\n })}\n style={{ stroke: minusDisabled ? iconColorDisabled : iconColor }}\n >\n <g fill=\"none\" fillRule=\"evenodd\" transform=\"translate(1 .68)\">\n <ellipse cx=\"12.5\" cy=\"12.724\" rx=\"12.5\" ry=\"12.724\" />\n <path strokeLinecap=\"square\" d=\"M6.5 12.724h12.042M12.5 18.574\" />\n </g>\n </svg>\n </button>\n <span className=\"block w-10 px-1 text-center tabular-nums\">\n <span className=\"sr-only\" aria-live=\"polite\">\n {valueLabel || value}\n </span>\n <span aria-hidden>{value}</span>\n </span>\n <button\n type=\"button\"\n className=\"btn btn-primary-text btn-lg size-6 rounded-full\"\n onClick={onPlusClick}\n disabled={plusDisabled}\n aria-label={plusLabel || t('plusLabel')}\n data-testid={plusTestId}\n >\n <span className=\"sr-only\">{plusLabel || t('plusLabel')}</span>\n <svg\n role=\"img\"\n aria-hidden\n viewBox=\"0 0 27 27\"\n className={cx('size-6', {\n 'stroke-text-disabled': plusDisabled,\n 'stroke-primary': !plusDisabled,\n })}\n style={{ stroke: plusDisabled ? iconColorDisabled : iconColor }}\n >\n <g fill=\"none\" fillRule=\"evenodd\" transform=\"translate(1 .68)\">\n <ellipse cx=\"12.5\" cy=\"12.724\" rx=\"12.5\" ry=\"12.724\" />\n <path strokeLinecap=\"square\" d=\"M6.5 12.724h12.042M12.5 18.832V6.574\" />\n </g>\n </svg>\n </button>\n </div>\n );\n};\n\nexport default Stepper;\n","export * from './stepper';\n","export * from './lib';\n","import { Tooltip } from '@dx-ui/osc-tooltip';\nimport { Stepper } from '@dx-ui/osc-stepper';\nimport { FormSelect } from '@dx-ui/osc-form';\nimport * as React from 'react';\nimport type { RegisterOptions } from 'react-hook-form';\nimport { useFormContext, useFieldArray } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport Icon from '@dx-ui/osc-icon';\nimport { logError } from '@dx-ui/framework-logger';\n\ntype RoomsRoom = {\n adultAge?: number;\n isAdultsOnly?: boolean;\n /**\n * if ageRange is provided, Age based pricing is in effect\n * */\n ageRange?: {\n min: number;\n max: number;\n };\n /**\n * if ages are required to get the best rates, making `agesRequired` will show the age select elements for each child entered.\n */\n agesRequired?: boolean;\n /**\n * disables the add room button if number of rooms is greater than this value\n */\n maxRooms?: number;\n /**\n * the maximum number of collective occupants allowed per room\n * be it adults or children with a min of one adult\n */\n maxOccupants?: number;\n index: number;\n onRemoveRoom: (val: number) => void;\n};\n\nconst RoomsRoom: React.FC<React.PropsWithChildren<RoomsRoom>> = ({\n adultAge: adultAgeProp,\n isAdultsOnly,\n agesRequired,\n ageRange,\n index,\n onRemoveRoom,\n maxOccupants = 8,\n}) => {\n const [t] = useTranslation('osc-rooms');\n const { setValue, watch, control, trigger } = useFormContext();\n const useAgeBasedPricing = Boolean(ageRange);\n const adultsId = `rooms.${index}.adults` as const;\n const childrenId = `rooms.${index}.children` as const;\n const adultAge = adultAgeProp || ageRange?.max;\n const adultAges = adultAge ? t('occupancy.adultAges', { adultAge }) : '';\n const { fields, remove, append } = useFieldArray({\n control,\n name: childrenId,\n });\n const roomsValue = watch('rooms');\n const numRooms = roomsValue?.length || 0;\n const adults = watch(adultsId);\n const children = watch(childrenId) || [];\n const roomNum = index + 1;\n const roomTestId = `rooms-room-${roomNum}`;\n\n React.useEffect(() => {\n const getChildAgesFieldsAndValidate = async () => {\n if (fields.length > 0 && agesRequired) {\n // get all the children age field names\n const names = fields.map((field, i) => `${childrenId}.${i}.age` as const);\n // validate immediately\n await trigger(names);\n }\n };\n getChildAgesFieldsAndValidate().catch((error) =>\n logError('OSC_ROOMS', error, 'failed to validate children ages')\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fields, agesRequired]);\n return (\n <div data-testid={roomTestId}>\n <div className=\"sr-only\" aria-live=\"polite\">\n <span>{`${numRooms > 1 ? `${t('occupancy.roomHas', { num: roomNum })} ` : ''} ${t(\n 'occupancy.adult',\n {\n count: adults,\n }\n )}, ${t('occupancy.child', { count: children.length })}`}</span>\n </div>\n <div className=\"flex items-center space-x-2\">\n <div className=\"flex w-1/3 items-center\">\n {numRooms > 1 && (\n <button\n data-testid={`${roomTestId}-remove`}\n type=\"button\"\n className=\"stroke-primary hover:stroke-primary-alt mr-2 appearance-none rounded-full hover:duration-100\"\n onClick={() => onRemoveRoom(index)}\n >\n <span className=\"sr-only\">{t('occupancy.removeRoom', { num: roomNum })}</span>\n <svg role=\"img\" aria-hidden viewBox=\"0 0 27 27\" className=\"stroke-primary size-6\">\n <g fill=\"none\" fillRule=\"evenodd\" transform=\"translate(-4.4 -4.4)\">\n <ellipse\n transform=\"rotate(45 17.836 17.836)\"\n cx=\"17.836\"\n cy=\"17.836\"\n rx=\"12.5\"\n ry=\"12.724\"\n />\n <path d=\"M13.585 13.572l8.515 8.515m-8.592.047l8.668-8.668\" />\n </g>\n </svg>\n </button>\n )}\n <span>{t('occupancy.room', { num: roomNum })}</span>\n </div>\n <div className=\"w-1/3\">\n <Stepper\n onMinusClick={() => {\n setValue(adultsId, adults - 1, { shouldDirty: true, shouldValidate: true });\n }}\n onPlusClick={() => {\n setValue(adultsId, adults + 1, { shouldDirty: true, shouldValidate: true });\n }}\n min={1}\n max={maxOccupants - children.length}\n value={adults}\n valueLabel={t('occupancy.adult', { count: adults })}\n plusLabel={t('occupancy.addAdult', { num: roomNum, adultAges })}\n minusLabel={t('occupancy.removeAdult', { num: roomNum, adultAges })}\n />\n </div>\n <div className=\"w-1/3\">\n <Stepper\n onMinusClick={() => {\n remove(fields.length - 1);\n }}\n onPlusClick={() => {\n // NHCSEARCH-4849 - ShouldFocus false keeps focus on stepper button\n append({ age: null }, { shouldFocus: false });\n }}\n min={0}\n max={isAdultsOnly ? 0 : maxOccupants - adults}\n value={children.length}\n valueLabel={t('occupancy.child', { count: children.length })}\n plusLabel={t('occupancy.addChild', { num: roomNum })}\n minusLabel={t('occupancy.removeChild', { num: roomNum })}\n />\n </div>\n </div>\n\n {useAgeBasedPricing && children.length > 0 && (\n <div className=\"pt-2\" data-testid=\"rooms-age-based\">\n <h2 className=\"flex items-center space-x-2 pb-2 text-sm font-bold\">\n <span>{t('occupancy.agesLabel')}</span>\n <Tooltip message={t('occupancy.ageBasedHelp')} className=\"btn btn-primary-text btn-lg\">\n <Icon name=\"info-circle\" variant=\"regular\" size=\"md\" />\n </Tooltip>\n </h2>\n <div className=\"flex max-w-44 flex-col space-y-2 pl-4\">\n {fields.map((field, i) => {\n const fieldName = `${childrenId}.${i}.age` as const;\n const ageId = i + 1;\n\n const registerOptions: RegisterOptions = {\n onChange: async () => {\n await trigger(fieldName);\n },\n };\n if (agesRequired) {\n registerOptions.required = t('occupancy.ageBasedError');\n }\n return (\n <FormSelect\n key={field.id}\n data-testid={`${roomTestId}-childage-${ageId}`}\n name={fieldName}\n labelClassName=\"label-inline !self-auto\"\n containerClassName=\"text-right\"\n label={t('occupancy.kidLabel', { num: ageId })}\n registerOptions={{\n valueAsNumber: true,\n ...registerOptions,\n }}\n >\n <option disabled value=\"\" />\n {Array.from({ length: ageRange!.max - ageRange!.min }).map((__, j) => {\n const value = j + ageRange!.min;\n return (\n <option key={value === 0 ? t('occupancy.underOne') : value} value={value}>\n {value === 0 ? t('occupancy.underOne') : value}\n </option>\n );\n })}\n </FormSelect>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport { RoomsRoom };\nexport default RoomsRoom;\n","import * as React from 'react';\nimport { useFieldArray, useWatch } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport type { RoomsRoom as RoomsRoomType } from './rooms.room';\nimport { RoomsRoom } from './rooms.room';\nimport type { ShopFormRoom } from './types';\n\nexport type Rooms = Pick<\n RoomsRoomType,\n 'ageRange' | 'agesRequired' | 'maxRooms' | 'maxOccupants' | 'isAdultsOnly' | 'adultAge'\n> & {\n /**\n * Required string for message value displayed when the max-occupancy of a room is reached.<br><br>\n * Recommended values from 'osc-shop-form' resource bundle: <br>\n * <code> const { t } = useTranslation('osc-rooms'); </code><br>\n * • base: <b>t('occupancy.occupancyLimitMessage') </b> <br>\n * -returns: \"You've reached the maximum number of guests for a single room. Please add another room.\"<br>\n * • find nearby: <b>t('occupancy.findNearbyOccupancyLimitMessage') </b> <br>\n * -returns: \"You've reached the maximum number of guests for a single room. Please add another room or adjust your search to find nearby hotels with larger room capacities.\"\n * <br><br>\n */\n occupancyLimitMessage: React.ReactNode;\n};\n\nexport const newRoom = Object.freeze({ adults: 1, children: [] });\nexport const Rooms: React.FC<React.PropsWithChildren<Rooms>> = ({\n adultAge: adultAgeProp,\n agesRequired,\n ageRange,\n maxRooms = 9,\n maxOccupants = 8,\n occupancyLimitMessage,\n isAdultsOnly,\n}) => {\n const adultAge = adultAgeProp || ageRange?.max;\n const [t] = useTranslation('osc-rooms');\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const { fields, append, remove } = useFieldArray({ name: 'rooms' });\n const rooms: ShopFormRoom[] = useWatch({ name: 'rooms' });\n const reachedMaxOccupants =\n occupancyLimitMessage &&\n rooms?.some((room) => room.adults + room.children.length === maxOccupants);\n const canOnlyBookSingleRoom = maxRooms === 1;\n\n const handleRemoveRoom = (val: number) => {\n remove(val);\n if (buttonRef.current) {\n buttonRef.current.focus();\n }\n };\n\n return (\n <>\n <div className=\"w-full\">\n <div className=\"flex\" aria-hidden>\n <span className=\"w-1/3 font-bold ltr:text-left rtl:text-right\">\n {t('occupancy.roomHeader')}\n </span>\n <span className=\"w-1/3 text-center font-bold\">\n {t('occupancy.adultHeader')}\n {adultAge && <span className=\"pl-1 text-sm font-normal\">({adultAge}+)</span>}\n </span>\n <span className=\"w-1/3 text-center font-bold\">{t('occupancy.childHeader')}</span>\n </div>\n </div>\n <div data-osc-product=\"rooms\" className=\"w-full space-y-4 py-3\" data-testid=\"rooms\">\n {fields.map((field, index) => (\n <RoomsRoom\n key={field.id}\n index={index}\n ageRange={ageRange}\n onRemoveRoom={handleRemoveRoom}\n agesRequired={agesRequired}\n maxOccupants={maxOccupants}\n isAdultsOnly={isAdultsOnly}\n adultAge={adultAge}\n />\n ))}\n </div>\n {isAdultsOnly && adultAge ? (\n <p className=\"pb-3 text-xs\">{t('occupancy.adultsOnlyNote', { adultAge })}</p>\n ) : null}\n {reachedMaxOccupants ? (\n <div className=\"flex w-full justify-start pb-3\">\n <p className=\"break-words text-xs\" aria-live=\"assertive\" role=\"alert\">\n {occupancyLimitMessage}\n </p>\n </div>\n ) : null}\n <div className=\"border-border space-y-2 border-t border-solid py-2\">\n {canOnlyBookSingleRoom ? (\n <p className=\"text-xs\">{t('occupancy.singleRoomOnly')}</p>\n ) : (\n <button\n type=\"button\"\n data-testid=\"rooms-add-room\"\n ref={buttonRef}\n className=\"stroke-primary hover:stroke-primary-alt disabled:text-text-disabled disabled:stroke-text-disabled flex appearance-none items-center font-bold hover:duration-100\"\n onClick={() => {\n append({ ...newRoom });\n }}\n disabled={fields.length >= maxRooms}\n >\n <svg role=\"img\" aria-hidden viewBox=\"0 0 27 27\" className=\"size-6 ltr:mr-2 rtl:ml-2\">\n <g fill=\"none\" fillRule=\"evenodd\" transform=\"translate(1 .68)\">\n <ellipse cx=\"12.5\" cy=\"12.724\" rx=\"12.5\" ry=\"12.724\" />\n <path strokeLinecap=\"square\" d=\"M6.5 12.724h12.042M12.5 18.832V6.574\" />\n </g>\n </svg>\n {t('occupancy.addRoom')}\n </button>\n )}\n </div>\n </>\n );\n};\n\nexport default Rooms;\n","import * as React from 'react';\nimport { type FieldValues, FormProvider, useForm } from 'react-hook-form';\nimport type { Dialog } from '@dx-ui/osc-dialog-v2';\nimport { ActionDialog, DialogTitle } from '@dx-ui/osc-dialog-v2';\nimport type { FormDataStructure, FormProps } from '@dx-ui/osc-form';\nimport { useTranslation } from 'next-i18next';\nimport type { Rooms as RoomsType } from './rooms';\nimport { Rooms } from './rooms';\nimport type { ShopFormRoom } from './types';\n\ntype RoomsModal = Pick<FormProps, 'useFormProps'> &\n RoomsType &\n React.ComponentProps<typeof Dialog> & { onSubmit: (data: FieldValues) => void };\n\nconst RoomsModal: React.FC<React.PropsWithChildren<RoomsModal>> = ({\n ageRange,\n agesRequired,\n useFormProps,\n maxRooms,\n occupancyLimitMessage,\n onSubmit,\n isOpen,\n}) => {\n const [t] = useTranslation('osc-rooms');\n const memoizedFormProps = React.useMemo(() => useFormProps, [useFormProps]);\n const confirmButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const methods = useForm<FormDataStructure>({\n mode: 'onTouched',\n criteriaMode: 'all',\n ...memoizedFormProps,\n });\n const { setValue, clearErrors, getValues } = methods;\n const rooms: ShopFormRoom[] = getValues().rooms;\n const isAnyRoomHaveChildrenOccupants = rooms?.some((room) => room?.children?.length);\n\n const removeKids = () => {\n clearErrors();\n rooms?.forEach((_room, index) => {\n setValue(`rooms.${index}.children`, []);\n });\n confirmButtonRef?.current?.focus();\n };\n\n return (\n <FormProvider {...methods}>\n <ActionDialog\n isOpen={isOpen}\n size=\"xl\"\n hasChildrenWithTitle\n data-testid=\"rooms-modal\"\n onCancel={removeKids}\n onConfirm={() => onSubmit?.(getValues())}\n buttonOptions={{\n cancel: {\n label: t('occupancy.ageBasedRemove'),\n disabled: !isAnyRoomHaveChildrenOccupants,\n },\n confirm: { ref: confirmButtonRef },\n }}\n >\n <div className=\"mb-6 mt-3 text-center\">\n <DialogTitle className=\"text-lg font-bold\">{t('occupancy.ageBasedTitle')}</DialogTitle>\n <p>{t('occupancy.ageBasedDescription')}</p>\n </div>\n\n <Rooms\n ageRange={ageRange}\n maxRooms={maxRooms}\n agesRequired={agesRequired}\n occupancyLimitMessage={occupancyLimitMessage}\n />\n </ActionDialog>\n </FormProvider>\n );\n};\n\nexport { RoomsModal };\nexport default RoomsModal;\n","export * from './lib/rooms';\nexport * from './lib/rooms.modal';\nexport * from './lib/rooms.room';\nexport * from './lib/types';\n","import * as React from 'react';\nimport { useFieldArray, useWatch } from 'react-hook-form';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport { Link } from '@dx-ui/osc-link';\nimport type { FormDefaultValues } from './shop-form';\nimport { useShopFormContext } from './use-shop-form-context';\nimport { useTranslation } from 'next-i18next';\nimport type { Person, BrandCode } from '@dx-ui/framework-uri-builder';\nimport { searchUriBuilder } from '@dx-ui/framework-uri-builder';\nimport SearchButton from './shop-form.button';\nimport omit from 'lodash/omit';\nimport type { Rooms as RoomsType, ShopFormRoom } from '@dx-ui/osc-rooms';\nimport { Rooms, newRoom } from '@dx-ui/osc-rooms';\nimport cloneDeep from 'lodash/cloneDeep';\n\ntype ShopFormRooms = {\n 'data-testid'?: string;\n /**\n * if `true` the group link will not be shown\n */\n hideGroupLink?: boolean;\n open?: boolean;\n tenPlusLinkProps?: React.ComponentProps<typeof Link>;\n /** Callback invoked on confirm/done */\n onConfirm?: () => void;\n /** Callback invoked on modal open */\n onOpen?: () => void;\n /** Callback invoked on cancel/dismiss */\n onDismiss?: () => void;\n} & RoomsType;\n\n/**\n * Use the `<ShopFormRooms/>` component inside of the ShopForm in order to provide the OSC experience\n * for noting the number of rooms and their occupancy.\n */\nexport const ShopFormRooms: React.FC<React.PropsWithChildren<ShopFormRooms>> = ({\n hideGroupLink,\n onConfirm,\n open: openProp,\n tenPlusLinkProps,\n onOpen,\n onDismiss,\n ...rest\n}) => {\n const { t } = useTranslation(['osc-rooms', 'osc-shop-form']);\n const [open, setOpen] = React.useState(false);\n const {\n formState: { errors },\n getValues,\n reset,\n } = useShopFormContext();\n const { append } = useFieldArray({ name: 'rooms' });\n const hasError = Boolean(errors.rooms);\n const roomsValue = useWatch({ name: 'rooms' });\n const numRooms = roomsValue?.length || 0;\n\n const numGuests = (roomsValue || []).reduce(\n (count: number, { adults, children }: { adults: number; children: Person[] }) =>\n count + adults + children.length,\n 0\n );\n const [initialValues, setInitialValues] = React.useState<ShopFormRoom[]>([\n {\n adults: 1,\n children: [],\n },\n ]);\n\n React.useEffect(() => {\n if (roomsValue && roomsValue.length === 0) {\n append({ ...newRoom });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [roomsValue]);\n\n React.useEffect(() => {\n if (openProp) {\n setInitialValues(cloneDeep(roomsValue));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [openProp]);\n\n const openModal = () => {\n setInitialValues(cloneDeep(roomsValue));\n setOpen(true);\n onOpen?.();\n };\n\n const confirmAndCloseModal = () => {\n setOpen(false);\n onConfirm?.();\n };\n const dismissAndResetToOriginalFormRooms = () => {\n if (initialValues) {\n reset({ ...getValues(), rooms: [...initialValues] }, { keepDefaultValues: true });\n }\n setOpen(false);\n onDismiss?.();\n };\n\n //grab these values from shop form context in order for use in uri generator\n const brandCode = useWatch<FormDefaultValues, 'brandCode'>({ name: 'brandCode' });\n const arrivalDate = useWatch<FormDefaultValues, 'dates.arrivalDate'>({\n name: 'dates.arrivalDate',\n });\n const departureDate = useWatch<FormDefaultValues, 'dates.departureDate'>({\n name: 'dates.departureDate',\n });\n const placeId = useWatch<FormDefaultValues, 'placeId'>({ name: 'placeId' });\n const query = useWatch<FormDefaultValues, 'query'>({ name: 'query' });\n const attendeeCount = useWatch<FormDefaultValues, 'attendee_count'>({ name: 'attendee_count' });\n\n const tenPlusUrl = searchUriBuilder({\n brandCode: brandCode as keyof BrandCode,\n locale: 'en',\n urlParams: {\n dates: {\n arrivalDate,\n departureDate,\n },\n numAttendees: attendeeCount,\n placeId,\n query,\n numRooms: 10,\n },\n relative: false,\n });\n\n const label = `${t('occupancy.numRooms', { count: numRooms })}, ${t('occupancy.numGuests', {\n count: numGuests,\n })}`;\n const ariaLabel = `${t('occupancy.numRooms', { count: numRooms })}, ${t('occupancy.numGuests', {\n count: numGuests,\n })}. ${t('occupancy.buttonLabel')} ${\n hasError ? t('osc-shop-form:errorHeader', { count: 1 }) : ''\n }`;\n\n return (\n <ActionDialog\n className=\"h-auto\"\n title={t('occupancy.title')}\n isOpen={openProp || open}\n onDismiss={dismissAndResetToOriginalFormRooms}\n onCancel={dismissAndResetToOriginalFormRooms}\n onConfirm={confirmAndCloseModal}\n size=\"md\"\n buttonOptions={{\n confirm: {\n disabled: hasError,\n },\n }}\n contentDataAttribute=\"data-osc-shop-form-rooms\"\n dialogTrigger={\n <SearchButton\n product=\"search-rooms-button\"\n onClick={openModal}\n hasError={hasError}\n label={label}\n aria-label={ariaLabel}\n data-testid=\"search-rooms-button\"\n />\n }\n >\n <Rooms {...omit(rest, 'data-testid')} />\n {hideGroupLink ? null : (\n <div className=\"border-border border-t border-solid pb-2.5 pt-2\">\n <Link\n url={tenPlusUrl}\n className=\"text-primary hover:text-primary-alt mb-2 text-sm\"\n {...tenPlusLinkProps}\n >\n {t('occupancy.bookEvent')}\n </Link>\n </div>\n )}\n </ActionDialog>\n );\n};\n\nexport default ShopFormRooms;\n","import type * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport { useTranslation } from 'next-i18next';\nimport cx from 'classnames';\nimport { useFormContext, useWatch, type FieldError } from 'react-hook-form';\n\nimport { FormError } from '@dx-ui/osc-form';\nimport { InfoPopup } from '@dx-ui/osc-info-popup';\n\nconst GROUP_LIMIT = 10;\n\nconst InputGroup: React.FC<{\n id: string;\n label?: string;\n info?: React.ReactNode;\n isCentered?: boolean;\n error: Partial<FieldError> | undefined;\n children: React.ReactNode;\n}> = ({ id, label, info, error, isCentered, children }) => {\n return (\n <div className=\"flex-1\">\n <div\n className={cx('label flex flex-1 items-start md:grow-0', {\n 'items-start': !isCentered,\n 'sm:items-center': isCentered,\n 'text-danger': error,\n 'flex-col': !!label,\n 'flex-row gap-2': !label,\n })}\n >\n <div className=\"flex items-center\">\n {label ? (\n <label\n data-osc-product=\"shop-input-label\"\n htmlFor={id}\n className=\"whitespace-nowrap pr-1\"\n >\n {label}\n </label>\n ) : null}\n {info ? <InfoPopup>{info}</InfoPopup> : null}\n </div>\n {children}\n </div>\n </div>\n );\n};\n\nexport type ShopFormGroupProps = {\n showNumAttendees?: boolean;\n};\nexport const ShopFormGroup = (props: ShopFormGroupProps) => {\n const { t } = useTranslation('osc-rooms');\n const {\n register,\n setValue,\n formState: { errors },\n trigger,\n setError,\n clearErrors,\n } = useFormContext();\n const numRooms = useWatch({ name: 'numRooms' });\n const numAttendees = useWatch({ name: 'numAttendees' });\n const shouldFocusRoomsInput = useWatch({ name: 'shouldFocusRoomsInput' });\n const roomsInputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (shouldFocusRoomsInput && roomsInputRef.current) roomsInputRef.current.focus();\n }, [shouldFocusRoomsInput]);\n\n const getNumRoomsAttendeesValidation = (numAttendees: string, numRooms: string) => {\n const isNumRoomsAndNumAttendeesFalsey =\n ((parseInt(numAttendees) === 0 || isNaN(parseInt(numAttendees))) &&\n parseInt(numRooms) === 0) ||\n isNaN(parseInt(numRooms));\n if (isNumRoomsAndNumAttendeesFalsey) {\n setError('shop-form-numRooms', {\n type: 'manual',\n message: t('roomsAttendees.numRoomsAttendeeValueError'),\n });\n setError('shop-form-numAttendees', {\n type: 'manual',\n message: t('roomsAttendees.numRoomsAttendeeValueError'),\n });\n return t('roomsAttendees.numRoomsAttendeeValueError');\n }\n const isFormInErrorStateAndNumAttendeesOrNumRoomsGreaterThanZero =\n (errors?.numAttendees || errors?.numRooms) &&\n (!!parseInt(numAttendees) || !!parseInt(numRooms));\n\n if (isFormInErrorStateAndNumAttendeesOrNumRoomsGreaterThanZero) {\n clearErrors(['numRooms', 'numAttendees', 'shop-form-numRooms', 'shop-form-numAttendees']);\n }\n return true;\n };\n\n return (\n <div>\n <div className=\"flex flex-auto flex-col gap-2 sm:flex-row lg:gap-3\">\n <InputGroup\n id=\"shop-form-numRooms\"\n label={t('roomsAttendees.numRooms')}\n error={errors?.numRooms || errors?.numAttendees}\n >\n <input\n id=\"shop-form-numRooms\"\n type=\"number\"\n min={0}\n className={cx('form-input w-full flex-1', {\n 'form-error': errors?.numRooms || errors?.numAttendees,\n })}\n {...register('numRooms', {\n value: GROUP_LIMIT,\n onChange: () => trigger('numRooms'),\n validate: {\n numRoomsValidation: (numRooms) =>\n getNumRoomsAttendeesValidation(numAttendees, numRooms),\n },\n valueAsNumber: true,\n })}\n ref={(e) => {\n register('numRooms').ref(e);\n roomsInputRef.current = e;\n }}\n onFocus={() => {\n if (shouldFocusRoomsInput) setValue('shouldFocusRoomsInput', false);\n }}\n />\n </InputGroup>\n {props.showNumAttendees ? (\n <InputGroup\n id=\"shop-form-numAttendees\"\n error={errors?.numAttendees || errors?.numRooms}\n label={t('roomsAttendees.numAttendees')}\n >\n <input\n id=\"shop-form-numAttendees\"\n type=\"number\"\n className={cx('form-input w-full flex-1', {\n 'form-error': errors?.numAttendees || errors?.numRooms,\n })}\n min={0}\n {...register('numAttendees', {\n onChange: () => trigger('numAttendees'),\n validate: {\n numAttendeesValidation: (numAttendees) =>\n getNumRoomsAttendeesValidation(numAttendees, numRooms),\n },\n })}\n />\n </InputGroup>\n ) : null}\n </div>\n <FormError error={errors?.numRooms || errors?.numAttendees} className=\" lg:absolute\" />\n </div>\n );\n};\n","import * as React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport SearchButton from './shop-form.button';\nimport { SpecialRates } from '@dx-ui/osc-special-rates';\nimport { useShopFormContext } from './use-shop-form-context';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { useAarpToggle } from './hooks/use-aarp-toggle';\n\n/**\n * Use the `<ShopFormSpecialRates/>` component inside of the ShopForm in order to provide the OSC experience\n * for selecting special rates to enhance the search.\n */\nexport type ShopFormSpecialRatesProps = {\n /** Option to disable use points checkbox */\n shouldDisablePoints?: boolean;\n /** Option to enable when used outside of the shop form */\n isIndependent?: boolean;\n /** Option to control the modal open state */\n open?: boolean;\n /** Callback invoked on confirm/done */\n onConfirm?: () => void;\n /** Callback invoked on modal open */\n onOpen?: () => void;\n /** Callback invoked on cancel/dismiss */\n onDismiss?: () => void;\n /** Make smbRates SMB Context Aware */\n shouldEnableSMBContextAwareRates?: boolean;\n};\n\nexport const ShopFormSpecialRates: React.FC<React.PropsWithChildren<ShopFormSpecialRatesProps>> = ({\n shouldEnableSMBContextAwareRates,\n isIndependent,\n open: openProp,\n onConfirm,\n onOpen,\n onDismiss,\n shouldDisablePoints,\n}) => {\n const [t] = useTranslation(['osc-shop-form', 'osc-special-rates']);\n const [open, setOpen] = React.useState(false);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const {\n formState: { errors },\n reset,\n getValues,\n } = useShopFormContext();\n const { disableAARPSpecialRates } = useAarpToggle();\n const hasError = !!errors.specialRates;\n const ratesValue = useWatch({ name: 'specialRates' });\n const isOfferIdSelected = useWatch({ name: 'specialRates.useOfferId' });\n const isPndSelected = useWatch({ name: 'specialRates.usePnd' });\n const isSMBSelected = useWatch({ name: 'specialRates.smbRate' });\n const isSMBMember = useWatch({ name: 'hhonors.isSMBMember' });\n const offerId = useWatch({ name: 'specialRates.offerId' });\n const pnd = useWatch({ name: 'specialRates.pnd' });\n const corporateCode = useWatch({ name: 'specialRates.corporateCode' });\n const [initialValues, setInitialValues] = React.useState<SpecialRates>();\n const selectedRates = Object.keys(ratesValue || {}).reduce((count, key) => {\n const excludedKeys = [\n 'pnd',\n 'usePnd',\n 'offerId',\n 'useOfferId',\n 'requestedRatesOnly',\n 'searchedRatePlanDescription',\n 'travelAgentId',\n ];\n if (\n (!excludedKeys.includes(key) && Boolean(ratesValue[key as keyof typeof ratesValue])) ||\n (key === 'usePnd' && Boolean(ratesValue[key]) && ratesValue?.pnd?.name) ||\n (key === 'useOfferId' && Boolean(ratesValue[key]) && ratesValue?.offerId?.name)\n ) {\n return count + 1;\n }\n return count;\n }, 0);\n\n const openModal = () => {\n setInitialValues(cloneDeep(ratesValue));\n setOpen(true);\n onOpen?.();\n };\n\n const confirmAndCloseModal = () => {\n setOpen(false);\n onConfirm?.();\n };\n\n const resetRatesToOriginalFormRates = () => {\n if (initialValues) {\n reset({ ...getValues(), specialRates: { ...initialValues } }, { keepDefaultValues: true });\n }\n onDismiss?.();\n setOpen(false);\n };\n\n React.useEffect(() => {\n if (isPndSelected && !pnd?.name) {\n reset({ ...getValues(), specialRates: { ...getValues().specialRates, usePnd: false } });\n }\n if (isOfferIdSelected && !offerId?.name) {\n reset({ ...getValues(), specialRates: { ...getValues().specialRates, useOfferId: false } });\n }\n if (isSMBSelected && !isSMBMember) {\n reset({ ...getValues(), specialRates: { ...getValues().specialRates, smbRate: false } });\n }\n if (isSMBSelected && corporateCode) {\n reset({ ...getValues(), specialRates: { ...getValues().specialRates, corporateCode: '' } });\n }\n }, [\n corporateCode,\n getValues,\n isOfferIdSelected,\n isPndSelected,\n isSMBMember,\n isSMBSelected,\n offerId?.name,\n pnd?.name,\n reset,\n ]);\n\n return (\n <ActionDialog\n className=\"h-auto\"\n title={t('osc-special-rates:header')}\n isOpen={openProp || open}\n onDismiss={resetRatesToOriginalFormRates}\n onCancel={resetRatesToOriginalFormRates}\n onConfirm={confirmAndCloseModal}\n size=\"xl\"\n buttonOptions={{\n confirm: {\n disabled: !!isIndependent && hasError,\n },\n }}\n contentDataAttribute=\"data-osc-shop-form-special-rates\"\n dialogTrigger={\n <SearchButton\n product=\"search-rates-button\"\n ref={buttonRef}\n onClick={openModal}\n hasError={hasError}\n info={selectedRates === 0 ? null : selectedRates + ''}\n label={t('osc-special-rates:header')}\n aria-label={`${t('osc-special-rates:buttonLabel')} ${\n errors.specialRates\n ? t('osc-shop-form:errorHeader', { count: 1 })\n : selectedRates > 0\n ? t('osc-special-rates:buttonLabelCount', { count: selectedRates })\n : ''\n }`}\n data-testid=\"search-rates-button\"\n />\n }\n >\n <SpecialRates\n shouldEnableSMBContextAwareRates={shouldEnableSMBContextAwareRates}\n shouldDisablePoints={shouldDisablePoints}\n shouldDisableAARP={disableAARPSpecialRates}\n />\n </ActionDialog>\n );\n};\n","import * as React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { useTranslation } from 'next-i18next';\nimport SearchButton from './shop-form.button';\nimport { ActionDialog } from '@dx-ui/osc-dialog-v2';\nimport { Stepper } from '@dx-ui/osc-stepper';\nimport type { FormDataValues } from '..';\nimport { addDays, subDays } from 'date-fns';\nimport { useShopFormContext } from './use-shop-form-context';\n\ntype ShopFormNightsProps = {\n min?: number;\n max?: number;\n};\n\n/**\n * Use the `<ShopFormNights/>` component inside of the ShopForm in order to provide the OSC experience\n * for selecting the number of nights to enhance the search.\n */\nconst ShopFormNights: React.FC<React.PropsWithChildren<ShopFormNightsProps>> = ({\n min = 0,\n max = 30,\n}) => {\n const [t] = useTranslation('osc-rooms');\n const [open, setOpen] = React.useState(false);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const {\n formState: { errors },\n setValue,\n getValues,\n reset,\n } = useShopFormContext();\n const numNights = useWatch<FormDataValues, 'numNights'>({ name: 'numNights' });\n const departureDate = useWatch<FormDataValues, 'dates.departureDate'>({\n name: 'dates.departureDate',\n });\n const [initialNumNights, setInitialNumNights] = React.useState<FormDataValues['numNights']>();\n const [initialDepartureDate, setInitialDepartureDate] =\n React.useState<FormDataValues['dates']['departureDate']>();\n const openModal = () => {\n setInitialNumNights(numNights);\n setInitialDepartureDate(departureDate);\n setOpen(true);\n };\n\n const confirmAndCloseModal = () => {\n setOpen(false);\n };\n const dismissModal = () => {\n setOpen(false);\n if (initialNumNights && initialDepartureDate) {\n const formData = getValues();\n reset(\n {\n ...formData,\n numNights: initialNumNights,\n dates: { ...formData.dates, departureDate: initialDepartureDate },\n },\n { keepDefaultValues: true }\n );\n }\n };\n\n if (numNights === null || !departureDate) {\n return null;\n }\n\n const label =\n numNights === 0\n ? t('nights.dayCount', { count: 1 })\n : t('nights.nightsCount', { count: numNights });\n const dialogTitle = t('nights.howManyNights');\n\n return (\n <ActionDialog\n className=\"h-auto\"\n title={dialogTitle}\n isOpen={open}\n onDismiss={dismissModal}\n onCancel={dismissModal}\n onConfirm={confirmAndCloseModal}\n size=\"sm\"\n dialogTrigger={\n <SearchButton\n product=\"search-nights-button\"\n ref={buttonRef}\n onClick={openModal}\n hasError={Boolean(errors.numNights)}\n label={label}\n aria-label={label}\n data-testid=\"search-nights-button\"\n />\n }\n >\n <Stepper\n onMinusClick={() => {\n setValue('numNights', numNights - 1, { shouldDirty: true });\n setValue('dates.departureDate', subDays(departureDate, 1), {\n shouldDirty: true,\n });\n }}\n onPlusClick={() => {\n setValue('numNights', numNights + 1, { shouldDirty: true });\n setValue('dates.departureDate', addDays(departureDate, 1), {\n shouldDirty: true,\n });\n }}\n min={min}\n max={max}\n value={numNights}\n valueLabel={label}\n plusLabel={t('nights.addNight')}\n plusTestId=\"search-add-night\"\n minusLabel={t('nights.removeNight')}\n minusTestId=\"search-remove-night\"\n className=\"pb-2.5\"\n />\n </ActionDialog>\n );\n};\n\nexport { ShopFormNights };\nexport default ShopFormNights;\n","export * from './lib/shop-form';\nexport * from './lib/shop-form.provider';\nexport * from './lib/shop-form.utils';\nexport * from './lib/shop-form.location';\nexport * from './lib/shop-form.dates';\nexport * from './lib/shop-form.info-container';\nexport * from './lib/shop-form.rooms';\nexport * from './lib/shop-form.group';\nexport * from './lib/shop-form.special-rates';\nexport * from './lib/shop-form.summary';\nexport * from './lib/shop-form.nights';\nexport * from './lib/shop-form.constants';\nexport * from './lib/use-shop-form-context';\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const GetSpeedBumpFeatureConfigsDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs($names: [String!]!) {\n featureConfigs(names: $names) {\n name\n config\n conditions\n }\n}`,\n originalOpName: 'getSpeedBumpFeatureConfigs',\n};\nexport function useGetSpeedBumpFeatureConfigsQuery<\n TData = Types.GetSpeedBumpFeatureConfigsQuery,\n TError = DXError\n>(\n variables: Types.GetSpeedBumpFeatureConfigsQueryVariables,\n options?: Omit<UseQueryOptions<Types.GetSpeedBumpFeatureConfigsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GetSpeedBumpFeatureConfigsQuery, TError, TData>({\n queryKey: [GetSpeedBumpFeatureConfigsDocument, variables],\n ...options,\n });\n}\nexport function serverSideGetSpeedBumpFeatureConfigsQuery(\n queryClient: QueryClient,\n variables: Types.GetSpeedBumpFeatureConfigsQueryVariables,\n options?: FetchQueryOptions<Types.GetSpeedBumpFeatureConfigsQuery>\n) {\n return queryClient.fetchQuery<Types.GetSpeedBumpFeatureConfigsQuery>({\n queryKey: [GetSpeedBumpFeatureConfigsDocument, variables],\n ...options,\n });\n}\n","import type { QueryClient } from '@tanstack/react-query';\nimport {\n serverSideGetSpeedBumpFeatureConfigsQuery,\n useGetSpeedBumpFeatureConfigsQuery,\n} from '../gql/queries';\nimport type { OneLinkConfig } from '@dx-ui/framework-i18n';\nimport { CDN_STALE_TIME } from '@dx-ui/framework-react-query';\n\nconst TRANSLATE_RULES_CONFIG_NAME = 'rule-ui-translate-urls';\nconst ONELINK_CONFIG_NAME = 'config-ui-translate-onelink';\n\nexport const names = [TRANSLATE_RULES_CONFIG_NAME, ONELINK_CONFIG_NAME];\n\nexport function useTranslationsConfig({ isEnabled }: { isEnabled?: boolean } = {}) {\n const { data } = useGetSpeedBumpFeatureConfigsQuery(\n {\n names,\n },\n {\n enabled: isEnabled,\n staleTime: CDN_STALE_TIME,\n }\n );\n const translateRules =\n data?.featureConfigs?.find((config) => config.name === TRANSLATE_RULES_CONFIG_NAME) || null;\n const oneLinkConfig =\n (data?.featureConfigs?.find((config) => config.name === ONELINK_CONFIG_NAME)\n ?.config as OneLinkConfig) || null;\n\n return { oneLinkConfig, translateRules };\n}\n\nexport const getSpeedBumpFeatureConfig = (queryClient: QueryClient) => {\n return serverSideGetSpeedBumpFeatureConfigsQuery(queryClient, { names });\n};\n","import * as React from 'react';\nimport type { Rule } from '@dx-ui/utilities-url-config';\nimport { RuleEngine, getUrlConfig } from '@dx-ui/utilities-url-config';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { useTranslationsConfig } from './hooks/useFeatureConfigs';\nimport { getOneLinkProps } from '@dx-ui/framework-i18n';\n\ntype SpeedbumpAttributes = {\n isEnabled: boolean;\n isVisible: boolean;\n onShow: (e: React.SyntheticEvent<HTMLAnchorElement>) => boolean;\n onHide: () => void;\n onContinue: () => void;\n};\n\ntype UseSpeedbumpProps = {\n /** Used to determine whether to show or hide the speedbump.\n * Also used to determine the destination language code to use in the target url\n */\n language: string;\n appName: string;\n};\n\n/**\n * Can be used to act as an anchor event target when using the useSpeedbump hook without a link\n */\nexport function makeAnchorEventTarget(absoluteUrl: string) {\n const url = new URL(absoluteUrl);\n return {\n preventDefault: () => undefined,\n stopPropagation: () => undefined,\n currentTarget: {\n href: absoluteUrl,\n origin: url.origin,\n pathname: url.pathname,\n } as unknown as HTMLAnchorElement,\n target: {\n href: absoluteUrl,\n } as unknown as HTMLAnchorElement,\n } as unknown as React.ChangeEvent<HTMLAnchorElement>;\n}\n\nexport const DocUseSpeedbump: React.FC<React.PropsWithChildren<UseSpeedbumpProps>> = () => null;\n\nfunction transformUrl({\n href,\n pathname,\n language,\n}: {\n href: string;\n pathname: string;\n language: string;\n}) {\n if (pathname.startsWith('/zh/') && (language === 'zh-hans' || language === 'zh-hant')) {\n return href.replace('/zh/', `/${language}/`);\n }\n return href;\n}\n/**\n * This hook provides the ability to replace in language urls with english only urls.\n * It only works for HTMLAnchorElement links and will not work with other elements as\n * it will look for a `href` attribute on the target or parent element.\n *\n * It will replace the in-language code with `en` and open the location on the window.\n */\nconst useSpeedbump = (\n language: string,\n appName?: string,\n bypassOneLink?: boolean\n): SpeedbumpAttributes => {\n const DEFAULT_LANGUAGE = 'en';\n const { oneLinkConfig, translateRules } = useTranslationsConfig();\n const url = isBrowser ? window.location.href : '';\n const oneLinkProps = getOneLinkProps(language, appName || '', url, oneLinkConfig);\n const translateRuleEngine = React.useMemo(\n () => (translateRules ? new RuleEngine(translateRules as Rule) : null),\n [translateRules]\n );\n const [isEnabled] = React.useState(language !== DEFAULT_LANGUAGE);\n const [targetLanguage] = React.useState(language);\n const [isVisible, setIsVisible] = React.useState<boolean>(false);\n const [eventTarget, setEventTarget] = React.useState<HTMLAnchorElement>();\n const onShow = (e: React.SyntheticEvent<HTMLAnchorElement>) => {\n const { target } = e as React.ChangeEvent<HTMLAnchorElement>;\n setEventTarget(target);\n const { href, origin, pathname } =\n e.currentTarget || (target.parentElement as HTMLAnchorElement);\n if (!translateRuleEngine) {\n return false;\n }\n const url = transformUrl({ href, pathname, language });\n if (href !== url) {\n e.currentTarget.href = url;\n }\n const urlConfig = getUrlConfig(translateRuleEngine, url, origin, language);\n const shouldShowSpeedbump = (!oneLinkProps.isOneLink || bypassOneLink) && urlConfig.speedbump;\n if (isEnabled && shouldShowSpeedbump) {\n e.preventDefault();\n e.stopPropagation();\n setIsVisible(true);\n return true;\n }\n return false;\n };\n const onHide = () => {\n setIsVisible(false);\n };\n const onContinue = () => {\n setIsVisible(false);\n if (isBrowser && eventTarget) {\n // hack, will need to revisit. Looks for current element or parent to find the href\n const href =\n eventTarget.href ||\n (eventTarget.parentElement as HTMLAnchorElement).href ||\n (eventTarget.parentElement?.parentElement as HTMLAnchorElement).href;\n const enUri = href?.replace(`/${targetLanguage}/`, `/${DEFAULT_LANGUAGE}/`);\n enUri &&\n (eventTarget.target === '_blank' ||\n (eventTarget.parentElement as HTMLAnchorElement)?.target === '_blank' ||\n (eventTarget.parentElement?.parentElement as HTMLAnchorElement)?.target === '_blank')\n ? window.open(enUri, eventTarget.target)\n : (window.location.href = enUri);\n }\n };\n return {\n isEnabled,\n isVisible,\n onShow,\n onHide,\n onContinue,\n };\n};\n\nexport { useSpeedbump };\nexport default useSpeedbump;\n","import type * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { ActionDialog, DialogTitle } from '@dx-ui/osc-dialog-v2';\nimport set from 'lodash/set';\nimport FocusLock from 'react-focus-lock';\n\nexport type SpeedbumpProps = {\n /**\n * Configures speed bump content\n */\n speedbumpOptions?: {\n title: string;\n message?: string;\n confirmButtonLabel?: string;\n cancelButtonLabel?: string;\n };\n /**\n * displays the speeedbump or not\n */\n isShowing: boolean;\n /**\n * handler to close the speedbump\n */\n onClose: () => void;\n /**\n * handler used to proceed if chosen\n */\n onContinue: (event: React.SyntheticEvent<HTMLButtonElement>) => void;\n};\n\n/**\n * Used to display a speedbump when transitioning to a non translated page\n */\nexport const Speedbump: React.FC<React.PropsWithChildren<SpeedbumpProps>> = ({\n isShowing,\n onClose: onCloseProp,\n onContinue: onContinueProp,\n speedbumpOptions,\n}) => {\n const [t] = useTranslation('osc-speedbump');\n const { title, message, confirmButtonLabel, cancelButtonLabel } = speedbumpOptions ?? {};\n const handleConfirm = (e: React.SyntheticEvent<HTMLButtonElement>) => {\n if (window?.digitalData && window?._satellite) {\n set(window.digitalData, 'click.clickID', 'speedbump_continue');\n window._satellite?.track?.('global_click');\n }\n onContinueProp?.(e);\n };\n const handleCancel = () => {\n if (window?.digitalData && window?._satellite) {\n set(window.digitalData, 'click.clickID', 'speedbump_return');\n window._satellite?.track?.('global_click');\n }\n onCloseProp?.();\n };\n\n const handleDismiss = () => {\n onCloseProp?.();\n };\n const titleOptions = !!(title && message)\n ? { ...{ title } }\n : { ...{ hasChildrenWithTitle: true } };\n\n return (\n <FocusLock as=\"span\" disabled={!isShowing}>\n <ActionDialog\n buttonOptions={{\n cancel: { label: cancelButtonLabel ?? t('back') },\n confirm: { label: confirmButtonLabel ?? t('continue') },\n }}\n isOpen={isShowing}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n onDismiss={handleDismiss}\n size=\"sm\"\n shouldStackButtons={true}\n {...titleOptions}\n >\n <div data-testid=\"speedbumpDialog\" className=\"mt-3\">\n {message ? (\n message\n ) : (\n <DialogTitle className=\"mb-4 text-center text-xl font-bold\">\n {title ?? t('title')}\n </DialogTitle>\n )}\n </div>\n </ActionDialog>\n </FocusLock>\n );\n};\n\nexport default Speedbump;\n","export * from './hooks/useFeatureConfigs';\nexport * from './gql/queries';\nexport * from './gql/types';\nexport * from './use-speedbump';\nexport * from './speedbump';\n","export * from './lib';\n","import cx from 'classnames';\nimport * as React from 'react';\n\ntype SpinnerSizes = 'sm' | 'md' | 'lg' | 'xl';\n\nexport type SpinnerProps = {\n /** The size of the spinner */\n size?: SpinnerSizes;\n /** The time in milliseconds to delay until spinner starts */\n delay?: number;\n} & React.HTMLAttributes<SVGElement>;\n\n/**\n * Displays an icon that indicates something is loading\n */\nexport const Spinner = React.forwardRef<SVGSVGElement, SpinnerProps>(\n ({ className, size = 'md', delay, ...rest }, forwardedRef) => {\n const [showSpinner, setShowSpinner] = React.useState(false);\n\n React.useEffect(() => {\n if (delay) {\n const timer = setTimeout(() => setShowSpinner(true), delay);\n return () => clearTimeout(timer);\n }\n return setShowSpinner(true);\n }, [delay]);\n\n return (\n <svg\n role=\"img\"\n aria-hidden=\"true\"\n className={cx(\n 'motion-safe:animate-spin',\n {\n 'w-5': size === 'sm',\n 'w-10': size === 'md',\n 'w-16': size === 'lg',\n 'w-20': size === 'xl',\n hidden: !showSpinner,\n },\n className\n )}\n viewBox=\"0 0 100 100\"\n fill=\"none\"\n ref={forwardedRef}\n {...rest}\n >\n <circle className=\"opacity-25\" cx=\"10\" cy=\"10\" stroke=\"currentColor\" strokeWidth=\"10\" />\n <path\n fill=\"currentColor\"\n d=\"M10,50c0,0,0,0.5,0.1,1.4c0,0.5,0.1,1,0.2,1.7c0,0.3,0.1,0.7,0.1,1.1c0.1,0.4,0.1,0.8,0.2,1.2c0.2,0.8,0.3,1.8,0.5,2.8 c0.3,1,0.6,2.1,0.9,3.2c0.3,1.1,0.9,2.3,1.4,3.5c0.5,1.2,1.2,2.4,1.8,3.7c0.3,0.6,0.8,1.2,1.2,1.9c0.4,0.6,0.8,1.3,1.3,1.9 c1,1.2,1.9,2.6,3.1,3.7c2.2,2.5,5,4.7,7.9,6.7c3,2,6.5,3.4,10.1,4.6c3.6,1.1,7.5,1.5,11.2,1.6c4-0.1,7.7-0.6,11.3-1.6 c3.6-1.2,7-2.6,10-4.6c3-2,5.8-4.2,7.9-6.7c1.2-1.2,2.1-2.5,3.1-3.7c0.5-0.6,0.9-1.3,1.3-1.9c0.4-0.6,0.8-1.3,1.2-1.9 c0.6-1.3,1.3-2.5,1.8-3.7c0.5-1.2,1-2.4,1.4-3.5c0.3-1.1,0.6-2.2,0.9-3.2c0.2-1,0.4-1.9,0.5-2.8c0.1-0.4,0.1-0.8,0.2-1.2 c0-0.4,0.1-0.7,0.1-1.1c0.1-0.7,0.1-1.2,0.2-1.7C90,50.5,90,50,90,50s0,0.5,0,1.4c0,0.5,0,1,0,1.7c0,0.3,0,0.7,0,1.1 c0,0.4-0.1,0.8-0.1,1.2c-0.1,0.9-0.2,1.8-0.4,2.8c-0.2,1-0.5,2.1-0.7,3.3c-0.3,1.2-0.8,2.4-1.2,3.7c-0.2,0.7-0.5,1.3-0.8,1.9 c-0.3,0.7-0.6,1.3-0.9,2c-0.3,0.7-0.7,1.3-1.1,2c-0.4,0.7-0.7,1.4-1.2,2c-1,1.3-1.9,2.7-3.1,4c-2.2,2.7-5,5-8.1,7.1 c-0.8,0.5-1.6,1-2.4,1.5c-0.8,0.5-1.7,0.9-2.6,1.3L66,87.7l-1.4,0.5c-0.9,0.3-1.8,0.7-2.8,1c-3.8,1.1-7.9,1.7-11.8,1.8L47,90.8 c-1,0-2-0.2-3-0.3l-1.5-0.2l-0.7-0.1L41.1,90c-1-0.3-1.9-0.5-2.9-0.7c-0.9-0.3-1.9-0.7-2.8-1L34,87.7l-1.3-0.6 c-0.9-0.4-1.8-0.8-2.6-1.3c-0.8-0.5-1.6-1-2.4-1.5c-3.1-2.1-5.9-4.5-8.1-7.1c-1.2-1.2-2.1-2.7-3.1-4c-0.5-0.6-0.8-1.4-1.2-2 c-0.4-0.7-0.8-1.3-1.1-2c-0.3-0.7-0.6-1.3-0.9-2c-0.3-0.7-0.6-1.3-0.8-1.9c-0.4-1.3-0.9-2.5-1.2-3.7c-0.3-1.2-0.5-2.3-0.7-3.3 c-0.2-1-0.3-2-0.4-2.8c-0.1-0.4-0.1-0.8-0.1-1.2c0-0.4,0-0.7,0-1.1c0-0.7,0-1.2,0-1.7C10,50.5,10,50,10,50z\"\n />\n </svg>\n );\n }\n);\n\nSpinner.displayName = 'Spinner';\n\nexport default Spinner;\n","import { Spinner } from './spinner';\nimport { Dialog, DialogTitle } from '@dx-ui/osc-dialog-v2';\nimport { useTranslation } from 'next-i18next';\n\ntype SpinnerDialogProps = {\n /* Whether the dialog is open or closed */\n isOpen: boolean;\n /* Loading text provided to the dialog, defaults to Please wait... */\n text?: string;\n};\n\nexport function SpinnerDialog({ isOpen, text }: SpinnerDialogProps) {\n const { t } = useTranslation('osc-spinner');\n return (\n <Dialog isOpen={isOpen} hasChildrenWithTitle dialogClassName=\"w-48\">\n <div className=\"flex flex-col items-center justify-center gap-4\">\n <Spinner size=\"xl\" />\n <DialogTitle>{text || t('loadingText')}</DialogTitle>\n </div>\n </Dialog>\n );\n}\n\nSpinnerDialog.displayName = 'SpinnerDialog';\n\nexport default SpinnerDialog;\n","export * from './spinner';\nexport * from './spinner-dialog';\n","export * from './lib';\n","import { useRect } from '@dx-ui/utilities-use-rect';\nimport cx from 'classnames';\nimport * as React from 'react';\nimport { useTranslation } from 'next-i18next';\nimport { getPopupStyles } from '@dx-ui/osc-popup';\n\nexport type Tooltip = {\n message: React.ReactNode;\n /** Used to apply custom styles to tooltip's popup */\n popupClassName?: string;\n} & React.HTMLAttributes<HTMLButtonElement>;\n\nexport type TooltipCause = 'escape' | 'focus' | 'initial' | 'mouse';\n\nexport const Tooltip: React.FC<React.PropsWithChildren<Tooltip>> = ({\n children,\n className,\n message,\n popupClassName,\n ...rest\n}) => {\n const { t } = useTranslation('osc-tooltip');\n const id = React.useId();\n const tipId = `tooltip-${id}`;\n const [currentCause, setCurrentCause] = React.useState<TooltipCause>('initial');\n const [visible, setVisible] = React.useState(false);\n\n const buttonRef = React.useRef(null);\n const popoverRef = React.useRef(null);\n const popoverRect = useRect({ ref: popoverRef });\n const targetRect = useRect({ ref: buttonRef });\n const styles = getPopupStyles(targetRect, popoverRect);\n\n const hide = React.useCallback(\n (cause: TooltipCause) => {\n if (cause === 'escape' || currentCause === cause) {\n setVisible(false);\n setCurrentCause('initial');\n }\n },\n [currentCause]\n );\n const show = (cause: TooltipCause) => {\n if (currentCause === 'focus') return;\n setVisible(true);\n setCurrentCause(cause);\n };\n\n React.useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n if (visible && e.key === 'Escape') {\n hide('escape');\n }\n };\n window.addEventListener('keydown', onKeyDown);\n return () => {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [hide, visible]);\n\n return (\n <span className=\"relative\">\n <button\n type=\"button\"\n className={className}\n ref={buttonRef}\n aria-describedby={tipId}\n onBlur={() => hide('focus')}\n onFocus={() => show('focus')}\n onMouseOver={() => show('mouse')}\n onMouseOut={() => hide('mouse')}\n {...rest}\n >\n {children}\n </button>\n <span\n id={tipId}\n ref={popoverRef}\n role=\"tooltip\"\n aria-hidden={!visible}\n className={cx(\n 'bg-bg border-border fixed z-50 mt-1 whitespace-nowrap rounded border border-solid p-2 shadow-lg',\n popupClassName,\n { block: visible, hidden: !visible }\n )}\n style={styles}\n aria-label={t('label')}\n >\n {message}\n </span>\n </span>\n );\n};\n\nexport default Tooltip;\n","export * from './lib/tooltip';\n","import type * as Types from './types';\n\nimport {\n useQuery,\n useMutation,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n type UseMutationOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\nexport const StayRoomDetailsFragmentDoc = `\n fragment StayRoomDetails on StayHHonorsActivityRoomDetail {\n _id\n bonusPoints\n bonusPointsFmt\n cxlNumber\n guestActivityType\n roomSeries\n roomTypeName\n roomTypeNameFmt: roomTypeName @truncate(byWords: true, length: 3)\n bookAgainUrl\n usedPointsFmt(language: $language)\n transactions {\n transactionId\n transactionType\n partnerName\n baseEarningOption\n guestActivityPointsType\n description\n descriptionFmt: description @toTitleCase\n basePoints\n basePointsFmt\n bonusPoints\n bonusPointsFmt\n status\n usedPointsFmt(language: $language)\n }\n totalPoints\n totalPointsFmt(language: $language)\n viewFolioUrl(type: link)\n}\n `;\nexport const StayTransactionFragmentDoc = `\n fragment StayTransaction on StayHHonorsTransaction {\n transactionId\n transactionType\n partnerName\n baseEarningOption\n guestActivityPointsType\n description\n descriptionFmt: description @toTitleCase\n basePoints\n basePointsFmt\n bonusPoints\n bonusPointsFmt\n earnedPoints\n earnedPointsFmt\n status\n usedPoints\n usedPointsFmt(language: $language)\n hiltonForBusiness {\n _id\n h4bFlag\n h4bName\n }\n}\n `;\nexport const StayActivitySummaryFragmentDoc = `\n fragment StayActivitySummary on StayHHonorsActivitySummary {\n numRooms\n _id\n stayId\n arrivalDate\n departureDate\n hotelName\n desc\n descFmt: desc @toTitleCase\n guestActivityType\n ctyhocn\n brandCode\n roomDetails(sort: {by: roomSeries, order: asc}) {\n ...StayRoomDetails\n transactions {\n ...StayTransaction\n }\n }\n transactions {\n ...StayTransaction\n }\n bookAgainUrl\n checkinUrl\n confNumber\n cxlNumber\n timeframe\n lengthOfStay\n viewFolioUrl\n viewOrEditReservationUrl\n earnedPoints\n earnedPointsFmt\n totalPoints\n totalPointsFmt\n usedPoints\n usedPointsFmt\n}\n ${StayRoomDetailsFragmentDoc}\n${StayTransactionFragmentDoc}`;\nexport const FullWidthImageFragmentDoc = `\n fragment FullWidthImage on BrandPage {\n fullWidthImage {\n headline\n label\n shortDescription\n link {\n adaDescription\n isNewWindow\n label\n url\n campaignId\n }\n imageCompound {\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n }\n}\n `;\nexport const RotatingTilesFragmentDoc = `\n fragment RotatingTiles on BrandPage {\n rotatingTiles {\n description\n headline\n items {\n headline\n label\n shortDescription\n image {\n altText\n variants {\n size\n url\n }\n }\n label\n link {\n adaDescription\n isNewWindow\n campaignId\n label\n url\n }\n }\n }\n}\n `;\nexport const MosaicGridFragmentDoc = `\n fragment MosaicGrid on BrandPage {\n mosaicGrid {\n description\n headline\n id\n items {\n label\n headline\n shortDescription\n image {\n altText\n variants {\n size\n url\n }\n }\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n}\n `;\nexport const FourXGridFragmentDoc = `\n fragment FourXGrid on BrandPage {\n fourXGrid {\n headline\n description\n items {\n _id\n headline\n label\n shortDescription\n segmentIds\n link {\n adaDescription\n isNewWindow\n campaignId\n label\n url\n }\n imageCompound {\n expansionPanelImage {\n variants(sort: {by: size, order: desc}) {\n url\n size\n }\n }\n image {\n altText\n variants(sort: {by: size, order: desc}) {\n url\n size\n }\n }\n }\n }\n }\n}\n `;\nexport const StaysFieldsFragmentFragmentDoc = `\n fragment StaysFieldsFragment on StaySummary {\n id: confNumber\n arrivalDate\n arrivalDateFmt\n autoUpgradedStay\n bookingCode\n brandCode\n confNumber\n ctyhocn\n departureDate\n departureDateFmt\n desc\n guestBenefits {\n foodAndBeverageCreditBenefit {\n description\n linkLabel\n linkUrl\n }\n }\n isStayUpsell\n isStayUpsellOverAutoUpgrade\n lengthOfStay\n manageEligible\n originResId\n resCreateDate\n resCreateDateFmt\n resStatus\n stayId\n stayStatus\n bookAgainUrl\n viewOrEditReservationUrl\n showAutoUpgradeIndicator\n hotel {\n images {\n master(imageVariant: honorsPropertyImageThumbnail) {\n altText\n variants {\n size\n url\n }\n }\n carousel(imageVariant: searchPropertyCarousel) {\n altText\n variants {\n size\n url\n }\n }\n }\n ctyhocn\n name\n contactInfo {\n phoneNumber\n }\n display {\n treatments\n }\n galleryImages(sort: {by: seq, order: asc}) {\n alt\n src\n hiResSrc(width: $galleryImageWidth, height: $galleryImageHeight)\n }\n }\n}\n `;\nexport const ActivePromotionFragmentDoc = `\n fragment ActivePromotion on GuestHHonorsActivePromotion {\n promotionCode\n promotionCounters {\n promotionProgress\n promotionType\n }\n promotionDaysLeft\n promotionDescription: promotionAlternativeDescription\n promotionAlternativeDescriptionTruncated: promotionAlternativeDescription @truncate(length: 65)\n promotionEndDate\n promotionName\n termsAndConditions\n}\n `;\nexport const EligiblePromotionFragmentDoc = `\n fragment EligiblePromotion on GuestHHonorsEligiblePromotion {\n callCenterOnly\n endDate\n promotionCode\n promotionDescription: alternateDescription\n alternateDescriptionTruncated: alternateDescription @truncate(length: 65)\n promotionName\n termsAndConditions\n}\n `;\nexport const Guest_MissingStaysDocument = {\n operationName: 'guest_MissingStays',\n operationString: `query guest_MissingStays($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n hhonorsNumber\n }\n }\n}`,\n originalOpName: 'guest_MissingStays',\n};\nexport function useGuest_MissingStaysQuery<TData = Types.Guest_MissingStaysQuery, TError = DXError>(\n variables: Types.Guest_MissingStaysQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_MissingStaysQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_MissingStaysQuery, TError, TData>({\n queryKey: [Guest_MissingStaysDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_MissingStaysQuery(\n queryClient: QueryClient,\n variables: Types.Guest_MissingStaysQueryVariables,\n options?: FetchQueryOptions<Types.Guest_MissingStaysQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_MissingStaysQuery>({\n queryKey: [Guest_MissingStaysDocument, variables],\n ...options,\n });\n}\n\nexport const HotelDocument = {\n operationName: 'hotel',\n operationString: `query hotel($ctyhocn: String!, $language: String!) {\n hotel(ctyhocn: $ctyhocn, language: $language) {\n address {\n country\n state\n city\n addressFmt(format: \"stacked\")\n }\n localization {\n currencyCode\n }\n name\n brandCode\n }\n}`,\n originalOpName: 'hotel',\n};\nexport function useHotelQuery<TData = Types.HotelQuery, TError = DXError>(\n variables: Types.HotelQueryVariables,\n options?: Omit<UseQueryOptions<Types.HotelQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.HotelQuery, TError, TData>({\n queryKey: [HotelDocument, variables],\n ...options,\n });\n}\nexport function serverSideHotelQuery(\n queryClient: QueryClient,\n variables: Types.HotelQueryVariables,\n options?: FetchQueryOptions<Types.HotelQuery>\n) {\n return queryClient.fetchQuery<Types.HotelQuery>({\n queryKey: [HotelDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_GuestActivitySummaryOptions_HotelDocument = {\n operationName: 'guest_guestActivitySummaryOptions_hotel',\n operationString: `query guest_guestActivitySummaryOptions_hotel($guestId: BigInt!, $language: String!, $startDate: String!, $endDate: String!, $guestActivityTypes: [GuestActivityType], $sort: [StayHHonorsActivitySummarySortInput!], $first: Int, $after: String, $guestActivityDisplayType: GuestActivityDisplayType) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n summary {\n tierName\n totalPoints\n }\n }\n activitySummaryOptions(\n input: {groupMultiRoomStays: true, startDate: $startDate, endDate: $endDate, guestActivityTypes: $guestActivityTypes, guestActivityDisplayType: $guestActivityDisplayType}\n ) {\n _guestActivitiesSummary {\n totalSize\n size\n start\n end\n nextCursor\n prevCursor\n }\n guestActivitiesSummary(sort: $sort, first: $first, after: $after) {\n ...StayActivitySummary\n }\n }\n }\n}\n\n ${StayActivitySummaryFragmentDoc}`,\n originalOpName: 'guest_guestActivitySummaryOptions_hotel',\n};\nexport function useGuest_GuestActivitySummaryOptions_HotelQuery<\n TData = Types.Guest_GuestActivitySummaryOptions_HotelQuery,\n TError = DXError\n>(\n variables: Types.Guest_GuestActivitySummaryOptions_HotelQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Guest_GuestActivitySummaryOptions_HotelQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Guest_GuestActivitySummaryOptions_HotelQuery, TError, TData>({\n queryKey: [Guest_GuestActivitySummaryOptions_HotelDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_GuestActivitySummaryOptions_HotelQuery(\n queryClient: QueryClient,\n variables: Types.Guest_GuestActivitySummaryOptions_HotelQueryVariables,\n options?: FetchQueryOptions<Types.Guest_GuestActivitySummaryOptions_HotelQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_GuestActivitySummaryOptions_HotelQuery>({\n queryKey: [Guest_GuestActivitySummaryOptions_HotelDocument, variables],\n ...options,\n });\n}\n\nexport const Countries_AddressOptionsDocument = {\n operationName: 'countries_AddressOptions',\n operationString: `query countries_AddressOptions($language: String!, $code: String, $type: AddressOptionsAddressType) {\n countries(language: $language, filter: {code: $code}) {\n code\n name\n addressOptions(type: $type) {\n name\n label\n maxLength\n required\n }\n states(sort: {by: name, order: asc}) {\n value: code\n name\n }\n }\n}`,\n originalOpName: 'countries_AddressOptions',\n};\nexport function useCountries_AddressOptionsQuery<\n TData = Types.Countries_AddressOptionsQuery,\n TError = DXError\n>(\n variables: Types.Countries_AddressOptionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Countries_AddressOptionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Countries_AddressOptionsQuery, TError, TData>({\n queryKey: [Countries_AddressOptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideCountries_AddressOptionsQuery(\n queryClient: QueryClient,\n variables: Types.Countries_AddressOptionsQueryVariables,\n options?: FetchQueryOptions<Types.Countries_AddressOptionsQuery>\n) {\n return queryClient.fetchQuery<Types.Countries_AddressOptionsQuery>({\n queryKey: [Countries_AddressOptionsDocument, variables],\n ...options,\n });\n}\n\nexport const GeocodeDocument = {\n operationName: 'geocode',\n operationString: `query geocode($postalCode: String, $language: String!) {\n geocode(language: $language, postalCode: $postalCode) {\n match {\n address {\n city\n state\n }\n }\n }\n}`,\n originalOpName: 'geocode',\n};\nexport function useGeocodeQuery<TData = Types.GeocodeQuery, TError = DXError>(\n variables: Types.GeocodeQueryVariables,\n options?: Omit<UseQueryOptions<Types.GeocodeQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GeocodeQuery, TError, TData>({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocodeQuery(\n queryClient: QueryClient,\n variables: Types.GeocodeQueryVariables,\n options?: FetchQueryOptions<Types.GeocodeQuery>\n) {\n return queryClient.fetchQuery<Types.GeocodeQuery>({\n queryKey: [GeocodeDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CmsTextHeadlinerDocument = {\n operationName: 'brand_CmsTextHeadliner',\n operationString: `query brand_CmsTextHeadliner($language: String!, $path: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: $path) {\n textHeadliner {\n items {\n headline\n label\n segmentIds\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_CmsTextHeadliner',\n};\nexport function useBrand_CmsTextHeadlinerQuery<\n TData = Types.Brand_CmsTextHeadlinerQuery,\n TError = DXError\n>(\n variables: Types.Brand_CmsTextHeadlinerQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CmsTextHeadlinerQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CmsTextHeadlinerQuery, TError, TData>({\n queryKey: [Brand_CmsTextHeadlinerDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CmsTextHeadlinerQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CmsTextHeadlinerQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CmsTextHeadlinerQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CmsTextHeadlinerQuery>({\n queryKey: [Brand_CmsTextHeadlinerDocument, variables],\n ...options,\n });\n}\n\nexport const BrandDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $path: String!, $brandCode: String!) {\n brand(brandCode: $brandCode, language: $language) {\n page(path: $path) {\n fullWidthImage {\n caption\n captionLink\n headline\n id\n imageCompound {\n expansionPanelImage {\n altText\n variants {\n size\n url\n }\n }\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n label\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n segmentIds\n shortDescription\n attributes\n description\n }\n }\n }\n}`,\n originalOpName: 'brand',\n};\nexport function useBrandQuery<TData = Types.BrandQuery, TError = DXError>(\n variables: Types.BrandQueryVariables,\n options?: Omit<UseQueryOptions<Types.BrandQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.BrandQuery, TError, TData>({\n queryKey: [BrandDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandQuery(\n queryClient: QueryClient,\n variables: Types.BrandQueryVariables,\n options?: FetchQueryOptions<Types.BrandQuery>\n) {\n return queryClient.fetchQuery<Types.BrandQuery>({\n queryKey: [BrandDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_HiltonForBusinessDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $brandCode: String!, $path: String!) {\n brand(language: $language, brandCode: $brandCode) {\n page(path: $path) {\n textBlock {\n description {\n value\n }\n heading {\n value\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_HiltonForBusiness',\n};\nexport function useBrand_HiltonForBusinessQuery<\n TData = Types.Brand_HiltonForBusinessQuery,\n TError = DXError\n>(\n variables: Types.Brand_HiltonForBusinessQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_HiltonForBusinessQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_HiltonForBusinessQuery, TError, TData>({\n queryKey: [Brand_HiltonForBusinessDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_HiltonForBusinessQuery(\n queryClient: QueryClient,\n variables: Types.Brand_HiltonForBusinessQueryVariables,\n options?: FetchQueryOptions<Types.Brand_HiltonForBusinessQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_HiltonForBusinessQuery>({\n queryKey: [Brand_HiltonForBusinessDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_HotelBenefitsDocument = {\n operationName: 'brand_HotelBenefits',\n operationString: `query brand_HotelBenefits($language: String!, $path: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: $path) {\n textBlock {\n description {\n value\n }\n }\n tabbedIcons {\n headline\n description\n items {\n description\n iconType\n label\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_HotelBenefits',\n};\nexport function useBrand_HotelBenefitsQuery<\n TData = Types.Brand_HotelBenefitsQuery,\n TError = DXError\n>(\n variables: Types.Brand_HotelBenefitsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_HotelBenefitsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_HotelBenefitsQuery, TError, TData>({\n queryKey: [Brand_HotelBenefitsDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_HotelBenefitsQuery(\n queryClient: QueryClient,\n variables: Types.Brand_HotelBenefitsQueryVariables,\n options?: FetchQueryOptions<Types.Brand_HotelBenefitsQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_HotelBenefitsQuery>({\n queryKey: [Brand_HotelBenefitsDocument, variables],\n ...options,\n });\n}\n\nexport const BrandRewardProgramDocument = {\n operationName: 'brand',\n operationString: `query brand($brandCode: String!, $language: String!, $path: String!) {\n brand(brandCode: $brandCode, language: $language) {\n page(path: $path) {\n rotatingTiles {\n items {\n _id\n headline\n shortDescription\n }\n }\n multicolumnText {\n description\n headline\n subheading\n items {\n headline\n items {\n contentBlock {\n description {\n value\n }\n heading {\n value\n }\n }\n }\n }\n }\n imageHeadliner {\n items {\n headline\n label\n link {\n isNewWindow\n label\n url\n adaDescription\n campaignId\n }\n }\n }\n halfAndHalf {\n description\n headline\n items {\n headline\n shortDescription\n }\n }\n textBlock {\n id\n heading {\n value\n }\n description {\n value\n }\n }\n carousel {\n items {\n multimediaCompound {\n items {\n _id\n videoUrl\n videoName\n videoAutoPlay\n posterImageUrl\n orientation\n metadata {\n label\n url\n language\n type\n }\n }\n }\n headline\n link {\n campaignId\n isNewWindow\n adaDescription\n label\n url\n }\n shortDescription\n }\n }\n }\n }\n}`,\n originalOpName: 'brandRewardProgram',\n};\nexport function useBrandRewardProgramQuery<TData = Types.BrandRewardProgramQuery, TError = DXError>(\n variables: Types.BrandRewardProgramQueryVariables,\n options?: Omit<UseQueryOptions<Types.BrandRewardProgramQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.BrandRewardProgramQuery, TError, TData>({\n queryKey: [BrandRewardProgramDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandRewardProgramQuery(\n queryClient: QueryClient,\n variables: Types.BrandRewardProgramQueryVariables,\n options?: FetchQueryOptions<Types.BrandRewardProgramQuery>\n) {\n return queryClient.fetchQuery<Types.BrandRewardProgramQuery>({\n queryKey: [BrandRewardProgramDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_ThreeSixNineGridDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $brandCode: String!, $path: String!) {\n brand(language: $language, brandCode: $brandCode) {\n page(path: $path) {\n threeSixNineGrid {\n description\n headline\n items {\n _id\n headline\n label\n shortDescription\n segmentIds\n imageCompound {\n image {\n altText\n variants {\n size\n url\n }\n }\n expansionPanelImage {\n altText\n variants {\n size\n url\n }\n }\n }\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_ThreeSixNineGrid',\n};\nexport function useBrand_ThreeSixNineGridQuery<\n TData = Types.Brand_ThreeSixNineGridQuery,\n TError = DXError\n>(\n variables: Types.Brand_ThreeSixNineGridQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_ThreeSixNineGridQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_ThreeSixNineGridQuery, TError, TData>({\n queryKey: [Brand_ThreeSixNineGridDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_ThreeSixNineGridQuery(\n queryClient: QueryClient,\n variables: Types.Brand_ThreeSixNineGridQueryVariables,\n options?: FetchQueryOptions<Types.Brand_ThreeSixNineGridQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_ThreeSixNineGridQuery>({\n queryKey: [Brand_ThreeSixNineGridDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_UsePointsDocument = {\n operationName: 'brand_UsePoints',\n operationString: `query brand_UsePoints($language: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: \"member-home\") {\n pointsToolbar {\n description\n headline\n items {\n _id\n headline\n label\n shortDescription\n segmentIds\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n imageCompound {\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_UsePoints',\n};\nexport function useBrand_UsePointsQuery<TData = Types.Brand_UsePointsQuery, TError = DXError>(\n variables: Types.Brand_UsePointsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_UsePointsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_UsePointsQuery, TError, TData>({\n queryKey: [Brand_UsePointsDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_UsePointsQuery(\n queryClient: QueryClient,\n variables: Types.Brand_UsePointsQueryVariables,\n options?: FetchQueryOptions<Types.Brand_UsePointsQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_UsePointsQuery>({\n queryKey: [Brand_UsePointsDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_AlertDocument = {\n operationName: 'brand_Alert',\n operationString: `query brand_Alert($language: String!) {\n alerts: brand(brandCode: \"HH\", language: $language) {\n messages(sort: {by: startDateTime, order: desc}) {\n type\n headline\n content: shortDescription\n link {\n adaDescription\n isNewWindow\n label\n url\n }\n }\n }\n}`,\n originalOpName: 'brand_Alert',\n};\nexport function useBrand_AlertQuery<TData = Types.Brand_AlertQuery, TError = DXError>(\n variables: Types.Brand_AlertQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_AlertQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_AlertQuery, TError, TData>({\n queryKey: [Brand_AlertDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_AlertQuery(\n queryClient: QueryClient,\n variables: Types.Brand_AlertQueryVariables,\n options?: FetchQueryOptions<Types.Brand_AlertQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_AlertQuery>({\n queryKey: [Brand_AlertDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CmsAlertDocument = {\n operationName: 'brand_CmsAlert',\n operationString: `query brand_CmsAlert($language: String!, $path: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: $path) {\n textHeadliner {\n items {\n headline\n label\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_CmsAlert',\n};\nexport function useBrand_CmsAlertQuery<TData = Types.Brand_CmsAlertQuery, TError = DXError>(\n variables: Types.Brand_CmsAlertQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CmsAlertQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CmsAlertQuery, TError, TData>({\n queryKey: [Brand_CmsAlertDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CmsAlertQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CmsAlertQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CmsAlertQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CmsAlertQuery>({\n queryKey: [Brand_CmsAlertDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CmsImageHeadlinerDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!, $path: String!) {\n brand(brandCode: \"HH\", language: $language) {\n page(path: $path) {\n imageHeadliner {\n id\n items {\n id\n headline\n label\n segmentIds\n link {\n campaignId\n adaDescription\n isNewWindow\n label\n url\n }\n image {\n altText\n variants {\n size\n url\n }\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_CmsImageHeadliner',\n};\nexport function useBrand_CmsImageHeadlinerQuery<\n TData = Types.Brand_CmsImageHeadlinerQuery,\n TError = DXError\n>(\n variables: Types.Brand_CmsImageHeadlinerQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CmsImageHeadlinerQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CmsImageHeadlinerQuery, TError, TData>({\n queryKey: [Brand_CmsImageHeadlinerDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CmsImageHeadlinerQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CmsImageHeadlinerQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CmsImageHeadlinerQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CmsImageHeadlinerQuery>({\n queryKey: [Brand_CmsImageHeadlinerDocument, variables],\n ...options,\n });\n}\n\nexport const CmsBrandMemberDataDocument = {\n operationName: 'cmsBrandMemberData',\n operationString: `query cmsBrandMemberData($language: String!, $brandCode: String!) {\n brand(language: $language, brandCode: $brandCode) {\n page(path: \"guest::points\") {\n tabbedIcons {\n id\n description\n headline\n items {\n _id\n label\n iconType\n description\n headline\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n fourXGrid {\n headline\n description\n items {\n shortDescription\n headline\n _id\n link {\n _id\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n imageCompound {\n image {\n variants(filter: {size: md}) {\n size\n url\n }\n }\n }\n label\n caption\n segmentIds\n }\n }\n }\n }\n}`,\n originalOpName: 'cmsBrandMemberData',\n};\nexport function useCmsBrandMemberDataQuery<TData = Types.CmsBrandMemberDataQuery, TError = DXError>(\n variables: Types.CmsBrandMemberDataQueryVariables,\n options?: Omit<UseQueryOptions<Types.CmsBrandMemberDataQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CmsBrandMemberDataQuery, TError, TData>({\n queryKey: [CmsBrandMemberDataDocument, variables],\n ...options,\n });\n}\nexport function serverSideCmsBrandMemberDataQuery(\n queryClient: QueryClient,\n variables: Types.CmsBrandMemberDataQueryVariables,\n options?: FetchQueryOptions<Types.CmsBrandMemberDataQuery>\n) {\n return queryClient.fetchQuery<Types.CmsBrandMemberDataQuery>({\n queryKey: [CmsBrandMemberDataDocument, variables],\n ...options,\n });\n}\n\nexport const CmsFaqDocument = {\n operationName: 'faq',\n operationString: `query faq($language: String!, $faqType: FaqType!) {\n faq(language: $language, faqType: $faqType) {\n title\n subHeading\n shortDescription\n subTopic {\n subTopicName\n faqContent {\n _id\n question\n answer(format: md)\n answerOrderedList(format: md)\n answerUnorderedList(format: md)\n }\n }\n }\n}`,\n originalOpName: 'cmsFaq',\n};\nexport function useCmsFaqQuery<TData = Types.CmsFaqQuery, TError = DXError>(\n variables: Types.CmsFaqQueryVariables,\n options?: Omit<UseQueryOptions<Types.CmsFaqQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CmsFaqQuery, TError, TData>({\n queryKey: [CmsFaqDocument, variables],\n ...options,\n });\n}\nexport function serverSideCmsFaqQuery(\n queryClient: QueryClient,\n variables: Types.CmsFaqQueryVariables,\n options?: FetchQueryOptions<Types.CmsFaqQuery>\n) {\n return queryClient.fetchQuery<Types.CmsFaqQuery>({\n queryKey: [CmsFaqDocument, variables],\n ...options,\n });\n}\n\nexport const CmsPolicyDocument = {\n operationName: 'policy',\n operationString: `query policy($language: String!, $policy: PolicyDocumentType!) {\n policy(language: $language, policyDocumentType: $policy) {\n name\n description\n shortDescription\n content {\n _id\n description(format: md)\n heading(format: md)\n orderedList(format: md)\n unorderedList(format: md)\n }\n }\n}`,\n originalOpName: 'cmsPolicy',\n};\nexport function useCmsPolicyQuery<TData = Types.CmsPolicyQuery, TError = DXError>(\n variables: Types.CmsPolicyQueryVariables,\n options?: Omit<UseQueryOptions<Types.CmsPolicyQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CmsPolicyQuery, TError, TData>({\n queryKey: [CmsPolicyDocument, variables],\n ...options,\n });\n}\nexport function serverSideCmsPolicyQuery(\n queryClient: QueryClient,\n variables: Types.CmsPolicyQueryVariables,\n options?: FetchQueryOptions<Types.CmsPolicyQuery>\n) {\n return queryClient.fetchQuery<Types.CmsPolicyQuery>({\n queryKey: [CmsPolicyDocument, variables],\n ...options,\n });\n}\n\nexport const Countries_SubscriptionsDocument = {\n operationName: 'countries_Subscriptions',\n operationString: `query countries_Subscriptions($countryFilter: CountryFilterInput, $language: String!) {\n countries(filter: $countryFilter, first: 1, language: $language) {\n name\n code\n dataSubjectRights\n marketingConsent\n marketingOptIn\n marketingOptInForHGV\n }\n}`,\n originalOpName: 'countries_Subscriptions',\n};\nexport function useCountries_SubscriptionsQuery<\n TData = Types.Countries_SubscriptionsQuery,\n TError = DXError\n>(\n variables: Types.Countries_SubscriptionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Countries_SubscriptionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Countries_SubscriptionsQuery, TError, TData>({\n queryKey: [Countries_SubscriptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideCountries_SubscriptionsQuery(\n queryClient: QueryClient,\n variables: Types.Countries_SubscriptionsQueryVariables,\n options?: FetchQueryOptions<Types.Countries_SubscriptionsQuery>\n) {\n return queryClient.fetchQuery<Types.Countries_SubscriptionsQuery>({\n queryKey: [Countries_SubscriptionsDocument, variables],\n ...options,\n });\n}\n\nexport const CountriesDocument = {\n operationName: 'countries',\n operationString: `query countries($language: String!, $CountrySortInput: [CountrySortInput!]) {\n countries(\n language: $language\n sort: $CountrySortInput\n filter: {prohibited: false}\n ) {\n name: displayName\n callingCode\n code\n }\n}`,\n originalOpName: 'countries',\n};\nexport function useCountriesQuery<TData = Types.CountriesQuery, TError = DXError>(\n variables: Types.CountriesQueryVariables,\n options?: Omit<UseQueryOptions<Types.CountriesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CountriesQuery, TError, TData>({\n queryKey: [CountriesDocument, variables],\n ...options,\n });\n}\nexport function serverSideCountriesQuery(\n queryClient: QueryClient,\n variables: Types.CountriesQueryVariables,\n options?: FetchQueryOptions<Types.CountriesQuery>\n) {\n return queryClient.fetchQuery<Types.CountriesQuery>({\n queryKey: [CountriesDocument, variables],\n ...options,\n });\n}\n\nexport const CreateGuest2FaDocument = {\n operationName: 'createGuest2FA',\n operationString: `mutation createGuest2FA($deliveryId: Int!, $deliveryMethod: Guest2FADeliveryMethod!, $guestId: BigInt!, $language: String!, $totp: String) {\n createGuest2FA(\n deliveryId: $deliveryId\n deliveryMethod: $deliveryMethod\n guestId: $guestId\n language: $language\n totp: $totp\n ) {\n data\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuest2FA',\n};\nexport function useCreateGuest2FaMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuest2FaMutation,\n TError,\n [typeof CreateGuest2FaDocument, Types.CreateGuest2FaMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuest2FaMutation,\n TError,\n [typeof CreateGuest2FaDocument, Types.CreateGuest2FaMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestCombineAccountsDocument = {\n operationName: 'createGuestCombineAccounts',\n operationString: `mutation createGuestCombineAccounts($input: GuestCombineAccountsInput!) {\n createGuestCombineAccounts(input: $input) {\n data\n error {\n message\n }\n }\n}`,\n originalOpName: 'createGuestCombineAccounts',\n};\nexport function useCreateGuestCombineAccountsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestCombineAccountsMutation,\n TError,\n [typeof CreateGuestCombineAccountsDocument, Types.CreateGuestCombineAccountsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestCombineAccountsMutation,\n TError,\n [typeof CreateGuestCombineAccountsDocument, Types.CreateGuestCombineAccountsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestGdprDocument = {\n operationName: 'createGuestGdpr',\n operationString: `mutation createGuestGdpr($language: String!, $guestGdprInput: GuestGdprInput!, $recaptchaInput: RecaptchaInput) {\n createGuestGdpr(\n language: $language\n guestGdprInput: $guestGdprInput\n recaptchaInput: $recaptchaInput\n ) {\n data\n error {\n message\n code\n }\n }\n}`,\n originalOpName: 'createGuestGdpr',\n};\nexport function useCreateGuestGdprMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestGdprMutation,\n TError,\n [typeof CreateGuestGdprDocument, Types.CreateGuestGdprMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestGdprMutation,\n TError,\n [typeof CreateGuestGdprDocument, Types.CreateGuestGdprMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestMissingStayDocument = {\n operationName: 'createGuestMissingStay',\n operationString: `mutation createGuestMissingStay($input: GuestMissingStayInput!) {\n createGuestMissingStay(input: $input) {\n data\n error {\n message\n }\n notifications {\n message\n title\n }\n }\n}`,\n originalOpName: 'createGuestMissingStay',\n};\nexport function useCreateGuestMissingStayMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestMissingStayMutation,\n TError,\n [typeof CreateGuestMissingStayDocument, Types.CreateGuestMissingStayMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestMissingStayMutation,\n TError,\n [typeof CreateGuestMissingStayDocument, Types.CreateGuestMissingStayMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestPointsRedemptionDocument = {\n operationName: 'createGuestPointsRedemption',\n operationString: `mutation createGuestPointsRedemption($guestId: BigInt!, $input: GuestHHonorsPointsRedemptionInput!, $mfaInput: MFAInput) {\n createGuestPointsRedemption(\n guestId: $guestId\n input: $input\n mfaInput: $mfaInput\n ) {\n data\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuestPointsRedemption',\n};\nexport function useCreateGuestPointsRedemptionMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestPointsRedemptionMutation,\n TError,\n [\n typeof CreateGuestPointsRedemptionDocument,\n Types.CreateGuestPointsRedemptionMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestPointsRedemptionMutation,\n TError,\n [\n typeof CreateGuestPointsRedemptionDocument,\n Types.CreateGuestPointsRedemptionMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestPriceMatchGuaranteeDocument = {\n operationName: 'createGuestPriceMatchGuarantee',\n operationString: `mutation createGuestPriceMatchGuarantee($input: GuestPriceMatchGuaranteeInput!) {\n createGuestPriceMatchGuarantee(input: $input) {\n data\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuestPriceMatchGuarantee',\n};\nexport function useCreateGuestPriceMatchGuaranteeMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestPriceMatchGuaranteeMutation,\n TError,\n [\n typeof CreateGuestPriceMatchGuaranteeDocument,\n Types.CreateGuestPriceMatchGuaranteeMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestPriceMatchGuaranteeMutation,\n TError,\n [\n typeof CreateGuestPriceMatchGuaranteeDocument,\n Types.CreateGuestPriceMatchGuaranteeMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestPromoRegistrationDocument = {\n operationName: 'createGuestPromoRegistration',\n operationString: `mutation createGuestPromoRegistration($guestId: BigInt!, $promotionCode: String!) {\n createGuestPromoRegistration(guestId: $guestId, promotionCode: $promotionCode) {\n data {\n active(filter: {promotionCode: $promotionCode}) {\n promotionCode\n promotionCounters {\n promotionProgress\n promotionType\n }\n promotionDaysLeft\n promotionDescription: promotionAlternativeDescription\n promotionAlternativeDescriptionTruncated: promotionAlternativeDescription @truncate(length: 65)\n promotionEndDate\n promotionName\n termsAndConditions\n }\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuestPromoRegistration',\n};\nexport function useCreateGuestPromoRegistrationMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestPromoRegistrationMutation,\n TError,\n [\n typeof CreateGuestPromoRegistrationDocument,\n Types.CreateGuestPromoRegistrationMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestPromoRegistrationMutation,\n TError,\n [\n typeof CreateGuestPromoRegistrationDocument,\n Types.CreateGuestPromoRegistrationMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateGuestSharePersonalInfoOptOutDocument = {\n operationName: 'createGuestSharePersonalInfoOptOut',\n operationString: `mutation createGuestSharePersonalInfoOptOut($input: GuestSharePersonalInfoOptOutInput!, $language: String!) {\n createGuestSharePersonalInfoOptOut(language: $language, input: $input) {\n data\n error {\n message\n code\n }\n }\n}`,\n originalOpName: 'createGuestSharePersonalInfoOptOut',\n};\nexport function useCreateGuestSharePersonalInfoOptOutMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestSharePersonalInfoOptOutMutation,\n TError,\n [\n typeof CreateGuestSharePersonalInfoOptOutDocument,\n Types.CreateGuestSharePersonalInfoOptOutMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestSharePersonalInfoOptOutMutation,\n TError,\n [\n typeof CreateGuestSharePersonalInfoOptOutDocument,\n Types.CreateGuestSharePersonalInfoOptOutMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreditCardOffersDocument = {\n operationName: 'creditCardOffers',\n operationString: `query creditCardOffers($language: String!) {\n creditCardOffers_noTx: creditCardOffers(language: $language) {\n description\n headline\n cardName\n cardType\n items {\n cardName\n cardType\n attributes\n offerDescription\n offerTitle\n segmentIds\n builtinBenefitsBlocks {\n description\n heading\n orderedList\n unorderedList\n }\n cardBreakdownBlocks {\n description\n heading\n orderedList\n unorderedList\n }\n earningPointsBlocks {\n description\n heading\n orderedList\n unorderedList\n }\n feeDescription\n images {\n altText\n brandCodes\n image {\n image {\n variants {\n tabs(sort: {by: name}) {\n cdnLink\n name\n }\n }\n }\n }\n }\n link {\n adaDescription\n campaignId\n isNewWindow\n linkLabel\n linkUrl\n }\n }\n }\n}`,\n originalOpName: 'creditCardOffers',\n};\nexport function useCreditCardOffersQuery<TData = Types.CreditCardOffersQuery, TError = DXError>(\n variables: Types.CreditCardOffersQueryVariables,\n options?: Omit<UseQueryOptions<Types.CreditCardOffersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CreditCardOffersQuery, TError, TData>({\n queryKey: [CreditCardOffersDocument, variables],\n ...options,\n });\n}\nexport function serverSideCreditCardOffersQuery(\n queryClient: QueryClient,\n variables: Types.CreditCardOffersQueryVariables,\n options?: FetchQueryOptions<Types.CreditCardOffersQuery>\n) {\n return queryClient.fetchQuery<Types.CreditCardOffersQuery>({\n queryKey: [CreditCardOffersDocument, variables],\n ...options,\n });\n}\n\nexport const CreditCardTypesDocument = {\n operationName: 'creditCardTypes',\n operationString: `query creditCardTypes($language: String!) {\n creditCardTypes(language: $language, filter: {hhonors: true}) {\n code\n name\n }\n}`,\n originalOpName: 'creditCardTypes',\n};\nexport function useCreditCardTypesQuery<TData = Types.CreditCardTypesQuery, TError = DXError>(\n variables: Types.CreditCardTypesQueryVariables,\n options?: Omit<UseQueryOptions<Types.CreditCardTypesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CreditCardTypesQuery, TError, TData>({\n queryKey: [CreditCardTypesDocument, variables],\n ...options,\n });\n}\nexport function serverSideCreditCardTypesQuery(\n queryClient: QueryClient,\n variables: Types.CreditCardTypesQueryVariables,\n options?: FetchQueryOptions<Types.CreditCardTypesQuery>\n) {\n return queryClient.fetchQuery<Types.CreditCardTypesQuery>({\n queryKey: [CreditCardTypesDocument, variables],\n ...options,\n });\n}\n\nexport const CurrenciesDocument = {\n operationName: 'currencies',\n operationString: `query currencies($language: String) {\n currencies(language: $language, sort: {by: numericCode, order: asc}) {\n description\n currencyCode\n }\n}`,\n originalOpName: 'currencies',\n};\nexport function useCurrenciesQuery<TData = Types.CurrenciesQuery, TError = DXError>(\n variables: Types.CurrenciesQueryVariables | null = null,\n options?: Omit<UseQueryOptions<Types.CurrenciesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.CurrenciesQuery, TError, TData>({\n queryKey: [CurrenciesDocument, variables],\n ...options,\n });\n}\nexport function serverSideCurrenciesQuery(\n queryClient: QueryClient,\n variables: Types.CurrenciesQueryVariables | null = null,\n options?: FetchQueryOptions<Types.CurrenciesQuery>\n) {\n return queryClient.fetchQuery<Types.CurrenciesQuery>({\n queryKey: [CurrenciesDocument, variables],\n ...options,\n });\n}\n\nexport const Languages_DefaultCountryCodeDocument = {\n operationName: 'languages_defaultCountryCode',\n operationString: `query languages_defaultCountryCode($language: String!) {\n languages(language: $language, filter: {languageCodeOHW: $language}) {\n defaultCountryCode\n }\n}`,\n originalOpName: 'languages_defaultCountryCode',\n};\nexport function useLanguages_DefaultCountryCodeQuery<\n TData = Types.Languages_DefaultCountryCodeQuery,\n TError = DXError\n>(\n variables: Types.Languages_DefaultCountryCodeQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Languages_DefaultCountryCodeQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Languages_DefaultCountryCodeQuery, TError, TData>({\n queryKey: [Languages_DefaultCountryCodeDocument, variables],\n ...options,\n });\n}\nexport function serverSideLanguages_DefaultCountryCodeQuery(\n queryClient: QueryClient,\n variables: Types.Languages_DefaultCountryCodeQueryVariables,\n options?: FetchQueryOptions<Types.Languages_DefaultCountryCodeQuery>\n) {\n return queryClient.fetchQuery<Types.Languages_DefaultCountryCodeQuery>({\n queryKey: [Languages_DefaultCountryCodeDocument, variables],\n ...options,\n });\n}\n\nexport const DeleteGuest2FaDocument = {\n operationName: 'deleteGuest2FA',\n operationString: `mutation deleteGuest2FA($deliveryId: Int!, $deliveryMethod: Guest2FADeliveryMethod!, $guestId: BigInt!, $language: String!, $totp: String) {\n deleteGuest2FA(\n deliveryId: $deliveryId\n deliveryMethod: $deliveryMethod\n guestId: $guestId\n language: $language\n totp: $totp\n ) {\n data\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'deleteGuest2FA',\n};\nexport function useDeleteGuest2FaMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuest2FaMutation,\n TError,\n [typeof DeleteGuest2FaDocument, Types.DeleteGuest2FaMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuest2FaMutation,\n TError,\n [typeof DeleteGuest2FaDocument, Types.DeleteGuest2FaMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestAccountDocument = {\n operationName: 'deleteGuestAccount',\n operationString: `mutation deleteGuestAccount($guestId: BigInt!, $input: GuestDeleteAccountInput!, $language: String!) {\n deleteGuestAccount(guestId: $guestId, language: $language, input: $input) {\n data\n error {\n code\n message\n message_noTx: message\n }\n }\n}`,\n originalOpName: 'deleteGuestAccount',\n};\nexport function useDeleteGuestAccountMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestAccountMutation,\n TError,\n [typeof DeleteGuestAccountDocument, Types.DeleteGuestAccountMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestAccountMutation,\n TError,\n [typeof DeleteGuestAccountDocument, Types.DeleteGuestAccountMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestAddressDocument = {\n operationName: 'deleteGuestAddress',\n operationString: `mutation deleteGuestAddress($addressId: Int!, $guestId: BigInt!, $language: String!) {\n deleteGuestAddress(\n addressId: $addressId\n guestId: $guestId\n language: $language\n ) {\n data {\n addressId\n }\n error {\n code\n message\n }\n }\n}`,\n originalOpName: 'deleteGuestAddress',\n};\nexport function useDeleteGuestAddressMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestAddressMutation,\n TError,\n [typeof DeleteGuestAddressDocument, Types.DeleteGuestAddressMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestAddressMutation,\n TError,\n [typeof DeleteGuestAddressDocument, Types.DeleteGuestAddressMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestEmailDocument = {\n operationName: 'deleteGuestEmail',\n operationString: `mutation deleteGuestEmail($emailId: Int!, $guestId: BigInt!, $language: String!, $totp: String!) {\n deleteGuestEmail(\n emailId: $emailId\n guestId: $guestId\n language: $language\n mfaInput: {totp: $totp}\n ) {\n data {\n emailId\n }\n error {\n code\n message\n message_noTx: message\n notifications {\n code\n message\n }\n }\n }\n}`,\n originalOpName: 'deleteGuestEmail',\n};\nexport function useDeleteGuestEmailMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestEmailMutation,\n TError,\n [typeof DeleteGuestEmailDocument, Types.DeleteGuestEmailMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestEmailMutation,\n TError,\n [typeof DeleteGuestEmailDocument, Types.DeleteGuestEmailMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestPaymentMethodDocument = {\n operationName: 'deleteGuestPaymentMethod',\n operationString: `mutation deleteGuestPaymentMethod($guestId: BigInt!, $language: String!, $paymentId: Int!) {\n deleteGuestPaymentMethod(\n guestId: $guestId\n language: $language\n paymentId: $paymentId\n ) {\n data {\n cardNumberMasked\n }\n error {\n code\n message\n notifications {\n message\n }\n }\n }\n}`,\n originalOpName: 'deleteGuestPaymentMethod',\n};\nexport function useDeleteGuestPaymentMethodMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestPaymentMethodMutation,\n TError,\n [typeof DeleteGuestPaymentMethodDocument, Types.DeleteGuestPaymentMethodMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestPaymentMethodMutation,\n TError,\n [typeof DeleteGuestPaymentMethodDocument, Types.DeleteGuestPaymentMethodMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const DeleteGuestPhoneDocument = {\n operationName: 'deleteGuestPhone',\n operationString: `mutation deleteGuestPhone($phoneId: Int!, $guestId: BigInt!, $language: String!, $totp: String!) {\n deleteGuestPhone(\n phoneId: $phoneId\n guestId: $guestId\n language: $language\n mfaInput: {totp: $totp}\n ) {\n data {\n phoneId\n }\n error {\n code\n message\n message_noTx: message\n notifications {\n code\n message\n }\n }\n }\n}`,\n originalOpName: 'deleteGuestPhone',\n};\nexport function useDeleteGuestPhoneMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.DeleteGuestPhoneMutation,\n TError,\n [typeof DeleteGuestPhoneDocument, Types.DeleteGuestPhoneMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.DeleteGuestPhoneMutation,\n TError,\n [typeof DeleteGuestPhoneDocument, Types.DeleteGuestPhoneMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Guest_SubscriptionsDocument = {\n operationName: 'guest_Subscriptions',\n operationString: `query guest_Subscriptions($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n hhonors {\n hhonorsNumber\n summary {\n tier\n tierName\n }\n }\n personalinfo {\n emails(filter: {preferred: true}) {\n emailAddressMasked\n }\n addresses(filter: {preferred: true}) {\n postalCode\n countryName\n country\n }\n }\n subscriptions {\n optOuts {\n survey\n marketing\n global\n }\n marketingSubscriptions\n hhonorsSubscriptions\n }\n }\n}`,\n originalOpName: 'guest_Subscriptions',\n};\nexport function useGuest_SubscriptionsQuery<\n TData = Types.Guest_SubscriptionsQuery,\n TError = DXError\n>(\n variables: Types.Guest_SubscriptionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_SubscriptionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_SubscriptionsQuery, TError, TData>({\n queryKey: [Guest_SubscriptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_SubscriptionsQuery(\n queryClient: QueryClient,\n variables: Types.Guest_SubscriptionsQueryVariables,\n options?: FetchQueryOptions<Types.Guest_SubscriptionsQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_SubscriptionsQuery>({\n queryKey: [Guest_SubscriptionsDocument, variables],\n ...options,\n });\n}\n\nexport const FeatureConfigsDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs($names: [String!]) {\n featureConfigs(names: $names) {\n id: name\n name\n conditions\n config\n }\n}`,\n originalOpName: 'featureConfigs',\n};\nexport function useFeatureConfigsQuery<TData = Types.FeatureConfigsQuery, TError = DXError>(\n variables: Types.FeatureConfigsQueryVariables | null = null,\n options?: Omit<UseQueryOptions<Types.FeatureConfigsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FeatureConfigsQuery, TError, TData>({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureConfigsQuery(\n queryClient: QueryClient,\n variables: Types.FeatureConfigsQueryVariables | null = null,\n options?: FetchQueryOptions<Types.FeatureConfigsQuery>\n) {\n return queryClient.fetchQuery<Types.FeatureConfigsQuery>({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\n\nexport const FeatureTogglesDocument = {\n operationName: 'featureToggles',\n operationString: `query featureToggles($flags: [String]!) {\n featureToggles(names: $flags) {\n name\n enabled\n }\n}`,\n originalOpName: 'featureToggles',\n};\nexport function useFeatureTogglesQuery<TData = Types.FeatureTogglesQuery, TError = DXError>(\n variables: Types.FeatureTogglesQueryVariables,\n options?: Omit<UseQueryOptions<Types.FeatureTogglesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FeatureTogglesQuery, TError, TData>({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureTogglesQuery(\n queryClient: QueryClient,\n variables: Types.FeatureTogglesQueryVariables,\n options?: FetchQueryOptions<Types.FeatureTogglesQuery>\n) {\n return queryClient.fetchQuery<Types.FeatureTogglesQuery>({\n queryKey: [FeatureTogglesDocument, variables],\n ...options,\n });\n}\n\nexport const Geocode_AddressDocument = {\n operationName: 'geocode_address',\n operationString: `query geocode_address($address: String, $language: String!, $placeId: String, $sessionToken: String) {\n geocode(\n language: $language\n address: $address\n placeId: $placeId\n sessionToken: $sessionToken\n ) {\n match {\n id\n name\n placeUri\n type\n }\n }\n}`,\n originalOpName: 'geocode_address',\n};\nexport function useGeocode_AddressQuery<TData = Types.Geocode_AddressQuery, TError = DXError>(\n variables: Types.Geocode_AddressQueryVariables,\n options?: Omit<UseQueryOptions<Types.Geocode_AddressQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Geocode_AddressQuery, TError, TData>({\n queryKey: [Geocode_AddressDocument, variables],\n ...options,\n });\n}\nexport function serverSideGeocode_AddressQuery(\n queryClient: QueryClient,\n variables: Types.Geocode_AddressQueryVariables,\n options?: FetchQueryOptions<Types.Geocode_AddressQuery>\n) {\n return queryClient.fetchQuery<Types.Geocode_AddressQuery>({\n queryKey: [Geocode_AddressDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CountriesDocument = {\n operationName: 'brand_countries',\n operationString: `query brand_countries($after: String, $containsHotels: Boolean, $first: Int, $language: String!, $countryFilter: CountryFilterInput, $regionFilter: CountryStateFilterInput, $cityFilter: CountryCityFilterInput, $getStates: Boolean = false, $getCities: Boolean = false, $getMarketing: Boolean = false, $getCCSMarketing: Boolean = false) {\n countries(\n after: $after\n containsHotels: $containsHotels\n filter: $countryFilter\n first: $first\n language: $language\n sort: {by: name}\n ) {\n code\n callingCode\n dataSubjectRights\n marketingConsent @include(if: $getMarketing)\n marketingOptIn @include(if: $getMarketing)\n marketingOptInForHGV @include(if: $getMarketing)\n marketingOptin @include(if: $getCCSMarketing) {\n dataSubjectRights\n marketingOptinRules {\n category\n optIns {\n autoOptIn\n _id\n customerTextExternal\n name\n subscriptionCodes\n termsAndConditionsBook\n termsAndConditionsJoin\n }\n }\n }\n name: displayName\n states(filter: $regionFilter) @include(if: $getStates) {\n name\n code\n personalDataRequest\n value: code\n cities(filter: $cityFilter, sort: {by: name, order: asc}) @include(if: $getCities) {\n name\n value: name\n brandCodes\n }\n }\n cities(filter: $cityFilter, onlyIfNoStates: true, sort: {by: name, order: asc}) @include(if: $getCities) {\n name\n value: name\n brandCodes\n }\n }\n}`,\n originalOpName: 'brand_countries',\n};\nexport function useBrand_CountriesQuery<TData = Types.Brand_CountriesQuery, TError = DXError>(\n variables: Types.Brand_CountriesQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CountriesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CountriesQuery, TError, TData>({\n queryKey: [Brand_CountriesDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CountriesQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CountriesQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CountriesQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CountriesQuery>({\n queryKey: [Brand_CountriesDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_NonMemberDocument = {\n operationName: 'brand_NonMember',\n operationString: `query brand_NonMember($brandCode: String!, $language: String!, $shouldIncludeFourXGrid: Boolean!) {\n brand(brandCode: $brandCode, language: $language) {\n page(path: \"/\") {\n ...FullWidthImage\n ...RotatingTiles\n ...MosaicGrid\n ...FourXGrid @include(if: $shouldIncludeFourXGrid)\n }\n }\n}\n\n ${FullWidthImageFragmentDoc}\n${RotatingTilesFragmentDoc}\n${MosaicGridFragmentDoc}\n${FourXGridFragmentDoc}`,\n originalOpName: 'brand_NonMember',\n};\nexport function useBrand_NonMemberQuery<TData = Types.Brand_NonMemberQuery, TError = DXError>(\n variables: Types.Brand_NonMemberQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_NonMemberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_NonMemberQuery, TError, TData>({\n queryKey: [Brand_NonMemberDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_NonMemberQuery(\n queryClient: QueryClient,\n variables: Types.Brand_NonMemberQueryVariables,\n options?: FetchQueryOptions<Types.Brand_NonMemberQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_NonMemberQuery>({\n queryKey: [Brand_NonMemberDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHiltonHonorsNumberDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n hhonorsNumber\n isOwner\n isB2BMember\n isTeamMember\n packages {\n packageName\n }\n isSMBMember\n summary {\n tier\n tierName\n totalPoints\n totalPointsFmt\n }\n }\n }\n}`,\n originalOpName: 'guestHiltonHonorsNumber',\n};\nexport function useGuestHiltonHonorsNumberQuery<\n TData = Types.GuestHiltonHonorsNumberQuery,\n TError = DXError\n>(\n variables: Types.GuestHiltonHonorsNumberQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHiltonHonorsNumberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHiltonHonorsNumberQuery, TError, TData>({\n queryKey: [GuestHiltonHonorsNumberDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHiltonHonorsNumberQuery(\n queryClient: QueryClient,\n variables: Types.GuestHiltonHonorsNumberQueryVariables,\n options?: FetchQueryOptions<Types.GuestHiltonHonorsNumberQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHiltonHonorsNumberQuery>({\n queryKey: [GuestHiltonHonorsNumberDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHonorsCardDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n expireDate\n expireDateFmt\n expireDateFmtAccessible: expireDateFmt(format: \"long\", language: $language)\n hhonorsNumber\n isOwnerHGV\n virtualCard {\n cardTier\n cardHeader\n extendedTier\n }\n }\n personalinfo {\n addlName {\n nameFmt\n }\n }\n }\n}`,\n originalOpName: 'guestHonorsCard',\n};\nexport function useGuestHonorsCardQuery<TData = Types.GuestHonorsCardQuery, TError = DXError>(\n variables: Types.GuestHonorsCardQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHonorsCardQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHonorsCardQuery, TError, TData>({\n queryKey: [GuestHonorsCardDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHonorsCardQuery(\n queryClient: QueryClient,\n variables: Types.GuestHonorsCardQueryVariables,\n options?: FetchQueryOptions<Types.GuestHonorsCardQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHonorsCardQuery>({\n queryKey: [GuestHonorsCardDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHotelBenefitsPageDocument = {\n operationName: 'brand_guest_guestStays_hotel',\n operationString: `query brand_guest_guestStays_hotel($language: String!, $guestId: BigInt!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n hhonors {\n hhonorsNumber\n summary {\n tier\n tierName\n totalPointsFmt\n }\n }\n hotelBenefitOptions(filter: {brandCode_not: \"WW\"}) {\n brandCode\n brandHeaderText(format: md)\n brandInstructionsText(format: md)\n benefits {\n benefitId\n description\n disabled\n inputType\n selected\n maxNumBenefits\n benefits {\n benefitId\n description\n inputType\n selected\n disabled\n benefits {\n benefitId\n }\n }\n }\n }\n preferences {\n benefitprefs {\n benefitGroup\n benefitId\n benefitValue\n brandCode\n }\n }\n stays(limit: 1, timeframe: future) {\n arrivalDate\n departureDate\n lengthOfStay\n guestBenefits {\n hotelBenefitSummary {\n headline1 @toLowerCase\n headline2 @toLowerCase\n headline3 @toLowerCase\n items {\n _id\n description\n selected\n }\n }\n }\n hotel {\n brand {\n code\n formalName\n }\n images {\n master(imageVariant: galleryThumbnail) {\n altText\n variants(filter: {size: md}) {\n url\n }\n }\n }\n name\n }\n }\n }\n}`,\n originalOpName: 'guestHotelBenefitsPage',\n};\nexport function useGuestHotelBenefitsPageQuery<\n TData = Types.GuestHotelBenefitsPageQuery,\n TError = DXError\n>(\n variables: Types.GuestHotelBenefitsPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHotelBenefitsPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHotelBenefitsPageQuery, TError, TData>({\n queryKey: [GuestHotelBenefitsPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHotelBenefitsPageQuery(\n queryClient: QueryClient,\n variables: Types.GuestHotelBenefitsPageQueryVariables,\n options?: FetchQueryOptions<Types.GuestHotelBenefitsPageQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHotelBenefitsPageQuery>({\n queryKey: [GuestHotelBenefitsPageDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_Hotel_MyAccountDocument = {\n operationName: 'guest_hotel_MyAccount',\n operationString: `query guest_hotel_MyAccount($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n personalinfo {\n emails {\n validated\n }\n phones {\n validated\n }\n hasUSAddress: hasAddressWithCountry(countryCodes: [\"US\"])\n }\n hhonors {\n hhonorsNumber\n isTeamMember\n isLifetimeDiamond\n isSMBMember\n isB2BMember\n isOwner\n isB2BMember\n isOwnerHGV\n isAmexCardHolder\n summary {\n tier\n tierName\n nextTier\n requalTier\n pointsExpiration\n tierExpiration\n nextTierName\n totalPointsFmt\n qualifiedNights\n qualifiedNightsNext\n qualifiedPoints\n qualifiedPointsNext\n qualifiedPointsFmt\n qualifiedPointsNextFmt\n qualifiedNightsMaint\n rolledOverNights\n showRequalMaintainMessage\n showRequalDowngradeMessage\n milestones {\n applicableNights\n bonusPoints\n bonusPointsFmt\n bonusPointsNext\n bonusPointsNextFmt\n maxBonusPoints\n maxBonusPointsFmt\n maxNights\n nightsNext\n showMilestoneBonusMessage\n }\n }\n amexCoupons {\n _available {\n totalSize\n }\n _held {\n totalSize\n }\n _used {\n totalSize\n }\n available(sort: {by: startDate, order: asc}) {\n checkInDate\n checkOutDate\n codeMasked\n checkOutDateFmt(language: $language)\n endDate\n endDateFmt(language: $language)\n location\n numberOfNights\n offerName\n points\n rewardType\n startDate\n status\n hotel {\n name\n images {\n master(imageVariant: honorsPropertyImageThumbnail) {\n url\n altText\n }\n }\n }\n }\n held {\n checkInDate\n checkOutDate\n codeMasked\n checkOutDateFmt(language: $language)\n endDate\n endDateFmt(language: $language)\n location\n numberOfNights\n offerName\n points\n rewardType\n startDate\n status\n hotel {\n name\n images {\n master(imageVariant: honorsPropertyImageThumbnail) {\n url\n altText\n }\n }\n }\n }\n used {\n checkInDate\n checkOutDate\n codeMasked\n checkOutDateFmt(language: $language)\n endDate\n endDateFmt(language: $language)\n location\n numberOfNights\n offerName\n points\n rewardType\n startDate\n status\n hotel {\n name\n images {\n master(imageVariant: honorsPropertyImageThumbnail) {\n url\n altText\n }\n }\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'guest_hotel_MyAccount',\n};\nexport function useGuest_Hotel_MyAccountQuery<\n TData = Types.Guest_Hotel_MyAccountQuery,\n TError = DXError\n>(\n variables: Types.Guest_Hotel_MyAccountQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_Hotel_MyAccountQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_Hotel_MyAccountQuery, TError, TData>({\n queryKey: [Guest_Hotel_MyAccountDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_Hotel_MyAccountQuery(\n queryClient: QueryClient,\n variables: Types.Guest_Hotel_MyAccountQueryVariables,\n options?: FetchQueryOptions<Types.Guest_Hotel_MyAccountQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_Hotel_MyAccountQuery>({\n queryKey: [Guest_Hotel_MyAccountDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHotelStaysDocument = {\n operationName: 'guest_guestStays_hotel',\n operationString: `query guest_guestStays_hotel($guestId: BigInt!, $language: String!, $limit: Int!, $galleryImageWidth: Int, $galleryImageHeight: Int) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n pastStays: stays(\n limit: $limit\n timeframe: past\n stayStatuses: [checkinRequested, checkout, confirmed, inHouse]\n ) {\n ...StaysFieldsFragment\n }\n futureStays: stays(\n limit: $limit\n stayStatuses: [checkinRequested, checkout, confirmed, inHouse]\n ) {\n ...StaysFieldsFragment\n }\n }\n}\n\n ${StaysFieldsFragmentFragmentDoc}`,\n originalOpName: 'guestHotelStays',\n};\nexport function useGuestHotelStaysQuery<TData = Types.GuestHotelStaysQuery, TError = DXError>(\n variables: Types.GuestHotelStaysQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHotelStaysQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHotelStaysQuery, TError, TData>({\n queryKey: [GuestHotelStaysDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHotelStaysQuery(\n queryClient: QueryClient,\n variables: Types.GuestHotelStaysQueryVariables,\n options?: FetchQueryOptions<Types.GuestHotelStaysQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHotelStaysQuery>({\n queryKey: [GuestHotelStaysDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_OffersDocument = {\n operationName: 'guest_Offers',\n operationString: `query guest_Offers($language: String!, $guestId: BigInt!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n promotions {\n active {\n ...ActivePromotion\n }\n eligible {\n ...EligiblePromotion\n }\n }\n }\n }\n}\n\n ${ActivePromotionFragmentDoc}\n${EligiblePromotionFragmentDoc}`,\n originalOpName: 'guest_Offers',\n};\nexport function useGuest_OffersQuery<TData = Types.Guest_OffersQuery, TError = DXError>(\n variables: Types.Guest_OffersQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_OffersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_OffersQuery, TError, TData>({\n queryKey: [Guest_OffersDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_OffersQuery(\n queryClient: QueryClient,\n variables: Types.Guest_OffersQueryVariables,\n options?: FetchQueryOptions<Types.Guest_OffersQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_OffersQuery>({\n queryKey: [Guest_OffersDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_PartnersDocument = {\n operationName: 'guest_Partners',\n operationString: `query guest_Partners($language: String!, $guestId: BigInt!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n travelPartners {\n name: partnerName\n code: partnerCode\n type: partnerType\n number: partnerNumber\n }\n }\n}`,\n originalOpName: 'guest_Partners',\n};\nexport function useGuest_PartnersQuery<TData = Types.Guest_PartnersQuery, TError = DXError>(\n variables: Types.Guest_PartnersQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_PartnersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_PartnersQuery, TError, TData>({\n queryKey: [Guest_PartnersDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_PartnersQuery(\n queryClient: QueryClient,\n variables: Types.Guest_PartnersQueryVariables,\n options?: FetchQueryOptions<Types.Guest_PartnersQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_PartnersQuery>({\n queryKey: [Guest_PartnersDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_PersonalInfoPageDocument = {\n operationName: 'guest_PersonalInfoPage',\n operationString: `query guest_PersonalInfoPage($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n personalinfo {\n emails(sort: [{by: emailId, order: desc}]) {\n emailId\n emailAddressMasked\n preferred\n validated\n }\n phones(sort: [{by: phoneId, order: desc}]) {\n phoneNumberMasked(format: masked)\n phoneType\n preferred\n phoneId\n phoneCountry\n validated\n phoneNumber2FAStatus\n }\n addresses(sort: [{by: preferred, order: desc}]) {\n addressId\n addressFmt(format: \"stacked\")\n addressLine1 @toTitleCase\n addressLine2 @toTitleCase\n addressLine3 @toTitleCase\n addressType @toTitleCase\n city @toTitleCase\n state @toUpperCase\n postalCode\n countryName\n country\n preferred\n company @toTitleCase\n addressLocalizations {\n addressFmt(format: \"stacked\")\n addressLine1\n addressLine2\n addressLine3\n city\n state\n postalCode\n country\n countryName\n company\n }\n }\n paymentMethods(sort: [{by: preferred, order: desc}]) {\n cardName\n cardCode\n cardExpireDate\n cardExpireDateFmt(format: \"MM/YY\")\n cardNumberLastFour: cardNumberMasked\n cardNumberMaskedFormat: cardNumberMasked(format: masked)\n expired\n paymentId\n preferred\n }\n }\n preferences {\n personalizations {\n preferredLanguage\n }\n }\n hhonors {\n hhonorsNumber\n summary {\n totalPointsFmt\n }\n }\n travelAccounts {\n corporateAccount\n travelAgentNumber\n unlimitedBudgetNumber\n aarpNumber\n aaaNumber\n aaaInternationalNumber\n governmentMilitary\n }\n }\n}`,\n originalOpName: 'guest_PersonalInfoPage',\n};\nexport function useGuest_PersonalInfoPageQuery<\n TData = Types.Guest_PersonalInfoPageQuery,\n TError = DXError\n>(\n variables: Types.Guest_PersonalInfoPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_PersonalInfoPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_PersonalInfoPageQuery, TError, TData>({\n queryKey: [Guest_PersonalInfoPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_PersonalInfoPageQuery(\n queryClient: QueryClient,\n variables: Types.Guest_PersonalInfoPageQueryVariables,\n options?: FetchQueryOptions<Types.Guest_PersonalInfoPageQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_PersonalInfoPageQuery>({\n queryKey: [Guest_PersonalInfoPageDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_PreferencesPageDocument = {\n operationName: 'guest',\n operationString: `query guest($language: String!, $guestId: BigInt!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n preferences {\n roomprefs {\n accessible\n bedtype\n closeToElevator\n highFloor\n mostImportant\n smoking\n }\n stayprefs {\n cr_appFavs\n cr_chnFavs\n cr_tmpSetPoint\n }\n }\n travelPartners {\n active\n partnerCode\n partnerName\n partnerNumber\n preferred\n }\n }\n}`,\n originalOpName: 'guest_PreferencesPage',\n};\nexport function useGuest_PreferencesPageQuery<\n TData = Types.Guest_PreferencesPageQuery,\n TError = DXError\n>(\n variables: Types.Guest_PreferencesPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_PreferencesPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_PreferencesPageQuery, TError, TData>({\n queryKey: [Guest_PreferencesPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_PreferencesPageQuery(\n queryClient: QueryClient,\n variables: Types.Guest_PreferencesPageQueryVariables,\n options?: FetchQueryOptions<Types.Guest_PreferencesPageQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_PreferencesPageQuery>({\n queryKey: [Guest_PreferencesPageDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_RatesDocument = {\n operationName: 'guest_Rates',\n operationString: `query guest_Rates($guestId: BigInt!, $language: String!, $companyCode: String) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n hhonors {\n redemptions(\n sort: {by: pointsRequired}\n filter: {companyCode: $companyCode, redeemable: true}\n ) {\n code: itemNumber\n name: description @toTitleCase\n itemType\n minimumQuantity\n companyCode\n fulfillmentPathCode\n }\n }\n }\n}`,\n originalOpName: 'guest_Rates',\n};\nexport function useGuest_RatesQuery<TData = Types.Guest_RatesQuery, TError = DXError>(\n variables: Types.Guest_RatesQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_RatesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_RatesQuery, TError, TData>({\n queryKey: [Guest_RatesDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_RatesQuery(\n queryClient: QueryClient,\n variables: Types.Guest_RatesQueryVariables,\n options?: FetchQueryOptions<Types.Guest_RatesQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_RatesQuery>({\n queryKey: [Guest_RatesDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_GetHHonorsNumberDocument = {\n operationName: 'guest_GetHHonorsNumber',\n operationString: `query guest_GetHHonorsNumber($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n hhonors {\n hhonorsNumber\n packages {\n packageName\n }\n isSMBMember\n isB2BMember\n }\n }\n}`,\n originalOpName: 'guest_GetHHonorsNumber',\n};\nexport function useGuest_GetHHonorsNumberQuery<\n TData = Types.Guest_GetHHonorsNumberQuery,\n TError = DXError\n>(\n variables: Types.Guest_GetHHonorsNumberQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_GetHHonorsNumberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_GetHHonorsNumberQuery, TError, TData>({\n queryKey: [Guest_GetHHonorsNumberDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_GetHHonorsNumberQuery(\n queryClient: QueryClient,\n variables: Types.Guest_GetHHonorsNumberQueryVariables,\n options?: FetchQueryOptions<Types.Guest_GetHHonorsNumberQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_GetHHonorsNumberQuery>({\n queryKey: [Guest_GetHHonorsNumberDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_GuestGoHiltonDocument = {\n operationName: 'guest_GuestGoHilton',\n operationString: `query guest_GuestGoHilton($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n hhonorsNumber\n isOwner\n isTeamMember\n packages {\n packageName\n }\n summary {\n tierName\n totalPoints\n totalPointsFmt\n }\n }\n personalinfo {\n name {\n firstName\n }\n }\n }\n}`,\n originalOpName: 'guest_GuestGoHilton',\n};\nexport function useGuest_GuestGoHiltonQuery<\n TData = Types.Guest_GuestGoHiltonQuery,\n TError = DXError\n>(\n variables: Types.Guest_GuestGoHiltonQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_GuestGoHiltonQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_GuestGoHiltonQuery, TError, TData>({\n queryKey: [Guest_GuestGoHiltonDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_GuestGoHiltonQuery(\n queryClient: QueryClient,\n variables: Types.Guest_GuestGoHiltonQueryVariables,\n options?: FetchQueryOptions<Types.Guest_GuestGoHiltonQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_GuestGoHiltonQuery>({\n queryKey: [Guest_GuestGoHiltonDocument, variables],\n ...options,\n });\n}\n\nexport const Guest_OfferDocument = {\n operationName: 'guest_Offer',\n operationString: `query guest_Offer($guestId: BigInt!, $language: String!, $promotionType: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n promotions {\n eligible(filter: {promotionType: $promotionType}, first: 1) {\n callCenterOnly\n endDate\n promotionCode\n promotionDescription: alternateDescription\n alternateDescriptionTruncated: alternateDescription @truncate(length: 65)\n promotionName\n termsAndConditions\n }\n }\n }\n }\n}`,\n originalOpName: 'guest_Offer',\n};\nexport function useGuest_OfferQuery<TData = Types.Guest_OfferQuery, TError = DXError>(\n variables: Types.Guest_OfferQueryVariables,\n options?: Omit<UseQueryOptions<Types.Guest_OfferQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Guest_OfferQuery, TError, TData>({\n queryKey: [Guest_OfferDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuest_OfferQuery(\n queryClient: QueryClient,\n variables: Types.Guest_OfferQueryVariables,\n options?: FetchQueryOptions<Types.Guest_OfferQuery>\n) {\n return queryClient.fetchQuery<Types.Guest_OfferQuery>({\n queryKey: [Guest_OfferDocument, variables],\n ...options,\n });\n}\n\nexport const Brand_CmsHgvMaxDocument = {\n operationName: 'brand',\n operationString: `query brand($brandCode: String!, $language: String!, $path: String!) {\n brand(brandCode: $brandCode, language: $language) {\n page(path: $path) {\n fullWidthImage {\n shortDescription\n caption\n captionLink\n label\n imageCompound {\n image {\n variants {\n url\n size\n }\n }\n }\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n }\n }\n }\n}`,\n originalOpName: 'brand_CmsHgvMax',\n};\nexport function useBrand_CmsHgvMaxQuery<TData = Types.Brand_CmsHgvMaxQuery, TError = DXError>(\n variables: Types.Brand_CmsHgvMaxQueryVariables,\n options?: Omit<UseQueryOptions<Types.Brand_CmsHgvMaxQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Brand_CmsHgvMaxQuery, TError, TData>({\n queryKey: [Brand_CmsHgvMaxDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrand_CmsHgvMaxQuery(\n queryClient: QueryClient,\n variables: Types.Brand_CmsHgvMaxQueryVariables,\n options?: FetchQueryOptions<Types.Brand_CmsHgvMaxQuery>\n) {\n return queryClient.fetchQuery<Types.Brand_CmsHgvMaxQuery>({\n queryKey: [Brand_CmsHgvMaxDocument, variables],\n ...options,\n });\n}\n\nexport const GuestHgvMaxDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n id: guestId\n guestId\n hhonors {\n isHGVMax\n }\n }\n}`,\n originalOpName: 'guestHgvMax',\n};\nexport function useGuestHgvMaxQuery<TData = Types.GuestHgvMaxQuery, TError = DXError>(\n variables: Types.GuestHgvMaxQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestHgvMaxQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestHgvMaxQuery, TError, TData>({\n queryKey: [GuestHgvMaxDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestHgvMaxQuery(\n queryClient: QueryClient,\n variables: Types.GuestHgvMaxQueryVariables,\n options?: FetchQueryOptions<Types.GuestHgvMaxQuery>\n) {\n return queryClient.fetchQuery<Types.GuestHgvMaxQuery>({\n queryKey: [GuestHgvMaxDocument, variables],\n ...options,\n });\n}\n\nexport const HonorsTierBenefitsDocument = {\n operationName: 'honorsTierBenefits',\n operationString: `query honorsTierBenefits($language: String!) {\n honorsTierBenefits(language: $language) {\n benefitTier\n benefitTierName\n headline\n description\n image {\n altText\n variants {\n url\n device\n }\n }\n subheading\n items {\n headline\n shortDescription\n iconType\n description\n }\n }\n}`,\n originalOpName: 'honorsTierBenefits',\n};\nexport function useHonorsTierBenefitsQuery<TData = Types.HonorsTierBenefitsQuery, TError = DXError>(\n variables: Types.HonorsTierBenefitsQueryVariables,\n options?: Omit<UseQueryOptions<Types.HonorsTierBenefitsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.HonorsTierBenefitsQuery, TError, TData>({\n queryKey: [HonorsTierBenefitsDocument, variables],\n ...options,\n });\n}\nexport function serverSideHonorsTierBenefitsQuery(\n queryClient: QueryClient,\n variables: Types.HonorsTierBenefitsQueryVariables,\n options?: FetchQueryOptions<Types.HonorsTierBenefitsQuery>\n) {\n return queryClient.fetchQuery<Types.HonorsTierBenefitsQuery>({\n queryKey: [HonorsTierBenefitsDocument, variables],\n ...options,\n });\n}\n\nexport const HotelSummaryOptionsDocument = {\n operationName: 'hotelSummaryOptions',\n operationString: `query hotelSummaryOptions($language: String!, $input: HotelSummaryOptionsInput) {\n hotelSummaryOptions(language: $language, input: $input) {\n hotels {\n _id: ctyhocn\n ctyhocn\n name\n images {\n master {\n altText\n variants {\n url\n size\n }\n }\n }\n tripAdvisorLocationSummary {\n numReviews\n rating\n ratingFmt(decimal: 1)\n ratingImageUrl\n }\n leadRate {\n hhonors {\n lead {\n dailyRmPointsRateFmt\n }\n min {\n dailyRmPointsRateFmt\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'hotelSummaryOptions',\n};\nexport function useHotelSummaryOptionsQuery<\n TData = Types.HotelSummaryOptionsQuery,\n TError = DXError\n>(\n variables: Types.HotelSummaryOptionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.HotelSummaryOptionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.HotelSummaryOptionsQuery, TError, TData>({\n queryKey: [HotelSummaryOptionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideHotelSummaryOptionsQuery(\n queryClient: QueryClient,\n variables: Types.HotelSummaryOptionsQueryVariables,\n options?: FetchQueryOptions<Types.HotelSummaryOptionsQuery>\n) {\n return queryClient.fetchQuery<Types.HotelSummaryOptionsQuery>({\n queryKey: [HotelSummaryOptionsDocument, variables],\n ...options,\n });\n}\n\nexport const CreateGuestDocument = {\n operationName: 'createGuest',\n operationString: `mutation createGuest($input: EnrollInput!, $language: String!, $recaptchaInput: RecaptchaInput) {\n createGuest(input: $input, language: $language, recaptchaInput: $recaptchaInput) {\n data {\n guestId\n hhonorsNumber\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'createGuest',\n};\nexport function useCreateGuestMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateGuestMutation,\n TError,\n [typeof CreateGuestDocument, Types.CreateGuestMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateGuestMutation,\n TError,\n [typeof CreateGuestDocument, Types.CreateGuestMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const LanguagesDocument = {\n operationName: 'languages',\n operationString: `query languages($language: String!) {\n languages(language: $language, sort: [{by: languageName}]) {\n languageCode\n languageName\n }\n}`,\n originalOpName: 'languages',\n};\nexport function useLanguagesQuery<TData = Types.LanguagesQuery, TError = DXError>(\n variables: Types.LanguagesQueryVariables,\n options?: Omit<UseQueryOptions<Types.LanguagesQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.LanguagesQuery, TError, TData>({\n queryKey: [LanguagesDocument, variables],\n ...options,\n });\n}\nexport function serverSideLanguagesQuery(\n queryClient: QueryClient,\n variables: Types.LanguagesQueryVariables,\n options?: FetchQueryOptions<Types.LanguagesQuery>\n) {\n return queryClient.fetchQuery<Types.LanguagesQuery>({\n queryKey: [LanguagesDocument, variables],\n ...options,\n });\n}\n\nexport const NavigationDocument = {\n operationName: 'brand',\n operationString: `query brand($brandCode: String!, $language: String!) {\n brand(brandCode: $brandCode, language: $language) {\n header {\n sections {\n links {\n adaDescription\n label\n url\n isNewWindow\n experimentationConfiguration {\n agentId\n variation\n goal\n value\n }\n secondaryLinks {\n label\n adaDescription\n campaignId\n isNewWindow\n url\n experimentationConfiguration {\n agentId\n variation\n goal\n value\n }\n }\n }\n }\n }\n footer {\n sections {\n links {\n adaDescription\n label\n url\n isNewWindow\n experimentationConfiguration {\n agentId\n variation\n goal\n value\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'navigation',\n};\nexport function useNavigationQuery<TData = Types.NavigationQuery, TError = DXError>(\n variables: Types.NavigationQueryVariables,\n options?: Omit<UseQueryOptions<Types.NavigationQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.NavigationQuery, TError, TData>({\n queryKey: [NavigationDocument, variables],\n ...options,\n });\n}\nexport function serverSideNavigationQuery(\n queryClient: QueryClient,\n variables: Types.NavigationQueryVariables,\n options?: FetchQueryOptions<Types.NavigationQuery>\n) {\n return queryClient.fetchQuery<Types.NavigationQuery>({\n queryKey: [NavigationDocument, variables],\n ...options,\n });\n}\n\nexport const BrandPointsExplorerPageDocument = {\n operationName: 'brand',\n operationString: `query brand($language: String!) {\n brand(language: $language, brandCode: \"HH\") {\n page(path: \"points-explorer\") {\n fullWidthImage {\n headline\n label\n shortDescription\n link {\n adaDescription\n campaignId\n isNewWindow\n label\n url\n }\n imageCompound {\n image {\n altText\n variants(sort: {by: size}) {\n size\n url\n }\n }\n }\n }\n }\n }\n}`,\n originalOpName: 'brandPointsExplorerPage',\n};\nexport function useBrandPointsExplorerPageQuery<\n TData = Types.BrandPointsExplorerPageQuery,\n TError = DXError\n>(\n variables: Types.BrandPointsExplorerPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.BrandPointsExplorerPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.BrandPointsExplorerPageQuery, TError, TData>({\n queryKey: [BrandPointsExplorerPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideBrandPointsExplorerPageQuery(\n queryClient: QueryClient,\n variables: Types.BrandPointsExplorerPageQueryVariables,\n options?: FetchQueryOptions<Types.BrandPointsExplorerPageQuery>\n) {\n return queryClient.fetchQuery<Types.BrandPointsExplorerPageQuery>({\n queryKey: [BrandPointsExplorerPageDocument, variables],\n ...options,\n });\n}\n\nexport const PointsExplorerFaqDocument = {\n operationName: 'faq',\n operationString: `query faq($language: String!) {\n faq(language: $language, faqType: pointsExplorer) {\n title\n subHeading\n shortDescription\n subTopic {\n subTopicName\n faqContent {\n question\n answer(format: md)\n answerOrderedList(format: md)\n answerUnorderedList(format: md)\n }\n }\n }\n}`,\n originalOpName: 'pointsExplorerFaq',\n};\nexport function usePointsExplorerFaqQuery<TData = Types.PointsExplorerFaqQuery, TError = DXError>(\n variables: Types.PointsExplorerFaqQueryVariables,\n options?: Omit<UseQueryOptions<Types.PointsExplorerFaqQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.PointsExplorerFaqQuery, TError, TData>({\n queryKey: [PointsExplorerFaqDocument, variables],\n ...options,\n });\n}\nexport function serverSidePointsExplorerFaqQuery(\n queryClient: QueryClient,\n variables: Types.PointsExplorerFaqQueryVariables,\n options?: FetchQueryOptions<Types.PointsExplorerFaqQuery>\n) {\n return queryClient.fetchQuery<Types.PointsExplorerFaqQuery>({\n queryKey: [PointsExplorerFaqDocument, variables],\n ...options,\n });\n}\n\nexport const ProgramAccountDashboardSummaryDocument = {\n operationName: 'programAccountDashboardSummary',\n operationString: `query programAccountDashboardSummary($language: String!, $guestId: BigInt!, $accountId: Int!) {\n programAccountDashboardSummary(\n language: $language\n guestId: $guestId\n accountId: $accountId\n ) {\n honorsSummary {\n totalPoints\n }\n spendSummary {\n roomSpendSummary {\n roomSpendPastStaysFmt(decimal: 0, strategy: round)\n roomSpendFutureStaysFmt(decimal: 0, strategy: round)\n }\n }\n }\n}`,\n originalOpName: 'programAccountDashboardSummary',\n};\nexport function useProgramAccountDashboardSummaryQuery<\n TData = Types.ProgramAccountDashboardSummaryQuery,\n TError = DXError\n>(\n variables: Types.ProgramAccountDashboardSummaryQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.ProgramAccountDashboardSummaryQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.ProgramAccountDashboardSummaryQuery, TError, TData>({\n queryKey: [ProgramAccountDashboardSummaryDocument, variables],\n ...options,\n });\n}\nexport function serverSideProgramAccountDashboardSummaryQuery(\n queryClient: QueryClient,\n variables: Types.ProgramAccountDashboardSummaryQueryVariables,\n options?: FetchQueryOptions<Types.ProgramAccountDashboardSummaryQuery>\n) {\n return queryClient.fetchQuery<Types.ProgramAccountDashboardSummaryQuery>({\n queryKey: [ProgramAccountDashboardSummaryDocument, variables],\n ...options,\n });\n}\n\nexport const ProgramManagementPageDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n hhonors {\n programAccountSummary {\n accountName\n accountId\n accountStatus\n memberStatus\n memberId\n accountInviteSummary {\n _id\n expireDate\n key\n link\n }\n memberRole\n memberEmailMasked\n }\n }\n }\n}`,\n originalOpName: 'programManagementPage',\n};\nexport function useProgramManagementPageQuery<\n TData = Types.ProgramManagementPageQuery,\n TError = DXError\n>(\n variables: Types.ProgramManagementPageQueryVariables,\n options?: Omit<UseQueryOptions<Types.ProgramManagementPageQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.ProgramManagementPageQuery, TError, TData>({\n queryKey: [ProgramManagementPageDocument, variables],\n ...options,\n });\n}\nexport function serverSideProgramManagementPageQuery(\n queryClient: QueryClient,\n variables: Types.ProgramManagementPageQueryVariables,\n options?: FetchQueryOptions<Types.ProgramManagementPageQuery>\n) {\n return queryClient.fetchQuery<Types.ProgramManagementPageQuery>({\n queryKey: [ProgramManagementPageDocument, variables],\n ...options,\n });\n}\n\nexport const ResendTotpDocument = {\n operationName: 'resendTOTP',\n operationString: `mutation resendTOTP($deliveryId: Int!, $deliveryMethod: Guest2FADeliveryMethod!, $guestId: BigInt!, $language: String!) {\n createGuest2FATotp(\n guestId: $guestId\n language: $language\n deliveryMethod: $deliveryMethod\n deliveryId: $deliveryId\n ) {\n data\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'resendTOTP',\n};\nexport function useResendTotpMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.ResendTotpMutation,\n TError,\n [typeof ResendTotpDocument, Types.ResendTotpMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.ResendTotpMutation,\n TError,\n [typeof ResendTotpDocument, Types.ResendTotpMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Reservation_Hotel_DetailsDocument = {\n operationName: 'reservation_hotel_Details',\n operationString: `query reservation_hotel_Details($language: String!, $confNumber: String!) {\n reservation(language: $language, confNumber: $confNumber) {\n id: confNumber\n confNumber\n guest {\n name {\n firstName\n lastName\n title\n }\n phones(first: 1) {\n phoneNumberMasked(format: masked)\n }\n emails(first: 1) {\n emailAddressMasked @toLowerCase\n }\n addresses(first: 1) {\n addressFmt(format: \"stacked\")\n addressLine1\n addressLine2\n city\n country\n postalCode\n state\n }\n hhonorsNumber\n }\n hotel {\n ctyhocn\n name\n }\n arrivalDate\n arrivalDateFmt(format: \"short\", language: $language)\n departureDate\n departureDateFmt(format: \"short\", language: $language)\n rooms {\n resCreateDate\n roomType {\n roomTypeName\n numBeds\n }\n }\n totalNumAdults\n totalNumChildren\n cost {\n totalAmountBeforeTaxFmt(decimal: 2, format: \"symbol\")\n totalAmountBeforeTax\n currency {\n currencyCode\n }\n }\n }\n}`,\n originalOpName: 'reservation_hotel_Details',\n};\nexport function useReservation_Hotel_DetailsQuery<\n TData = Types.Reservation_Hotel_DetailsQuery,\n TError = DXError\n>(\n variables: Types.Reservation_Hotel_DetailsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Reservation_Hotel_DetailsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Reservation_Hotel_DetailsQuery, TError, TData>({\n queryKey: [Reservation_Hotel_DetailsDocument, variables],\n ...options,\n });\n}\nexport function serverSideReservation_Hotel_DetailsQuery(\n queryClient: QueryClient,\n variables: Types.Reservation_Hotel_DetailsQueryVariables,\n options?: FetchQueryOptions<Types.Reservation_Hotel_DetailsQuery>\n) {\n return queryClient.fetchQuery<Types.Reservation_Hotel_DetailsQuery>({\n queryKey: [Reservation_Hotel_DetailsDocument, variables],\n ...options,\n });\n}\n\nexport const CreateProgramAccountDocument = {\n operationName: 'createProgramAccount',\n operationString: `mutation createProgramAccount($language: String!, $guestId: BigInt!, $input: ProgramAccountsProgramAccountCreateRequestInput!) {\n createProgramAccount(language: $language, guestId: $guestId, input: $input) {\n data {\n memberId\n accountId\n }\n error {\n message\n code\n }\n notifications {\n message\n title\n }\n }\n}`,\n originalOpName: 'createProgramAccount',\n};\nexport function useCreateProgramAccountMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateProgramAccountMutation,\n TError,\n [typeof CreateProgramAccountDocument, Types.CreateProgramAccountMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateProgramAccountMutation,\n TError,\n [typeof CreateProgramAccountDocument, Types.CreateProgramAccountMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_CreateProgramAccountEmailTotpValidationDocument = {\n operationName: 'createProgramAccountEmailTotpValidation',\n operationString: `mutation createProgramAccountEmailTotpValidation($guestId: Int!, $language: String!, $input: ProgramAccountsSmbMemberInput!, $mfaInput: ProgramAccountsMemberTOTPValidationInput!) {\n createProgramAccountEmailTotpValidation(\n guestId: $guestId\n language: $language\n input: $input\n mfaInput: $mfaInput\n ) {\n _id\n data\n error {\n _id\n code\n context\n message\n notifications {\n _id\n code\n fields\n message\n }\n }\n notifications {\n _id\n message\n title\n }\n }\n}`,\n originalOpName: 'smb_CreateProgramAccountEmailTotpValidation',\n};\nexport function useSmb_CreateProgramAccountEmailTotpValidationMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_CreateProgramAccountEmailTotpValidationMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountEmailTotpValidationDocument,\n Types.Smb_CreateProgramAccountEmailTotpValidationMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_CreateProgramAccountEmailTotpValidationMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountEmailTotpValidationDocument,\n Types.Smb_CreateProgramAccountEmailTotpValidationMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_CreateProgramAccountEmailValidationDocument = {\n operationName: 'createProgramAccountEmailValidation',\n operationString: `mutation createProgramAccountEmailValidation($guestId: BigInt!, $language: String!, $accountId: Int!, $memberId: Int!) {\n createProgramAccountEmailValidation(\n guestId: $guestId\n language: $language\n input: {accountId: $accountId, memberId: $memberId}\n ) {\n data {\n accountId\n memberId\n status\n }\n error {\n _id\n code\n message\n notifications {\n code\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_CreateProgramAccountEmailValidation',\n};\nexport function useSmb_CreateProgramAccountEmailValidationMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_CreateProgramAccountEmailValidationMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountEmailValidationDocument,\n Types.Smb_CreateProgramAccountEmailValidationMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_CreateProgramAccountEmailValidationMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountEmailValidationDocument,\n Types.Smb_CreateProgramAccountEmailValidationMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_CreateProgramAccountHonorsPointsTransferDocument = {\n operationName: 'createProgramAccountHonorsPointsTransfer',\n operationString: `mutation createProgramAccountHonorsPointsTransfer($guestId: BigInt!, $language: String!, $accountId: Int!, $input: ProgramAccountsHonorsPointsTransferInput!, $mfaInput: ProgramAccountsMFAInput) {\n createProgramAccountHonorsPointsTransfer(\n guestId: $guestId\n language: $language\n accountId: $accountId\n input: $input\n mfaInput: $mfaInput\n ) {\n data {\n _id\n accessToken\n status\n }\n notifications {\n title\n message\n }\n error {\n code\n message\n context\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_CreateProgramAccountHonorsPointsTransfer',\n};\nexport function useSmb_CreateProgramAccountHonorsPointsTransferMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_CreateProgramAccountHonorsPointsTransferMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountHonorsPointsTransferDocument,\n Types.Smb_CreateProgramAccountHonorsPointsTransferMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_CreateProgramAccountHonorsPointsTransferMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountHonorsPointsTransferDocument,\n Types.Smb_CreateProgramAccountHonorsPointsTransferMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_CreateProgramAccountInvitationLinkDocument = {\n operationName: 'createProgramAccountInvitationLink',\n operationString: `mutation createProgramAccountInvitationLink($guestId: BigInt!, $language: String!, $accountId: Int!) {\n createProgramAccountInvitationLink(\n guestId: $guestId\n language: $language\n accountId: $accountId\n ) {\n data\n error {\n code\n notifications {\n code\n }\n }\n }\n}`,\n originalOpName: 'smb_CreateProgramAccountInvitationLink',\n};\nexport function useSmb_CreateProgramAccountInvitationLinkMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_CreateProgramAccountInvitationLinkMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountInvitationLinkDocument,\n Types.Smb_CreateProgramAccountInvitationLinkMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_CreateProgramAccountInvitationLinkMutation,\n TError,\n [\n typeof Smb_CreateProgramAccountInvitationLinkDocument,\n Types.Smb_CreateProgramAccountInvitationLinkMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const CreateProgramAccountMemberDocument = {\n operationName: 'createProgramAccountMember',\n operationString: `mutation createProgramAccountMember($language: String!, $accountId: Int!, $input: ProgramAccountsProgramAccountMemberInput!) {\n createProgramAccountMember(\n language: $language\n accountId: $accountId\n input: $input\n ) {\n data {\n accountId\n memberId\n role\n status\n emailAddress: emailAddressMasked\n }\n }\n}`,\n originalOpName: 'createProgramAccountMember',\n};\nexport function useCreateProgramAccountMemberMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.CreateProgramAccountMemberMutation,\n TError,\n [typeof CreateProgramAccountMemberDocument, Types.CreateProgramAccountMemberMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.CreateProgramAccountMemberMutation,\n TError,\n [typeof CreateProgramAccountMemberDocument, Types.CreateProgramAccountMemberMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_DeleteProgramAccountMemberDocument = {\n operationName: 'deleteProgramAccountMember',\n operationString: `mutation deleteProgramAccountMember($guestId: BigInt!, $input: ProgramAccountsMemberIdInput!, $language: String!, $mfaInput: ProgramAccountsMFAInput) {\n deleteProgramAccountMember(\n guestId: $guestId\n input: $input\n language: $language\n mfaInput: $mfaInput\n ) {\n data {\n status\n accessToken\n }\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_DeleteProgramAccountMember',\n};\nexport function useSmb_DeleteProgramAccountMemberMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.Smb_DeleteProgramAccountMemberMutation,\n TError,\n [\n typeof Smb_DeleteProgramAccountMemberDocument,\n Types.Smb_DeleteProgramAccountMemberMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_DeleteProgramAccountMemberMutation,\n TError,\n [\n typeof Smb_DeleteProgramAccountMemberDocument,\n Types.Smb_DeleteProgramAccountMemberMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const FaqDocument = {\n operationName: 'faq',\n operationString: `query faq($language: String!, $description: FaqType!) {\n faq(faqType: $description, language: $language) {\n title\n shortDescription\n subHeading\n subTopic {\n subTopicName\n faqContent {\n question\n answer(format: md)\n answerOrderedList\n answerUnorderedList\n }\n }\n }\n}`,\n originalOpName: 'faq',\n};\nexport function useFaqQuery<TData = Types.FaqQuery, TError = DXError>(\n variables: Types.FaqQueryVariables,\n options?: Omit<UseQueryOptions<Types.FaqQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FaqQuery, TError, TData>({\n queryKey: [FaqDocument, variables],\n ...options,\n });\n}\nexport function serverSideFaqQuery(\n queryClient: QueryClient,\n variables: Types.FaqQueryVariables,\n options?: FetchQueryOptions<Types.FaqQuery>\n) {\n return queryClient.fetchQuery<Types.FaqQuery>({ queryKey: [FaqDocument, variables], ...options });\n}\n\nexport const Smb_FilterProgramAccountsDocument = {\n operationName: 'programAccounts',\n operationString: `query programAccounts($guestId: BigInt!, $language: String!, $accountId: BigInt!) {\n programAccounts(\n guestId: $guestId\n language: $language\n filter: {accountId: $accountId}\n ) {\n accountId\n memberStatus\n memberId\n accountName\n accountStatus\n }\n}`,\n originalOpName: 'smb_FilterProgramAccounts',\n};\nexport function useSmb_FilterProgramAccountsQuery<\n TData = Types.Smb_FilterProgramAccountsQuery,\n TError = DXError\n>(\n variables: Types.Smb_FilterProgramAccountsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_FilterProgramAccountsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_FilterProgramAccountsQuery, TError, TData>({\n queryKey: [Smb_FilterProgramAccountsDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_FilterProgramAccountsQuery(\n queryClient: QueryClient,\n variables: Types.Smb_FilterProgramAccountsQueryVariables,\n options?: FetchQueryOptions<Types.Smb_FilterProgramAccountsQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_FilterProgramAccountsQuery>({\n queryKey: [Smb_FilterProgramAccountsDocument, variables],\n ...options,\n });\n}\n\nexport const SmbMarketingBannerOffersDocument = {\n operationName: 'bannerOffers',\n operationString: `query bannerOffers($name: String!, $language: String!) {\n bannerOffers(name: $name, language: $language) {\n headline\n image {\n altText\n variants(sort: {by: size}) {\n size\n url\n }\n }\n label\n link {\n adaDescription\n isNewWindow\n label\n url\n }\n segmentIds\n shortDescription\n }\n}`,\n originalOpName: 'smbMarketingBannerOffers',\n};\nexport function useSmbMarketingBannerOffersQuery<\n TData = Types.SmbMarketingBannerOffersQuery,\n TError = DXError\n>(\n variables: Types.SmbMarketingBannerOffersQueryVariables,\n options?: Omit<UseQueryOptions<Types.SmbMarketingBannerOffersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.SmbMarketingBannerOffersQuery, TError, TData>({\n queryKey: [SmbMarketingBannerOffersDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmbMarketingBannerOffersQuery(\n queryClient: QueryClient,\n variables: Types.SmbMarketingBannerOffersQueryVariables,\n options?: FetchQueryOptions<Types.SmbMarketingBannerOffersQuery>\n) {\n return queryClient.fetchQuery<Types.SmbMarketingBannerOffersQuery>({\n queryKey: [SmbMarketingBannerOffersDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_MemberIdAndStatusDocument = {\n operationName: 'programAccounts',\n operationString: `query programAccounts($guestId: BigInt!, $language: String!) {\n programAccounts(guestId: $guestId, language: $language) {\n accountId\n accountName\n accountStatus\n memberId\n memberStatus\n }\n}`,\n originalOpName: 'smb_MemberIdAndStatus',\n};\nexport function useSmb_MemberIdAndStatusQuery<\n TData = Types.Smb_MemberIdAndStatusQuery,\n TError = DXError\n>(\n variables: Types.Smb_MemberIdAndStatusQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_MemberIdAndStatusQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_MemberIdAndStatusQuery, TError, TData>({\n queryKey: [Smb_MemberIdAndStatusDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_MemberIdAndStatusQuery(\n queryClient: QueryClient,\n variables: Types.Smb_MemberIdAndStatusQueryVariables,\n options?: FetchQueryOptions<Types.Smb_MemberIdAndStatusQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_MemberIdAndStatusQuery>({\n queryKey: [Smb_MemberIdAndStatusDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountDetailsDocument = {\n operationName: 'programAccount',\n operationString: `query programAccount($guestId: BigInt!, $language: String!, $accountId: Int!) {\n programAccount(guestId: $guestId, language: $language, accountId: $accountId) {\n accountId\n memberId\n invitationLink\n inviteKeyExpireDate\n inviteKeyExpireDateFmt(format: \"long\")\n status\n created {\n modificationTime\n }\n emailDomains\n contactInfo {\n name\n address {\n addressFmt(format: \"stacked\")\n addressLine1\n addressLine2\n country\n postalCode\n city\n state\n }\n phone {\n phoneNumberMasked(format: masked)\n phoneExtension\n phoneCountry\n }\n websiteDomain\n }\n }\n}`,\n originalOpName: 'smb_ProgramAccountDetails',\n};\nexport function useSmb_ProgramAccountDetailsQuery<\n TData = Types.Smb_ProgramAccountDetailsQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountDetailsQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_ProgramAccountDetailsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_ProgramAccountDetailsQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountDetailsDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountDetailsQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountDetailsQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountDetailsQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountDetailsQuery>({\n queryKey: [Smb_ProgramAccountDetailsDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramDataFromInviteKeyDocument = {\n operationName: 'programAccountInviteKey',\n operationString: `query programAccountInviteKey($guestId: BigInt!, $inviteKey: String!, $language: String!) {\n programAccountInviteKey(\n guestId: $guestId\n inviteKey: $inviteKey\n language: $language\n ) {\n accountName\n accountId\n memberStatus\n memberId\n emailDomains\n }\n}`,\n originalOpName: 'smb_ProgramDataFromInviteKey',\n};\nexport function useSmb_ProgramDataFromInviteKeyQuery<\n TData = Types.Smb_ProgramDataFromInviteKeyQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramDataFromInviteKeyQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Smb_ProgramDataFromInviteKeyQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Smb_ProgramDataFromInviteKeyQuery, TError, TData>({\n queryKey: [Smb_ProgramDataFromInviteKeyDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramDataFromInviteKeyQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramDataFromInviteKeyQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramDataFromInviteKeyQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramDataFromInviteKeyQuery>({\n queryKey: [Smb_ProgramDataFromInviteKeyDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountMemberDocument = {\n operationName: 'programAccountMember',\n operationString: `query programAccountMember($guestId: BigInt!, $language: String!, $input: ProgramAccountsSmbMemberInput!) {\n programAccountMember(guestId: $guestId, language: $language, input: $input) {\n accountId\n guestId\n emailAddress: emailAddressMasked\n emailLastVerifiedDateFmt(language: $language, format: \"short\")\n memberId\n status\n role\n }\n}`,\n originalOpName: 'smb_ProgramAccountMember',\n};\nexport function useSmb_ProgramAccountMemberQuery<\n TData = Types.Smb_ProgramAccountMemberQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountMemberQueryVariables,\n options?: Omit<UseQueryOptions<Types.Smb_ProgramAccountMemberQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.Smb_ProgramAccountMemberQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountMemberDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountMemberQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountMemberQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountMemberQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountMemberQuery>({\n queryKey: [Smb_ProgramAccountMemberDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountMembersListDocument = {\n operationName: 'programAccountMembers',\n operationString: `query programAccountMembers($guestId: BigInt!, $input: ProgramAccountsProgramAccountMembersInput!, $language: String!, $after: String!) {\n _programAccountMembers {\n start\n end\n totalSize\n nextCursor\n prevCursor\n }\n programAccountMembers(\n guestId: $guestId\n input: $input\n language: $language\n first: 10\n after: $after\n ) {\n _id\n emailAddress\n role\n memberId\n status\n guestId\n }\n}`,\n originalOpName: 'smb_ProgramAccountMembersList',\n};\nexport function useSmb_ProgramAccountMembersListQuery<\n TData = Types.Smb_ProgramAccountMembersListQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountMembersListQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Smb_ProgramAccountMembersListQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Smb_ProgramAccountMembersListQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountMembersListDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountMembersListQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountMembersListQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountMembersListQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountMembersListQuery>({\n queryKey: [Smb_ProgramAccountMembersListDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_ProgramAccountNumberOfMembersByTypeDocument = {\n operationName: 'programAccountMembers',\n operationString: `query programAccountMembers($guestId: BigInt!, $input: ProgramAccountsProgramAccountMembersInput!, $language: String!, $after: String!) {\n _programAccountMembers {\n size\n }\n programAccountMembers(\n guestId: $guestId\n input: $input\n language: $language\n after: $after\n ) {\n _id\n }\n}`,\n originalOpName: 'smb_ProgramAccountNumberOfMembersByType',\n};\nexport function useSmb_ProgramAccountNumberOfMembersByTypeQuery<\n TData = Types.Smb_ProgramAccountNumberOfMembersByTypeQuery,\n TError = DXError\n>(\n variables: Types.Smb_ProgramAccountNumberOfMembersByTypeQueryVariables,\n options?: Omit<\n UseQueryOptions<Types.Smb_ProgramAccountNumberOfMembersByTypeQuery, TError, TData>,\n 'queryKey'\n >\n) {\n return useQuery<Types.Smb_ProgramAccountNumberOfMembersByTypeQuery, TError, TData>({\n queryKey: [Smb_ProgramAccountNumberOfMembersByTypeDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmb_ProgramAccountNumberOfMembersByTypeQuery(\n queryClient: QueryClient,\n variables: Types.Smb_ProgramAccountNumberOfMembersByTypeQueryVariables,\n options?: FetchQueryOptions<Types.Smb_ProgramAccountNumberOfMembersByTypeQuery>\n) {\n return queryClient.fetchQuery<Types.Smb_ProgramAccountNumberOfMembersByTypeQuery>({\n queryKey: [Smb_ProgramAccountNumberOfMembersByTypeDocument, variables],\n ...options,\n });\n}\n\nexport const ProgramAccountInviteKeyDocument = {\n operationName: 'programAccountInviteKey',\n operationString: `query programAccountInviteKey($guestId: BigInt!, $language: String!, $inviteKey: String!) {\n programAccountInviteKey(\n guestId: $guestId\n language: $language\n inviteKey: $inviteKey\n ) {\n accountStatus\n accountId\n accountName\n memberId\n memberStatus\n }\n}`,\n originalOpName: 'programAccountInviteKey',\n};\nexport function useProgramAccountInviteKeyQuery<\n TData = Types.ProgramAccountInviteKeyQuery,\n TError = DXError\n>(\n variables: Types.ProgramAccountInviteKeyQueryVariables,\n options?: Omit<UseQueryOptions<Types.ProgramAccountInviteKeyQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.ProgramAccountInviteKeyQuery, TError, TData>({\n queryKey: [ProgramAccountInviteKeyDocument, variables],\n ...options,\n });\n}\nexport function serverSideProgramAccountInviteKeyQuery(\n queryClient: QueryClient,\n variables: Types.ProgramAccountInviteKeyQueryVariables,\n options?: FetchQueryOptions<Types.ProgramAccountInviteKeyQuery>\n) {\n return queryClient.fetchQuery<Types.ProgramAccountInviteKeyQuery>({\n queryKey: [ProgramAccountInviteKeyDocument, variables],\n ...options,\n });\n}\n\nexport const SmbTermsAndConditionsDocument = {\n operationName: 'policy',\n operationString: `query policy($language: String!) {\n policy(language: $language, policyDocumentType: smbTermsAndConditions) {\n name\n description\n shortDescription\n content {\n heading(format: md)\n description(format: md)\n orderedList(format: md)\n unorderedList(format: md)\n __typename\n }\n __typename\n }\n}`,\n originalOpName: 'smbTermsAndConditions',\n};\nexport function useSmbTermsAndConditionsQuery<\n TData = Types.SmbTermsAndConditionsQuery,\n TError = DXError\n>(\n variables: Types.SmbTermsAndConditionsQueryVariables,\n options?: Omit<UseQueryOptions<Types.SmbTermsAndConditionsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.SmbTermsAndConditionsQuery, TError, TData>({\n queryKey: [SmbTermsAndConditionsDocument, variables],\n ...options,\n });\n}\nexport function serverSideSmbTermsAndConditionsQuery(\n queryClient: QueryClient,\n variables: Types.SmbTermsAndConditionsQueryVariables,\n options?: FetchQueryOptions<Types.SmbTermsAndConditionsQuery>\n) {\n return queryClient.fetchQuery<Types.SmbTermsAndConditionsQuery>({\n queryKey: [SmbTermsAndConditionsDocument, variables],\n ...options,\n });\n}\n\nexport const Smb_UpdateProgramAccountDocument = {\n operationName: 'updateProgramAccount',\n operationString: `mutation updateProgramAccount($guestId: BigInt!, $language: String!, $accountId: Int!, $input: ProgramAccountsProgramAccountUpdateRequestInput!, $mfaInput: ProgramAccountsMFAInput) {\n updateProgramAccount(\n guestId: $guestId\n language: $language\n accountId: $accountId\n input: $input\n mfaInput: $mfaInput\n ) {\n data {\n accountId\n accountStatus\n accessToken\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_UpdateProgramAccount',\n};\nexport function useSmb_UpdateProgramAccountMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.Smb_UpdateProgramAccountMutation,\n TError,\n [typeof Smb_UpdateProgramAccountDocument, Types.Smb_UpdateProgramAccountMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_UpdateProgramAccountMutation,\n TError,\n [typeof Smb_UpdateProgramAccountDocument, Types.Smb_UpdateProgramAccountMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const Smb_UpdateProgramAccountMemberEmailTotpDocument = {\n operationName: 'updateProgramAccountMember',\n operationString: `mutation updateProgramAccountMember($accountId: Int!, $language: String!, $memberId: Int!, $input: ProgramAccountsUpdateMemberInput!, $mfaInput: ProgramAccountsMFAInput!) {\n updateProgramAccountMember(\n accountId: $accountId\n language: $language\n memberId: $memberId\n input: $input\n mfaInput: $mfaInput\n ) {\n data {\n accessToken\n emailAddressMasked\n status\n }\n error {\n code\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'smb_UpdateProgramAccountMemberEmailTotp',\n};\nexport function useSmb_UpdateProgramAccountMemberEmailTotpMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.Smb_UpdateProgramAccountMemberEmailTotpMutation,\n TError,\n [\n typeof Smb_UpdateProgramAccountMemberEmailTotpDocument,\n Types.Smb_UpdateProgramAccountMemberEmailTotpMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.Smb_UpdateProgramAccountMemberEmailTotpMutation,\n TError,\n [\n typeof Smb_UpdateProgramAccountMemberEmailTotpDocument,\n Types.Smb_UpdateProgramAccountMemberEmailTotpMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const TravelPartnersDocument = {\n operationName: 'travelPartners',\n operationString: `query travelPartners($language: String!) {\n travelPartners(language: $language, sort: {by: partnerName}) {\n partnerCode\n partnerName\n }\n}`,\n originalOpName: 'travelPartners',\n};\nexport function useTravelPartnersQuery<TData = Types.TravelPartnersQuery, TError = DXError>(\n variables: Types.TravelPartnersQueryVariables,\n options?: Omit<UseQueryOptions<Types.TravelPartnersQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.TravelPartnersQuery, TError, TData>({\n queryKey: [TravelPartnersDocument, variables],\n ...options,\n });\n}\nexport function serverSideTravelPartnersQuery(\n queryClient: QueryClient,\n variables: Types.TravelPartnersQueryVariables,\n options?: FetchQueryOptions<Types.TravelPartnersQuery>\n) {\n return queryClient.fetchQuery<Types.TravelPartnersQuery>({\n queryKey: [TravelPartnersDocument, variables],\n ...options,\n });\n}\n\nexport const UpdateGuestAccountPreferencesDocument = {\n operationName: 'updateGuestAccountPreferences',\n operationString: `mutation updateGuestAccountPreferences($language: String!, $guestId: BigInt!, $input: GuestAccountPreferencesInput!) {\n updateGuestAccountPreferences(\n guestId: $guestId\n input: $input\n language: $language\n ) {\n data {\n roomprefs {\n accessible\n bedtype\n closeToElevator\n highFloor\n mostImportant\n smoking\n }\n travelPartners {\n active\n enrollmentDate\n enrollmentDateFmt\n expireDate\n expireDateFmt\n partnerCode\n partnerName\n partnerNumber\n partnerType\n preferred\n }\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n notifications {\n message\n title\n }\n }\n}`,\n originalOpName: 'updateGuestAccountPreferences',\n};\nexport function useUpdateGuestAccountPreferencesMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestAccountPreferencesMutation,\n TError,\n [\n typeof UpdateGuestAccountPreferencesDocument,\n Types.UpdateGuestAccountPreferencesMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestAccountPreferencesMutation,\n TError,\n [\n typeof UpdateGuestAccountPreferencesDocument,\n Types.UpdateGuestAccountPreferencesMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestAddressesDocument = {\n operationName: 'updateGuestAddresses',\n operationString: `mutation updateGuestAddresses($guestId: BigInt!, $language: String!, $input: [GuestAddressInput]!) {\n updateGuestAddresses(guestId: $guestId, language: $language, input: $input) {\n data {\n addressId\n addressLine1\n addressLine2\n addressType\n city\n company\n country\n postalCode\n preferred\n state\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateGuestAddresses',\n};\nexport function useUpdateGuestAddressesMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestAddressesMutation,\n TError,\n [typeof UpdateGuestAddressesDocument, Types.UpdateGuestAddressesMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestAddressesMutation,\n TError,\n [typeof UpdateGuestAddressesDocument, Types.UpdateGuestAddressesMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestBenefitPreferencesDocument = {\n operationName: 'updateGuestBenefitPreferences',\n operationString: `mutation updateGuestBenefitPreferences($input: [GuestBenefitPreferencesInput]!, $guestId: BigInt!) {\n updateGuestBenefitPreferences(guestId: $guestId, input: $input) {\n data {\n brandCode\n benefitId\n benefitValue\n }\n error {\n code\n notifications {\n code\n message\n message\n }\n message\n code\n }\n }\n}`,\n originalOpName: 'updateGuestBenefitPreferences',\n};\nexport function useUpdateGuestBenefitPreferencesMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestBenefitPreferencesMutation,\n TError,\n [\n typeof UpdateGuestBenefitPreferencesDocument,\n Types.UpdateGuestBenefitPreferencesMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestBenefitPreferencesMutation,\n TError,\n [\n typeof UpdateGuestBenefitPreferencesDocument,\n Types.UpdateGuestBenefitPreferencesMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestEmailsDocument = {\n operationName: 'updateGuestEmails',\n operationString: `mutation updateGuestEmails($guestId: BigInt!, $language: String!, $input: [GuestEmailInput]!, $totp: String!) {\n updateGuestEmails(\n guestId: $guestId\n language: $language\n input: $input\n mfaInput: {totp: $totp}\n ) {\n data {\n emailId\n emailAddressMasked\n preferred\n }\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateGuestEmails',\n};\nexport function useUpdateGuestEmailsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestEmailsMutation,\n TError,\n [typeof UpdateGuestEmailsDocument, Types.UpdateGuestEmailsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestEmailsMutation,\n TError,\n [typeof UpdateGuestEmailsDocument, Types.UpdateGuestEmailsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestPasswordDocument = {\n operationName: 'updateGuestPassword',\n operationString: `mutation updateGuestPassword($guestId: BigInt!, $input: GuestSetPasswordInput!, $language: String!) {\n updateGuestPassword(language: $language, guestId: $guestId, input: $input) {\n data\n error {\n code\n message\n }\n }\n}`,\n originalOpName: 'updateGuestPassword',\n};\nexport function useUpdateGuestPasswordMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestPasswordMutation,\n TError,\n [typeof UpdateGuestPasswordDocument, Types.UpdateGuestPasswordMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestPasswordMutation,\n TError,\n [typeof UpdateGuestPasswordDocument, Types.UpdateGuestPasswordMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestPaymentMethodsDocument = {\n operationName: 'updateGuestPaymentMethods',\n operationString: `mutation updateGuestPaymentMethods($guestId: BigInt!, $language: String!, $input: [GuestPaymentMethodInput]!) {\n updateGuestPaymentMethods(guestId: $guestId, language: $language, input: $input) {\n data {\n paymentId\n cardCode\n cardName\n cardExpireDate\n lastFour: cardNumberMasked(format: lastFour)\n cardNumberMasked: cardNumberMasked(format: masked)\n cardExpireDateMed: cardExpireDateFmt(format: \"medium\")\n cardExpireDateLong: cardExpireDateFmt(format: \"long\")\n expired\n preferred\n }\n error {\n code\n message\n context\n notifications {\n message\n code\n fields\n }\n }\n }\n}`,\n originalOpName: 'updateGuestPaymentMethods',\n};\nexport function useUpdateGuestPaymentMethodsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestPaymentMethodsMutation,\n TError,\n [typeof UpdateGuestPaymentMethodsDocument, Types.UpdateGuestPaymentMethodsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestPaymentMethodsMutation,\n TError,\n [typeof UpdateGuestPaymentMethodsDocument, Types.UpdateGuestPaymentMethodsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestPhoneNumbersDocument = {\n operationName: 'updateGuestPhoneNumbers',\n operationString: `mutation updateGuestPhoneNumbers($guestId: BigInt!, $language: String!, $input: [GuestPhoneInput]!, $totp: String!) {\n updateGuestPhoneNumbers(\n guestId: $guestId\n language: $language\n input: $input\n mfaInput: {totp: $totp}\n ) {\n data {\n phoneId\n phoneType\n phoneExtension\n phoneNumberMasked(format: masked)\n preferred\n validated\n phoneNumber2FAStatus\n phoneCountry\n }\n error {\n code\n context\n message\n message_noTx: message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateGuestPhoneNumbers',\n};\nexport function useUpdateGuestPhoneNumbersMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestPhoneNumbersMutation,\n TError,\n [typeof UpdateGuestPhoneNumbersDocument, Types.UpdateGuestPhoneNumbersMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestPhoneNumbersMutation,\n TError,\n [typeof UpdateGuestPhoneNumbersDocument, Types.UpdateGuestPhoneNumbersMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestPreferredLanguageDocument = {\n operationName: 'updateGuestPersonalizations',\n operationString: `mutation updateGuestPersonalizations($language: String!, $guestId: BigInt!, $input: GuestPersonalizationsInput!) {\n updateGuestPersonalizations(\n language: $language\n guestId: $guestId\n input: $input\n ) {\n data {\n preferredLanguage\n }\n error {\n message\n context\n notifications {\n message\n fields\n }\n }\n }\n}`,\n originalOpName: 'updateGuestPreferredLanguage',\n};\nexport function useUpdateGuestPreferredLanguageMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestPreferredLanguageMutation,\n TError,\n [\n typeof UpdateGuestPreferredLanguageDocument,\n Types.UpdateGuestPreferredLanguageMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestPreferredLanguageMutation,\n TError,\n [\n typeof UpdateGuestPreferredLanguageDocument,\n Types.UpdateGuestPreferredLanguageMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestTravelAccountsDocument = {\n operationName: 'updateGuestTravelAccounts',\n operationString: `mutation updateGuestTravelAccounts($guestId: BigInt!, $language: String!, $input: GuestTravelAccountsInput!) {\n updateGuestTravelAccounts(guestId: $guestId, language: $language, input: $input) {\n data {\n corporateAccount\n travelAgentNumber\n unlimitedBudgetNumber\n aarpNumber\n aaaNumber\n aaaInternationalNumber\n travelAgentNumber\n governmentMilitary\n }\n error {\n code\n message\n }\n }\n}`,\n originalOpName: 'updateGuestTravelAccounts',\n};\nexport function useUpdateGuestTravelAccountsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestTravelAccountsMutation,\n TError,\n [typeof UpdateGuestTravelAccountsDocument, Types.UpdateGuestTravelAccountsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestTravelAccountsMutation,\n TError,\n [typeof UpdateGuestTravelAccountsDocument, Types.UpdateGuestTravelAccountsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestUsernameDocument = {\n operationName: 'updateGuestUsername',\n operationString: `mutation updateGuestUsername($guestId: BigInt!, $language: String!, $confirmNewUsername: String!, $newUsername: String!) {\n updateGuestUsername(\n guestId: $guestId\n language: $language\n input: {confirmNewUsername: $confirmNewUsername, newUsername: $newUsername}\n ) {\n data\n error {\n code\n message\n }\n }\n}`,\n originalOpName: 'updateGuestUsername',\n};\nexport function useUpdateGuestUsernameMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateGuestUsernameMutation,\n TError,\n [typeof UpdateGuestUsernameDocument, Types.UpdateGuestUsernameMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestUsernameMutation,\n TError,\n [typeof UpdateGuestUsernameDocument, Types.UpdateGuestUsernameMutationVariables],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateGuestMarketingSubscriptionOptOutDocument = {\n operationName: 'updateGuestMarketingSubscriptionOptOut',\n operationString: `mutation updateGuestMarketingSubscriptionOptOut($language: String!, $email: String!) {\n updateGuestMarketingSubscriptionOptOut(\n language: $language\n emailAddress: $email\n ) {\n data\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateGuestMarketingSubscriptionOptOut',\n};\nexport function useUpdateGuestMarketingSubscriptionOptOutMutation<\n TError = DXError,\n TContext = unknown\n>(\n options: UseMutationOptions<\n Types.UpdateGuestMarketingSubscriptionOptOutMutation,\n TError,\n [\n typeof UpdateGuestMarketingSubscriptionOptOutDocument,\n Types.UpdateGuestMarketingSubscriptionOptOutMutationVariables\n ],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateGuestMarketingSubscriptionOptOutMutation,\n TError,\n [\n typeof UpdateGuestMarketingSubscriptionOptOutDocument,\n Types.UpdateGuestMarketingSubscriptionOptOutMutationVariables\n ],\n TContext\n >({\n ...options,\n });\n}\nexport const UpdateSubscriptionsDocument = {\n operationName: 'updateSubscriptions',\n operationString: `mutation updateSubscriptions($language: String!, $guestId: BigInt!, $input: SubscriptionsInput!) {\n updateSubscriptions(language: $language, guestId: $guestId, input: $input) {\n data {\n subscriptions {\n optOuts {\n survey\n marketing\n global\n }\n marketingSubscriptions\n hhonorsSubscriptions\n }\n }\n error {\n code\n context\n message\n notifications {\n code\n fields\n message\n }\n }\n }\n}`,\n originalOpName: 'updateSubscriptions',\n};\nexport function useUpdateSubscriptionsMutation<TError = DXError, TContext = unknown>(\n options: UseMutationOptions<\n Types.UpdateSubscriptionsMutation,\n TError,\n [typeof UpdateSubscriptionsDocument, Types.UpdateSubscriptionsMutationVariables],\n TContext\n > = {}\n) {\n return useMutation<\n Types.UpdateSubscriptionsMutation,\n TError,\n [typeof UpdateSubscriptionsDocument, Types.UpdateSubscriptionsMutationVariables],\n TContext\n >({\n ...options,\n });\n}\n","export * from './generated/react-query';\nexport * from './generated/types';\n","import type { ExecutionResult, GraphQLError, NamedTypeNode } from 'graphql';\n\nexport type DXErrorNotification = {\n code: number;\n fields: string[];\n message: string;\n};\n\nexport type DXExtension = {\n logSearch: string;\n operationName: string;\n code?: string;\n notifications?: DXErrorNotification[];\n};\n\nexport type DXGraphQLError = Omit<GraphQLError, 'extensions'> & {\n code: number;\n context: string;\n notifications: DXErrorNotification[];\n extensions: DXExtension;\n 'reference-error'?: string;\n};\n\nexport type DXError = GraphError | ServerAuthError;\n\nexport type DXExecutionResult = Omit<ExecutionResult, 'errors'> & {\n extensions?: DXExtension;\n errors?: ReadonlyArray<DXGraphQLError>;\n __info__?: QueryDebugInfo;\n};\nexport type DXNamedNode = NamedTypeNode & { value: string };\n\nexport type OperationErrors = 'Unauthorized' | 'Forbidden' | 'Not Found';\n\nexport class GraphError extends Error {\n data: DXExecutionResult['data'];\n graphQLErrors: DXGraphQLError[];\n\n public constructor(result: DXExecutionResult) {\n const graphQLErrors = result.errors as DXGraphQLError[];\n super(graphQLErrors?.[0]?.message || 'Unknown Error');\n this.data = result.data;\n this.graphQLErrors = graphQLErrors;\n }\n}\n\nexport class ServerAuthError extends Error {\n statusCode: number;\n\n public constructor(statusCode: number, message?: string) {\n super(message || 'Authorization Error');\n this.statusCode = statusCode;\n }\n}\n\nexport interface QueryDebugInfo {\n dxCompleteness: '0' | '1';\n isSSR: boolean;\n operationName: QueryDocument['operationName'];\n originalOpName: QueryDocument['originalOpName'];\n}\n\nexport type QueryDocument = {\n operationString: string;\n operationName: string;\n originalOpName: string;\n};\n\nexport type QueryVariables = Record<string, unknown> | undefined;\nexport type QueryKeyArgs = [QueryDocument, QueryVariables];\n\nexport type QueryRequestArgs = {\n document: QueryDocument;\n variables?: QueryVariables;\n};\n","export * from './graphql';\n","export * from './lib';\n","import { useEffect, useState } from 'react';\n\nconst getHasUserModifiedFontDefaults = (maxSize: number) => {\n const { fontSize, wordSpacing, letterSpacing } = getComputedStyle(document.documentElement);\n const hasModifiedLetterSpacing = letterSpacing !== 'normal';\n const hasModifiedFontSize = parseInt(fontSize.split('px')[0] || '') > maxSize;\n const hasModifiedWordSpacing =\n wordSpacing !== 'normal' && parseInt(wordSpacing.split('px')[0] || '') > 0;\n if (hasModifiedFontSize || hasModifiedWordSpacing || hasModifiedLetterSpacing) {\n return true;\n }\n return false;\n};\n\n/* Default browser font size is 16px, function defaults to a max of 20px */\nexport const useHasUserModifiedFontDefaults = (maxSize = 20) => {\n const [hasUserModifiedFonts, setHasUserModifiedFonts] = useState(false);\n useEffect(() => {\n setHasUserModifiedFonts(getHasUserModifiedFontDefaults(maxSize));\n }, [maxSize]);\n return hasUserModifiedFonts;\n};\n","import { useHasUserModifiedFontDefaults } from './use-has-user-modified-font-defaults';\nexport const getIsReducedMotion = () =>\n typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n ? window.matchMedia('(prefers-reduced-motion: reduce)').matches\n : true;\n\nexport const getKeyDownNavigation =\n <T extends HTMLElement[]>({\n elements,\n initiatingRef,\n onPreviousFocus,\n onNextFocus,\n }: {\n elements: T;\n initiatingRef?: React.MutableRefObject<HTMLElement | null>;\n onPreviousFocus?: (focusElement: T[number] | null) => void;\n onNextFocus?: (focusElement: T[number] | null) => void;\n }) =>\n (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n const focusPrevious = (el: EventTarget | null) => {\n const currentIndex = elements.findIndex((elements) => elements === el);\n if (currentIndex === 0) {\n initiatingRef?.current?.focus();\n return;\n }\n const element = elements.at(currentIndex - 1) || null;\n element?.focus();\n onPreviousFocus?.(element);\n };\n const focusNext = (el: EventTarget | null) => {\n const currentIndex = elements.findIndex((elements) => elements === el);\n const element = elements.at(currentIndex + 1) || null;\n element?.focus();\n onNextFocus?.(element);\n };\n const isArrowUp = e.key === 'ArrowUp';\n const isArrowDown = e.key === 'ArrowDown';\n const isArrowLeft = e.key === 'ArrowLeft';\n const isArrowRight = e.key === 'ArrowRight';\n if (isArrowUp || isArrowLeft) {\n e.preventDefault();\n focusPrevious(e.target);\n }\n if (isArrowDown || isArrowRight) {\n e.preventDefault();\n focusNext(e.target);\n }\n };\n\nexport { useHasUserModifiedFontDefaults };\n","export * from './lib';\n","import { normalizeDates } from \"./normalizeDates.js\";\n\nexport function normalizeInterval(context, interval) {\n const [start, end] = normalizeDates(context, interval.start, interval.end);\n return { start, end };\n}\n","import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * The {@link eachDayOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +start : +end;\n const date = reversed ? end : start;\n date.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date.setDate(date.getDate() + step);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfMonth} function options.\n */\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDay} function options.\n */\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date, options) {\n return toDate(date, options?.in).getDay();\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDaysInMonth} function options.\n */\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date, considering the context if provided.\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(_date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport {\n startOfWeek,\n differenceInCalendarDays,\n addDays,\n getDaysInMonth,\n eachDayOfInterval,\n endOfMonth,\n getDay,\n subDays,\n} from 'date-fns';\n\nexport const MAX_CALENDAR_DAYS = 42; // maximum day slots a calendar can have\n\nexport const DEFAULT_LANGUAGE = 'en' as SupportedLanguage;\n\nexport const DEFAULT_LOCALE_OPTIONS = {\n calendar: 'gregory',\n};\n\nexport const LOCALE_OPTIONS: Partial<\n Record<StringWithAutocompleteOptions<SupportedLanguage>, Partial<Intl.DateTimeFormatOptions>>\n> = {\n ar: {\n numberingSystem: 'latn',\n },\n};\n\nexport const weekStartsOn = (locale: Intl.Locale) => {\n const key = `${locale.language}${locale.script ? `-${locale.script.toLocaleLowerCase()}` : ''}`;\n return key ? weekStartsOnLocale[key] : 0;\n};\n\nexport function getDaysSplitByWeeks({\n date,\n locale,\n}: {\n date: Date;\n locale: Intl.Locale;\n}): Date[][] {\n const startDay = differenceInCalendarDays(\n date,\n startOfWeek(date, { weekStartsOn: weekStartsOn(locale) })\n );\n const days = eachDayOfInterval({\n start: subDays(date, startDay),\n end: addDays(endOfMonth(date), MAX_CALENDAR_DAYS - (getDay(date) + getDaysInMonth(date))),\n });\n const w: Date[][] = [];\n while (days.length > 0) {\n w.push(days.splice(0, 7));\n }\n return w;\n}\n\nexport const isKanji = (locale?: Intl.Locale) =>\n locale?.language && ['ja', 'ko', 'zh'].includes(locale?.language);\nexport const isLocale = (language: string, locale?: Intl.Locale) =>\n locale?.language && language === locale.language;\nexport const isArabic = (locale?: Intl.Locale) =>\n locale?.language && ['ar'].includes(locale?.language);\nexport const isVietnamese = (locale?: Intl.Locale) =>\n locale?.language && ['vi'].includes(locale?.language);\n\nconst weekStartsOnLocale: Record<string, 0 | 1 | 2 | 3 | 4 | 5 | 6> = {\n en: 0,\n ar: 6,\n bg: 1,\n cs: 1,\n da: 1,\n fi: 1,\n fr: 1,\n id: 1,\n nl: 1,\n de: 1,\n it: 1,\n ja: 0,\n ko: 0,\n no: 1,\n pl: 1,\n pt: 1,\n ro: 1,\n ru: 1,\n es: 1,\n sv: 1,\n th: 0,\n tr: 1,\n 'zh-hans': 0,\n 'zh-hant': 0,\n};\n","import { addDays, startOfWeek } from 'date-fns';\nimport { useMemo } from 'react';\nimport { isArabic, weekStartsOn } from './utils';\n\nexport type UseDaysOfWeek = {\n /** The locale used to get the in-language days of the week. */\n locale: Intl.Locale;\n /** The option to use when formatting the days of the wekk. @see Intl.DateTimeFormatOptions['weekday'] */\n format?: Intl.DateTimeFormatOptions['weekday'];\n /**\n * **deprecated** whether to use the format overrides or not\n * @deprecated\n */\n override?: boolean;\n};\n\n/**\n * Provides the days of the week for a given locale. The format for each day is determined by the `format` property.\n * This hook will order the days of the week based on the day the week starts for the given `locale`.\n *\n * #### Overrides\n * If the `override` flag is enabled, the following languages produce these day of week instead of the native support\n *\n * | Language | Short Days of Week |\n * |--------|-------------------|\n * | bg | 'пон', 'вто', 'ÑÑ€Ñ', 'чет', 'пет', 'Ñъб', 'нед' |\n * | cs | 'pon', 'úte', 'stÅ™', 'Ätv', 'pát', 'sob', 'ned' |\n * | ru | 'пнд', 'втр', 'Ñрд', 'чтв', 'птн', 'Ñуб', 'вÑк' |\n * | th | 'à¸à¸²à¸—ิตย์', 'จันทร์', 'à¸à¸±à¸‡à¸„าร', 'พุธ', 'พฤหัสบดี', 'ศุà¸à¸£à¹Œ', 'เสาร์' |\n */\nexport const useDaysOfWeek = ({\n locale,\n format = 'short',\n override = true,\n}: UseDaysOfWeek): Array<string> =>\n useMemo(() => {\n if (!locale) {\n return [];\n }\n const options = {\n weekday: isArabic(locale) ? 'long' : format,\n };\n let days;\n if (format === 'short' && override) {\n days = locale.baseName ? FORMAT_SHORT_OVERRIDES[locale.baseName] : undefined;\n }\n if (!days) {\n const startDate = startOfWeek(new Date(), {\n weekStartsOn: weekStartsOn(locale),\n });\n days = [...Array(7)].map((n, i) => {\n const day = addDays(startDate, i);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return day.toLocaleDateString(locale, options);\n });\n }\n return days;\n }, [locale, format, override]);\n\n/** these languages only supply 2 character short weekday values with Intl.DateTimeFormat */\nconst FORMAT_SHORT_OVERRIDES: Record<string, Array<string>> = {\n bg: ['пон', 'вто', 'ÑÑ€Ñ', 'чет', 'пет', 'Ñъб', 'нед'],\n ru: ['пнд', 'втр', 'Ñрд', 'чтв', 'птн', 'Ñуб', 'вÑк'],\n th: ['à¸à¸²à¸—ิตย์', 'จันทร์', 'à¸à¸±à¸‡à¸„าร', 'พุธ', 'พฤหัสบดี', 'ศุà¸à¸£à¹Œ', 'เสาร์'],\n};\n\nexport default useDaysOfWeek;\n","import { getDay } from 'date-fns';\nimport { useMemo } from 'react';\nimport { useDaysOfWeek } from './use-days-of-week';\nimport capitalize from 'lodash/capitalize';\nimport { DEFAULT_LOCALE_OPTIONS, isKanji, LOCALE_OPTIONS, weekStartsOn } from './utils';\n\ntype AdditionalFormatOptions = {\n monthName?: Intl.DateTimeFormatOptions['month'];\n};\n\nexport type UseDateFormatPartTypes = 'day' | 'month' | 'year' | 'weekday';\n\nexport type UseDateFormatOptions = Pick<Intl.DateTimeFormatOptions, UseDateFormatPartTypes> &\n AdditionalFormatOptions;\n\nexport const DEFAULT_FORMAT_OPTIONS: UseDateFormatOptions = {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric',\n weekday: 'short',\n monthName: 'short',\n};\n\ntype FormatPart = { numeric: string; text: string };\n\nexport type DateFormat = {\n day: FormatPart;\n month: FormatPart;\n year: FormatPart;\n weekday: string;\n};\n\ntype UseDateFormatter = {\n /**\n * Date to format\n */\n date: Date | null;\n /**\n * The language locale to use to format the date\n */\n locale: Intl.Locale;\n /**\n * Format options for the given date. There are options to format both\n * text output and date output. [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat)\n */\n options?: UseDateFormatOptions;\n};\n\nexport function formatDateAndText(\n date: Date | null,\n locale: Intl.Locale,\n part: UseDateFormatPartTypes,\n options: UseDateFormatOptions\n) {\n const config = {\n ...DEFAULT_LOCALE_OPTIONS,\n ...LOCALE_OPTIONS[locale.baseName || ''],\n ...options,\n } as const;\n const formatter = new Intl.DateTimeFormat(locale.toString(), config);\n const parts = date && formatter.formatToParts(date);\n const isNumeric = options[part] === 'numeric';\n let numeric;\n let text;\n if (isNumeric) {\n numeric = parts?.find(({ type }) => type === part)?.value || '';\n const value = parts?.find(({ type }) => type === 'literal')?.value?.trim() || '';\n text = value.match(/^[,.]$/) ? '' : value;\n } else {\n numeric = '';\n text = parts?.find(({ type }) => type === part)?.value?.trim() || '';\n }\n return { numeric, text };\n}\n\n/**\n * Date Formatter that provides the parts of the date broken up into `text` values and `numeric` values.\n *\n * ### Special Format Cases\n * There are are few special cases where we override the default text formats to provide in-language text support for dates\n *\n * #### Kanji\n * Kanji based languages which are `Japanese`, `Korean`, `Traditional Chinese` and `Simplified Chinese` default override will use `{ weekday: 'long' }`\n *\n * #### Bulgarian\n * There is an [issue with bulgarian](https://www.unicode.org/cldr/cldr-aux/charts/31/summary/bg.html), where the short month format is missing.\n * In order to obtain this format additional settings are required, in particular `{ weekday: 'long' }`\n */\nexport const useDateFormat = ({\n date,\n locale,\n options = DEFAULT_FORMAT_OPTIONS,\n}: UseDateFormatter): DateFormat => {\n const config = useMemo(\n () => ({\n ...DEFAULT_FORMAT_OPTIONS,\n ...options,\n }),\n [options]\n );\n if (isKanji(locale)) {\n config.weekday = 'long';\n }\n const daysOfWeek = useDaysOfWeek({ locale, format: config.weekday });\n return useMemo(() => {\n if (!date) {\n return {\n day: { numeric: '', text: '' },\n month: { numeric: '', text: '' },\n year: { numeric: '', text: '' },\n weekday: '',\n };\n }\n\n const day = formatDateAndText(date, locale, 'day', { day: config.day });\n const month = formatDateAndText(date, locale, 'month', {\n month: config.month,\n });\n const year = formatDateAndText(date, locale, 'year', { year: config.year });\n // get the index day of the week from date-fns\n const dayIndex = getDay(date);\n // find the array index value\n const weekStart = weekStartsOn(locale) ?? 0;\n const index = dayIndex - weekStart;\n const weekday = daysOfWeek.at(index) || '';\n\n // find a month text if there is not one supplied already\n if (month.text.trim() === '') {\n month.text = formatDateAndText(date, locale, 'month', {\n month: config.monthName,\n }).text;\n /** bug with bulgarian short month format. short format for month is tied to additional settings\n * @see https://www.unicode.org/cldr/cldr-aux/charts/31/summary/bg.html */\n if (locale.baseName === 'bg') {\n const monthConfig = {\n ...config,\n ...{ month: config.monthName, weekday: 'long' as const },\n };\n month.text = formatDateAndText(date, locale, 'month', monthConfig).text;\n }\n }\n // process capitilization\n if (['ru', 'es'].includes(locale.baseName)) {\n month.text = capitalize(month.text);\n }\n\n return {\n day,\n month,\n year,\n weekday,\n };\n }, [config, date, daysOfWeek, locale]);\n};\n\nexport default useDateFormat;\n","import { useMemo } from 'react';\nimport type { SupportedLanguage } from '@dx-ui/framework-i18n';\nimport { DEFAULT_LANGUAGE, DEFAULT_LOCALE_OPTIONS, LOCALE_OPTIONS } from './utils';\n\ntype UseLocale = {\n /** The supported language code to use */\n language: StringWithAutocompleteOptions<SupportedLanguage>;\n /** Any date format options to use. In addition to the default setting, The numbering system for the `ar` language code is set to `latn` */\n options?: Intl.DateTimeFormatOptions;\n};\n\n/**\n * Used to obtain the [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).\n */\nexport const useLocale = ({\n language = DEFAULT_LANGUAGE,\n options = DEFAULT_LOCALE_OPTIONS,\n}: UseLocale): Intl.Locale =>\n useMemo(\n () =>\n new Intl.Locale(language, {\n ...DEFAULT_LOCALE_OPTIONS,\n ...LOCALE_OPTIONS[language],\n ...options,\n }),\n [language, options]\n );\n\nexport default useLocale;\n","export * from './utils';\nexport * from './use-days-of-week';\nexport * from './use-date-format';\nexport * from './use-locale';\n","export * from './lib';\n","import { GraphError, ServerAuthError } from '@dx-ui/types-graphql';\n\n/**\n *\n * @returns a new Error object based on the input argument\n */\nexport function generateError(arg: unknown) {\n const UNKNOWN_ERROR_MSG = 'An unknown error occurred.';\n if (arg instanceof ServerAuthError || arg instanceof Error || arg instanceof GraphError) {\n return arg;\n }\n if (typeof arg === 'string') {\n return new Error(arg);\n }\n return new Error(UNKNOWN_ERROR_MSG);\n}\n","export * from './generate-error';\n","export * from './lib';\n","const RTL_LANGUAGES = ['ar', 'he'];\n\n/**\n * Returns whether a locale is LTR (left to right) or RTL (right to left)\n *\n * Currently arabic (ar) is only supported RTL locale\n * @param lang - ISO code for locale\n */\nexport const getLanguageDirection = (lang?: string) =>\n !!lang && RTL_LANGUAGES.includes(lang.toLowerCase()) ? 'rtl' : 'ltr';\n\n/**\n * Returns a boolean as to whether a locale is LTR (left to right) or RTL (right to left)\n *\n * Currently arabic (ar) is only supported RTL locale\n * @param lang\n */\nexport const isRtl = (lang?: string) => getLanguageDirection(lang) === 'rtl';\n","/**\n * Checks window object to determine whether app is running on client or not.\n */\nexport const isBrowser = typeof window !== 'undefined';\n","/* eslint-disable no-param-reassign */\nimport * as matcher from 'matcher';\nimport type { Rule } from '@dx-shared/rule-engine';\nimport { RuleEngine } from '@dx-shared/rule-engine';\n\nconst HOST_REGEX = new RegExp('^www(.\\\\w+)?.hilton.com$');\nconst ENGLISH = 'en';\nconst SLASH = '/';\nconst DOUBLE_SLASH = '//';\n\n/**\n * Utility to determine if a provided URL supports translations for a non-English page by validating the URL\n * against the tranlate URLs rule.\n *\n * Also corrects OHW URLs to fix the URL origin to the current origin, and appends a trailing slash to the path.\n *\n * The URL config returned contains the following fields:\n * 1. The transformed URL based on the language and/or standardization.\n * 2. A flag indicating if a redirect is necessary if the provided URL doesn't match the final transformed URL.\n * 3. A flag indicating if a speedbump should be displayed if we need to route the user from a non-English URL to an English URL.\n * The speedbump flag can also be use server side to determine if a page not found error (404) should be displayed to the user.\n * 4. A flag indicating if the URL is an internal application URL.\n * 1475984025\n *\n * @param tranlateUrlsRuleEngine\n * @param url\n * @param origin\n * @param language\n */\nexport function getUrlConfig(\n tranlateUrlsRuleEngine: RuleEngine,\n url: string,\n origin: string,\n language = ENGLISH,\n appBasePaths?: string[],\n facts?: UrlRuleFacts\n): UrlConfig {\n if (url && url.startsWith('#')) {\n return { appUrl: false, redirect: false, speedbump: false, url };\n }\n // Parse the URL. Sets the origin if the URL is a relative path.\n const parsedURL: URL = new URL(url, origin);\n const originalUrl = parsedURL.toString();\n const originalPath = originalUrl.slice(parsedURL.origin.length);\n // Correct the host and language in the path of all OHW URLs.\n const isOHWUrl = HOST_REGEX.test(parsedURL.host);\n if (isOHWUrl) {\n // Standarize all URLS by appending a trailing slash.\n if (!parsedURL.pathname.endsWith(SLASH)) {\n parsedURL.pathname = `${parsedURL.pathname}${SLASH}`;\n }\n // Replace the language in the path to English. Assume all pages are only supported in English\n // and will swicth it back if the page is supported in-language.\n parsedURL.pathname = parsedURL.pathname.replace(`/${language}/`, `/${ENGLISH}/`);\n // If the OHW URL origin doesn't match the current origin, correct the OHW URL with the current origin.\n if (parsedURL.origin !== origin) {\n parsedURL.host = origin.slice(origin.indexOf(DOUBLE_SLASH) + 2);\n parsedURL.protocol = origin.slice(0, origin.indexOf(DOUBLE_SLASH));\n }\n }\n\n let speedbump = false;\n\n // For non-english languages, determine if the URL is translated\n if (language !== ENGLISH) {\n // When sending an URL into the rule engine, use the relative path for OHW URLs, and the absolute path for external URLs.\n let ruleUrl = isOHWUrl ? parsedURL.pathname : `${parsedURL.origin}${parsedURL.pathname}`;\n // Standarize all URLS by appending a trailing slash so the rule engine matching is consistent.\n if (!ruleUrl.endsWith(SLASH)) {\n ruleUrl = `${ruleUrl}${SLASH}`;\n }\n\n // Run the rule to determine if the URL is translated\n const ruleFacts = { ...(facts || {}), url: ruleUrl, language };\n const isTranslatedUrl = tranlateUrlsRuleEngine.run(ruleFacts);\n\n // Display speedbump if URL is not translated\n speedbump = !isTranslatedUrl;\n // If a OHW URL and the URL is translated, then replace the language in the path\n if (isOHWUrl && isTranslatedUrl) {\n parsedURL.pathname = parsedURL.pathname.replace(`/${ENGLISH}/`, `/${language}/`);\n }\n }\n\n const finalUrl = parsedURL.toString();\n const finalPath = finalUrl.slice(parsedURL.origin.length);\n const appUrl =\n isOHWUrl &&\n !!appBasePaths?.some((appBasePath) => matcher.isMatch(parsedURL.pathname, appBasePath));\n const redirect = isOHWUrl && originalPath !== finalPath;\n\n // Return URL config\n return { appUrl, redirect, speedbump, url: isOHWUrl ? finalPath : finalUrl };\n}\n\nexport type { Rule };\n\nexport { RuleEngine };\n\nexport type UrlConfig = {\n appUrl: boolean;\n redirect: boolean;\n speedbump: boolean;\n url: string;\n};\n\nexport type UrlRuleFacts = {\n brandCode?: string;\n ctyhocn?: string;\n};\n","export * from './url-config';\n","export * from './lib';\n","import * as React from 'react';\n\nfunction setRefs<T>(ref: React.Ref<T>, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n const mutableRef = ref as React.MutableRefObject<T>;\n mutableRef.current = value;\n }\n}\n\nexport function useForkedRef<ForwardRef, LocalRef extends ForwardRef>(\n forwardedRef: React.Ref<ForwardRef>,\n localRef: React.Ref<LocalRef>\n): (instance: LocalRef | null) => void {\n return React.useCallback(\n (value) => {\n setRefs(forwardedRef, value);\n setRefs(localRef, value);\n },\n [forwardedRef, localRef]\n );\n}\n","export * from './lib/use-forked-ref';\n","const props: (keyof DOMRect)[] = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n\nconst rectChanged = (a: DOMRect = {} as DOMRect, b: DOMRect = {} as DOMRect) =>\n props.some((prop) => a[prop] !== b[prop]);\n\nconst observedNodes = new Map<Element, RectProps>();\nlet rafId: number;\n\nconst run = () => {\n const changedStates: RectProps[] = [];\n observedNodes.forEach((state, node) => {\n const newRect = node.getBoundingClientRect();\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n\n changedStates.forEach((state) => {\n state.callbacks.forEach((cb) => cb(state.rect));\n });\n\n rafId = window.requestAnimationFrame(run);\n};\n\nexport default function observeRect(node: Element, cb: (rect: DOMRect | undefined) => void) {\n return {\n observe() {\n const wasEmpty = observedNodes.size === 0;\n if (observedNodes.has(node)) {\n observedNodes.get(node)!.callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb],\n });\n }\n if (wasEmpty) run();\n },\n\n unobserve() {\n const state = observedNodes.get(node);\n if (state) {\n // Remove the callback\n const index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1);\n\n // Remove the node reference\n if (!state.callbacks.length) observedNodes.delete(node);\n\n // Stop the loop\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n },\n };\n}\n\nexport type PartialRect = Partial<DOMRect>;\n\nexport type RectProps = {\n rect: DOMRect | undefined;\n hasRectChanged: boolean;\n callbacks: ((rect: DOMRect | undefined) => void)[];\n};\n","/* eslint-disable no-console */\nimport * as React from 'react';\nimport observeRect from './oberserve-rect';\nimport { useIsomorphicLayoutEffect } from 'usehooks-ts';\n\nconst __DEV__ = process.env.NODE_ENV === 'development';\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Rect\n *\n * @param props\n */\nconst Rect: React.FC<RectProps> = ({ onChange, observe = true, children }) => {\n const ref = React.useRef<HTMLElement | null>(null);\n const rect = useRectBase(ref, { observe, onChange });\n return children({ ref, rect });\n};\n\n/**\n * @see Docs https://reach.tech/rect#rect-props\n */\ntype RectProps = UseRectOptions & {\n /**\n * A function that calls back to you with a `ref` to place on an element and\n * the `rect` measurements of the dom node.\n *\n * **Note**: On the first render `rect` will be `undefined` because we can't\n * measure a node that has not yet been rendered. Make sure your code accounts\n * for this.\n *\n * @see Docs https://reach.tech/rect#rect-onchange\n */\n children: (args: { rect: PRect | null; ref: React.RefObject<unknown> }) => JSX.Element;\n};\n\nRect.displayName = 'Rect';\n\n////////////////////////////////////////////////////////////////////////////////\n/**\n * useRect\n *\n * @param nodeRef\n * @param observe\n * @param onChange\n */\nfunction useRectBase<T extends Element = HTMLElement>(\n nodeRef: React.RefObject<T | undefined | null>,\n options?: UseRectOptions\n): null | DOMRect {\n const [element, setElement] = React.useState(nodeRef.current);\n const initialRectIsSet = React.useRef(false);\n const initialRefIsSet = React.useRef(false);\n const [rect, setRect] = React.useState<DOMRect | undefined>(undefined);\n const onChangeRef = React.useRef(options?.onChange);\n\n useIsomorphicLayoutEffect(() => {\n onChangeRef.current = options?.onChange;\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n\n useIsomorphicLayoutEffect(() => {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n\n useIsomorphicLayoutEffect(() => {\n let elem = element;\n // State initializes before refs are placed, meaning the element state will\n // be undefined on the first render. We still want the rect on the first\n // render, so initially we'll use the nodeRef that was passed instead of\n // state for our measurements.\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n\n if (!elem) {\n if (__DEV__) {\n console.warn('You need to place the ref');\n }\n return;\n }\n\n const observer = observeRect(elem, (rect) => {\n onChangeRef.current?.(rect);\n setRect(rect);\n });\n observer.observe();\n return () => {\n observer.unobserve();\n };\n }, [element, nodeRef]);\n\n return rect || null;\n}\n\n/**\n * @see Docs https://reach.tech/rect#userect\n */\ntype UseRectOptions = {\n /**\n * Tells `Rect` to observe the position of the node or not. While observing,\n * the `children` render prop may call back very quickly (especially while\n * scrolling) so it can be important for performance to avoid observing when\n * you don't need to.\n *\n * This is typically used for elements that pop over other elements (like a\n * dropdown menu), so you don't need to observe all the time, only when the\n * popup is active.\n *\n * Pass `true` to observe, `false` to ignore.\n *\n * @see Docs https://reach.tech/rect#userect-observe\n */\n observe?: boolean;\n /**\n * Calls back whenever the `rect` of the element changes.\n *\n * @see Docs https://reach.tech/rect#userect-onchange\n */\n onChange?: (rect: PRect | undefined) => void;\n};\n\ntype PRect = Partial<DOMRect> & {\n readonly bottom: number;\n readonly height: number;\n readonly left: number;\n readonly right: number;\n readonly top: number;\n readonly width: number;\n};\n\n/**\n *\n * Measures DOM elements (aka. bounding client rect). This is cloned from the last available version of `@reach/userect` with some modifications made\n * @link https://reach.tech/rect/#userect\n * @see getBoundingClientRect https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\n * @see Source https://github.com/reach/reach-ui/blob/main/packages/rect/src/reach-rect.tsx\n */\nfunction useRect({\n ref,\n onResize,\n}: {\n ref: Parameters<typeof useRectBase>[0];\n onResize?: (rect: DOMRect) => void;\n}) {\n return useRectBase(ref, {\n onChange(rect) {\n onResize?.(rect as DOMRect);\n },\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Exports\n\nexport type { PRect, UseRectOptions, RectProps };\nexport { Rect, useRect };\n","export * from './use-rect';\n","export * from './lib';\n","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * var result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * var result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * var result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * var result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token) {\n if (token === 'YYYY') {\n throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'YY') {\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'D') {\n throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n } else if (token === 'DD') {\n throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n }\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCISOWeek from '../getUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCWeek from '../getUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport setUTCDay from '../../../_lib/setUTCDay/index.js';\nimport setUTCISODay from '../../../_lib/setUTCISODay/index.js';\nimport setUTCISOWeek from '../../../_lib/setUTCISOWeek/index.js';\nimport setUTCWeek from '../../../_lib/setUTCWeek/index.js';\nimport startOfUTCISOWeek from '../../../_lib/startOfUTCISOWeek/index.js';\nimport startOfUTCWeek from '../../../_lib/startOfUTCWeek/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport assign from '../_lib/assign/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport parsers from './_lib/parsers/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).reverse();\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getDaysInMonth from '../getDaysInMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toDate from '../toDate/index.js';\nimport setMonth from '../setMonth/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * var result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * var result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\n\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n\n if (typeof values !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n\n var date = toDate(dirtyDate); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date)) {\n return new Date(NaN);\n }\n\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import type { DomainLocale } from '../server/config'\nimport type { normalizeLocalePath as NormalizeFn } from './normalize-locale-path'\nimport type { detectDomainLocale as DetectFn } from './detect-domain-locale'\nimport { normalizePathTrailingSlash } from './normalize-trailing-slash'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function getDomainLocale(\n path: string,\n locale?: string | false,\n locales?: string[],\n domainLocales?: DomainLocale[]\n) {\n if (process.env.__NEXT_I18N_SUPPORT) {\n const normalizeLocalePath: typeof NormalizeFn =\n require('./normalize-locale-path').normalizeLocalePath\n const detectDomainLocale: typeof DetectFn =\n require('./detect-domain-locale').detectDomainLocale\n\n const target = locale || normalizeLocalePath(path, locales).detectedLocale\n const domain = detectDomainLocale(domainLocales, undefined, target)\n if (domain) {\n const proto = `http${domain.http ? '' : 's'}://`\n const finalLocale = target === domain.defaultLocale ? '' : `/${target}`\n return `${proto}${domain.domain}${normalizePathTrailingSlash(\n `${basePath}${finalLocale}${path}`\n )}`\n }\n return false\n } else {\n return false\n }\n}\n","'use client'\n\nimport type {\n NextRouter,\n PrefetchOptions as RouterPrefetchOptions,\n} from '../shared/lib/router/router'\n\nimport React from 'react'\nimport type { UrlObject } from 'url'\nimport { resolveHref } from './resolve-href'\nimport { isLocalURL } from '../shared/lib/router/utils/is-local-url'\nimport { formatUrl } from '../shared/lib/router/utils/format-url'\nimport { isAbsoluteUrl } from '../shared/lib/utils'\nimport { addLocale } from './add-locale'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\nimport type { AppRouterInstance } from '../shared/lib/app-router-context.shared-runtime'\nimport { useIntersection } from './use-intersection'\nimport { getDomainLocale } from './get-domain-locale'\nimport { addBasePath } from './add-base-path'\nimport { useMergedRef } from './use-merged-ref'\n\ntype Url = string | UrlObject\ntype RequiredKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? never : K\n}[keyof T]\ntype OptionalKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? K : never\n}[keyof T]\n\ntype InternalLinkProps = {\n /**\n * The path or URL to navigate to. It can also be an object.\n *\n * @example https://nextjs.org/docs/api-reference/next/link#with-url-object\n */\n href: Url\n /**\n * Optional decorator for the path that will be shown in the browser URL bar. Before Next.js 9.5.3 this was used for dynamic routes, check our [previous docs](https://github.com/vercel/next.js/blob/v9.5.2/docs/api-reference/next/link.md#dynamic-routes) to see how it worked. Note: when this path differs from the one provided in `href` the previous `href`/`as` behavior is used as shown in the [previous docs](https://github.com/vercel/next.js/blob/v9.5.2/docs/api-reference/next/link.md#dynamic-routes).\n */\n as?: Url\n /**\n * Replace the current `history` state instead of adding a new url into the stack.\n *\n * @defaultValue `false`\n */\n replace?: boolean\n /**\n * Whether to override the default scroll behavior\n *\n * @example https://nextjs.org/docs/api-reference/next/link#disable-scrolling-to-the-top-of-the-page\n *\n * @defaultValue `true`\n */\n scroll?: boolean\n /**\n * Update the path of the current page without rerunning [`getStaticProps`](https://nextjs.org/docs/pages/building-your-application/data-fetching/get-static-props), [`getServerSideProps`](https://nextjs.org/docs/pages/building-your-application/data-fetching/get-server-side-props) or [`getInitialProps`](/docs/pages/api-reference/functions/get-initial-props).\n *\n * @defaultValue `false`\n */\n shallow?: boolean\n /**\n * Forces `Link` to send the `href` property to its child.\n *\n * @defaultValue `false`\n */\n passHref?: boolean\n /**\n * Prefetch the page in the background.\n * Any `<Link />` that is in the viewport (initially or through scroll) will be prefetched.\n * Prefetch can be disabled by passing `prefetch={false}`. Prefetching is only enabled in production.\n *\n * In App Router:\n * - `null` (default): For statically generated pages, this will prefetch the full React Server Component data. For dynamic pages, this will prefetch up to the nearest route segment with a [`loading.js`](https://nextjs.org/docs/app/api-reference/file-conventions/loading) file. If there is no loading file, it will not fetch the full tree to avoid fetching too much data.\n * - `true`: This will prefetch the full React Server Component data for all route segments, regardless of whether they contain a segment with `loading.js`.\n * - `false`: This will not prefetch any data, even on hover.\n *\n * In Pages Router:\n * - `true` (default): The full route & its data will be prefetched.\n * - `false`: Prefetching will not happen when entering the viewport, but will still happen on hover.\n * @defaultValue `true` (pages router) or `null` (app router)\n */\n prefetch?: boolean | null\n /**\n * The active locale is automatically prepended. `locale` allows for providing a different locale.\n * When `false` `href` has to include the locale as the default behavior is disabled.\n * Note: This is only available in the Pages Router.\n */\n locale?: string | false\n /**\n * Enable legacy link behavior.\n * @defaultValue `false`\n * @see https://github.com/vercel/next.js/commit/489e65ed98544e69b0afd7e0cfc3f9f6c2b803b7\n */\n legacyBehavior?: boolean\n /**\n * Optional event handler for when the mouse pointer is moved onto Link\n */\n onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>\n /**\n * Optional event handler for when Link is touched.\n */\n onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>\n /**\n * Optional event handler for when Link is clicked.\n */\n onClick?: React.MouseEventHandler<HTMLAnchorElement>\n}\n\n// TODO-APP: Include the full set of Anchor props\n// adding this to the publicly exported type currently breaks existing apps\n\n// `RouteInferType` is a stub here to avoid breaking `typedRoutes` when the type\n// isn't generated yet. It will be replaced when the webpack plugin runs.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport type LinkProps<RouteInferType = any> = InternalLinkProps\ntype LinkPropsRequired = RequiredKeys<LinkProps>\ntype LinkPropsOptional = OptionalKeys<InternalLinkProps>\n\nconst prefetched = new Set<string>()\n\ntype PrefetchOptions = RouterPrefetchOptions & {\n /**\n * bypassPrefetchedCheck will bypass the check to see if the `href` has\n * already been fetched.\n */\n bypassPrefetchedCheck?: boolean\n}\n\nfunction prefetch(\n router: NextRouter,\n href: string,\n as: string,\n options: PrefetchOptions\n): void {\n if (typeof window === 'undefined') {\n return\n }\n\n if (!isLocalURL(href)) {\n return\n }\n\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale =\n // Let the link's locale prop override the default router locale.\n typeof options.locale !== 'undefined'\n ? options.locale\n : // Otherwise fallback to the router's locale.\n 'locale' in router\n ? router.locale\n : undefined\n\n const prefetchedKey = href + '%' + as + '%' + locale\n\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return\n }\n\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey)\n }\n\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n router.prefetch(href, as, options).catch((err) => {\n if (process.env.NODE_ENV !== 'production') {\n // rethrow to show invalid URL errors\n throw err\n }\n })\n}\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\nfunction linkClicked(\n e: React.MouseEvent,\n router: NextRouter | AppRouterInstance,\n href: string,\n as: string,\n replace?: boolean,\n shallow?: boolean,\n scroll?: boolean,\n locale?: string | false\n): void {\n const { nodeName } = e.currentTarget\n\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A'\n\n if (isAnchorNodeName && (isModifiedEvent(e) || !isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return\n }\n\n e.preventDefault()\n\n const navigate = () => {\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll ?? true\n if ('beforePopState' in router) {\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll: routerScroll,\n })\n } else {\n router[replace ? 'replace' : 'push'](as || href, {\n scroll: routerScroll,\n })\n }\n }\n\n navigate()\n}\n\ntype LinkPropsReal = React.PropsWithChildren<\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof LinkProps> &\n LinkProps\n>\n\nfunction formatStringOrUrl(urlObjOrString: UrlObject | string): string {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString\n }\n\n return formatUrl(urlObjOrString)\n}\n\n/**\n * A React component that extends the HTML `<a>` element to provide [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation between routes.\n *\n * It is the primary way to navigate between routes in Next.js.\n *\n * Read more: [Next.js docs: `<Link>`](https://nextjs.org/docs/app/api-reference/components/link)\n */\nconst Link = React.forwardRef<HTMLAnchorElement, LinkPropsReal>(\n function LinkComponent(props, forwardedRef) {\n let children: React.ReactNode\n\n const {\n href: hrefProp,\n as: asProp,\n children: childrenProp,\n prefetch: prefetchProp = null,\n passHref,\n replace,\n shallow,\n scroll,\n locale,\n onClick,\n onMouseEnter: onMouseEnterProp,\n onTouchStart: onTouchStartProp,\n legacyBehavior = false,\n ...restProps\n } = props\n\n children = childrenProp\n\n if (\n legacyBehavior &&\n (typeof children === 'string' || typeof children === 'number')\n ) {\n children = <a>{children}</a>\n }\n\n const router = React.useContext(RouterContext)\n\n const prefetchEnabled = prefetchProp !== false\n\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args: {\n key: string\n expected: string\n actual: string\n }) {\n return new Error(\n `Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`<Link>\\`, but got \\`${args.actual}\\` instead.` +\n (typeof window !== 'undefined'\n ? \"\\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n\n // TypeScript trick for type-guarding:\n const requiredPropsGuard: Record<LinkPropsRequired, true> = {\n href: true,\n } as const\n const requiredProps: LinkPropsRequired[] = Object.keys(\n requiredPropsGuard\n ) as LinkPropsRequired[]\n requiredProps.forEach((key: LinkPropsRequired) => {\n if (key === 'href') {\n if (\n props[key] == null ||\n (typeof props[key] !== 'string' && typeof props[key] !== 'object')\n ) {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key],\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _: never = key\n }\n })\n\n // TypeScript trick for type-guarding:\n const optionalPropsGuard: Record<LinkPropsOptional, true> = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n } as const\n const optionalProps: LinkPropsOptional[] = Object.keys(\n optionalPropsGuard\n ) as LinkPropsOptional[]\n optionalProps.forEach((key: LinkPropsOptional) => {\n const valType = typeof props[key]\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType,\n })\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType,\n })\n }\n } else if (\n key === 'onClick' ||\n key === 'onMouseEnter' ||\n key === 'onTouchStart'\n ) {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType,\n })\n }\n } else if (\n key === 'replace' ||\n key === 'scroll' ||\n key === 'shallow' ||\n key === 'passHref' ||\n key === 'prefetch' ||\n key === 'legacyBehavior'\n ) {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType,\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _: never = key\n }\n })\n }\n\n const { href, as } = React.useMemo(() => {\n if (!router) {\n const resolvedHref = formatStringOrUrl(hrefProp)\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref,\n }\n }\n\n const [resolvedHref, resolvedAs] = resolveHref(router, hrefProp, true)\n\n return {\n href: resolvedHref,\n as: asProp ? resolveHref(router, asProp) : resolvedAs || resolvedHref,\n }\n }, [router, hrefProp, asProp])\n\n const previousHref = React.useRef<string>(href)\n const previousAs = React.useRef<string>(as)\n\n // This will return the first child, if multiple are provided it will throw an error\n let child: any\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n if (onClick) {\n console.warn(\n `\"onClick\" was passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`\n )\n }\n if (onMouseEnterProp) {\n console.warn(\n `\"onMouseEnter\" was passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`\n )\n }\n try {\n child = React.Children.only(children)\n } catch (err) {\n if (!children) {\n throw new Error(\n `No children were passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`\n )\n }\n throw new Error(\n `Multiple children were passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` +\n (typeof window !== 'undefined'\n ? \" \\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n } else {\n child = React.Children.only(children)\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if ((children as any)?.type === 'a') {\n throw new Error(\n 'Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'\n )\n }\n }\n }\n\n const childRef: any = legacyBehavior\n ? child && typeof child === 'object' && child.ref\n : forwardedRef\n\n const [setIntersectionRef, isVisible, resetVisible] = useIntersection({\n rootMargin: '200px',\n })\n\n const setIntersectionWithResetRef = React.useCallback(\n (el: Element) => {\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible()\n previousAs.current = as\n previousHref.current = href\n }\n\n setIntersectionRef(el)\n },\n [as, href, resetVisible, setIntersectionRef]\n )\n\n const setRef = useMergedRef(setIntersectionWithResetRef, childRef)\n\n // Prefetch the URL if we haven't already and it's visible.\n React.useEffect(() => {\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (process.env.NODE_ENV !== 'production') {\n return\n }\n\n if (!router) {\n return\n }\n\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return\n }\n\n // Prefetch the URL.\n prefetch(router, href, as, { locale })\n }, [as, href, isVisible, locale, prefetchEnabled, router?.locale, router])\n\n const childProps: {\n onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>\n onMouseEnter: React.MouseEventHandler<HTMLAnchorElement>\n onClick: React.MouseEventHandler<HTMLAnchorElement>\n href?: string\n ref?: any\n } = {\n ref: setRef,\n onClick(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(\n `Component rendered inside next/link has to pass click event to \"onClick\" prop.`\n )\n }\n }\n\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onClick === 'function'\n ) {\n child.props.onClick(e)\n }\n\n if (!router) {\n return\n }\n\n if (e.defaultPrevented) {\n return\n }\n\n linkClicked(e, router, href, as, replace, shallow, scroll, locale)\n },\n onMouseEnter(e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onMouseEnter === 'function'\n ) {\n child.props.onMouseEnter(e)\n }\n\n if (!router) {\n return\n }\n\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true,\n })\n },\n onTouchStart: process.env.__NEXT_LINK_NO_TOUCH_START\n ? undefined\n : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onTouchStart === 'function'\n ) {\n child.props.onTouchStart(e)\n }\n\n if (!router) {\n return\n }\n\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true,\n })\n },\n }\n\n // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if (isAbsoluteUrl(as)) {\n childProps.href = as\n } else if (\n !legacyBehavior ||\n passHref ||\n (child.type === 'a' && !('href' in child.props))\n ) {\n const curLocale = typeof locale !== 'undefined' ? locale : router?.locale\n\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain =\n router?.isLocaleDomain &&\n getDomainLocale(as, curLocale, router?.locales, router?.domainLocales)\n\n childProps.href =\n localeDomain ||\n addBasePath(addLocale(as, curLocale, router?.defaultLocale))\n }\n\n return legacyBehavior ? (\n React.cloneElement(child, childProps)\n ) : (\n <a {...restProps} {...childProps}>\n {children}\n </a>\n )\n }\n)\n\nexport default Link\n","import type { normalizeLocalePath as Fn } from '../shared/lib/i18n/normalize-locale-path'\n\nexport const normalizeLocalePath: typeof Fn = (pathname, locales) => {\n if (process.env.__NEXT_I18N_SUPPORT) {\n return require('../shared/lib/i18n/normalize-locale-path').normalizeLocalePath(\n pathname,\n locales\n )\n }\n return { pathname, detectedLocale: undefined }\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<HTMLElement | null> | 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<Element, ObserveCallback>\n}\n\nconst hasIntersectionObserver = typeof IntersectionObserver === 'function'\n\nconst observers = new Map<Identifier, Observer>()\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<Element, ObserveCallback>()\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<T extends Element>({\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<T | null>(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 { useMemo, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<() => void>(() => {})\n const cleanupB = useRef<() => void>(() => {})\n\n return useMemo(() => {\n if (!refA || !refB) {\n return refA || refB\n }\n\n return (current: TElement | null): void => {\n if (current === null) {\n cleanupA.current()\n cleanupB.current()\n } else {\n cleanupA.current = applyRef(refA, current)\n cleanupB.current = applyRef(refB, current)\n }\n }\n }, [refA, refB])\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","// extracted by mini-css-extract-plugin","(function(){\"use strict\";var e={114:function(e){function assertPath(e){if(typeof e!==\"string\"){throw new TypeError(\"Path must be a string. Received \"+JSON.stringify(e))}}function normalizeStringPosix(e,r){var t=\"\";var i=0;var n=-1;var a=0;var f;for(var l=0;l<=e.length;++l){if(l<e.length)f=e.charCodeAt(l);else if(f===47)break;else f=47;if(f===47){if(n===l-1||a===1){}else if(n!==l-1&&a===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){var s=t.lastIndexOf(\"/\");if(s!==t.length-1){if(s===-1){t=\"\";i=0}else{t=t.slice(0,s);i=t.length-1-t.lastIndexOf(\"/\")}n=l;a=0;continue}}else if(t.length===2||t.length===1){t=\"\";i=0;n=l;a=0;continue}}if(r){if(t.length>0)t+=\"/..\";else t=\"..\";i=2}}else{if(t.length>0)t+=\"/\"+e.slice(n+1,l);else t=e.slice(n+1,l);i=l-n-1}n=l;a=0}else if(f===46&&a!==-1){++a}else{a=-1}}return t}function _format(e,r){var t=r.dir||r.root;var i=r.base||(r.name||\"\")+(r.ext||\"\");if(!t){return i}if(t===r.root){return t+i}return t+e+i}var r={resolve:function resolve(){var e=\"\";var r=false;var t;for(var i=arguments.length-1;i>=-1&&!r;i--){var n;if(i>=0)n=arguments[i];else{if(t===undefined)t=\"\";n=t}assertPath(n);if(n.length===0){continue}e=n+\"/\"+e;r=n.charCodeAt(0)===47}e=normalizeStringPosix(e,!r);if(r){if(e.length>0)return\"/\"+e;else return\"/\"}else if(e.length>0){return e}else{return\".\"}},normalize:function normalize(e){assertPath(e);if(e.length===0)return\".\";var r=e.charCodeAt(0)===47;var t=e.charCodeAt(e.length-1)===47;e=normalizeStringPosix(e,!r);if(e.length===0&&!r)e=\".\";if(e.length>0&&t)e+=\"/\";if(r)return\"/\"+e;return e},isAbsolute:function isAbsolute(e){assertPath(e);return e.length>0&&e.charCodeAt(0)===47},join:function join(){if(arguments.length===0)return\".\";var e;for(var t=0;t<arguments.length;++t){var i=arguments[t];assertPath(i);if(i.length>0){if(e===undefined)e=i;else e+=\"/\"+i}}if(e===undefined)return\".\";return r.normalize(e)},relative:function relative(e,t){assertPath(e);assertPath(t);if(e===t)return\"\";e=r.resolve(e);t=r.resolve(t);if(e===t)return\"\";var i=1;for(;i<e.length;++i){if(e.charCodeAt(i)!==47)break}var n=e.length;var a=n-i;var f=1;for(;f<t.length;++f){if(t.charCodeAt(f)!==47)break}var l=t.length;var s=l-f;var o=a<s?a:s;var u=-1;var h=0;for(;h<=o;++h){if(h===o){if(s>o){if(t.charCodeAt(f+h)===47){return t.slice(f+h+1)}else if(h===0){return t.slice(f+h)}}else if(a>o){if(e.charCodeAt(i+h)===47){u=h}else if(h===0){u=0}}break}var c=e.charCodeAt(i+h);var v=t.charCodeAt(f+h);if(c!==v)break;else if(c===47)u=h}var g=\"\";for(h=i+u+1;h<=n;++h){if(h===n||e.charCodeAt(h)===47){if(g.length===0)g+=\"..\";else g+=\"/..\"}}if(g.length>0)return g+t.slice(f+u);else{f+=u;if(t.charCodeAt(f)===47)++f;return t.slice(f)}},_makeLong:function _makeLong(e){return e},dirname:function dirname(e){assertPath(e);if(e.length===0)return\".\";var r=e.charCodeAt(0);var t=r===47;var i=-1;var n=true;for(var a=e.length-1;a>=1;--a){r=e.charCodeAt(a);if(r===47){if(!n){i=a;break}}else{n=false}}if(i===-1)return t?\"/\":\".\";if(t&&i===1)return\"//\";return e.slice(0,i)},basename:function basename(e,r){if(r!==undefined&&typeof r!==\"string\")throw new TypeError('\"ext\" argument must be a string');assertPath(e);var t=0;var i=-1;var n=true;var a;if(r!==undefined&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return\"\";var f=r.length-1;var l=-1;for(a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(s===47){if(!n){t=a+1;break}}else{if(l===-1){n=false;l=a+1}if(f>=0){if(s===r.charCodeAt(f)){if(--f===-1){i=a}}else{f=-1;i=l}}}}if(t===i)i=l;else if(i===-1)i=e.length;return e.slice(t,i)}else{for(a=e.length-1;a>=0;--a){if(e.charCodeAt(a)===47){if(!n){t=a+1;break}}else if(i===-1){n=false;i=a+1}}if(i===-1)return\"\";return e.slice(t,i)}},extname:function extname(e){assertPath(e);var r=-1;var t=0;var i=-1;var n=true;var a=0;for(var f=e.length-1;f>=0;--f){var l=e.charCodeAt(f);if(l===47){if(!n){t=f+1;break}continue}if(i===-1){n=false;i=f+1}if(l===46){if(r===-1)r=f;else if(a!==1)a=1}else if(r!==-1){a=-1}}if(r===-1||i===-1||a===0||a===1&&r===i-1&&r===t+1){return\"\"}return e.slice(r,i)},format:function format(e){if(e===null||typeof e!==\"object\"){throw new TypeError('The \"pathObject\" argument must be of type Object. Received type '+typeof e)}return _format(\"/\",e)},parse:function parse(e){assertPath(e);var r={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(e.length===0)return r;var t=e.charCodeAt(0);var i=t===47;var n;if(i){r.root=\"/\";n=1}else{n=0}var a=-1;var f=0;var l=-1;var s=true;var o=e.length-1;var u=0;for(;o>=n;--o){t=e.charCodeAt(o);if(t===47){if(!s){f=o+1;break}continue}if(l===-1){s=false;l=o+1}if(t===46){if(a===-1)a=o;else if(u!==1)u=1}else if(a!==-1){u=-1}}if(a===-1||l===-1||u===0||u===1&&a===l-1&&a===f+1){if(l!==-1){if(f===0&&i)r.base=r.name=e.slice(1,l);else r.base=r.name=e.slice(f,l)}}else{if(f===0&&i){r.name=e.slice(1,a);r.base=e.slice(1,l)}else{r.name=e.slice(f,a);r.base=e.slice(f,l)}r.ext=e.slice(a,l)}if(f>0)r.dir=e.slice(0,f-1);else if(i)r.dir=\"/\";return r},sep:\"/\",delimiter:\":\",win32:null,posix:null};r.posix=r;e.exports=r}};var r={};function __nccwpck_require__(t){var i=r[t];if(i!==undefined){return i.exports}var n=r[t]={exports:{}};var a=true;try{e[t](n,n.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return n.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(114);module.exports=t})();","module.exports = require('./dist/shared/lib/head')\n","module.exports = require('./dist/client/link')\n","module.exports = require('./dist/client/router')\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = 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 var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\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\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;\n","import React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\nvar InFocusGuard = function InFocusGuard(_ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? null : _ref$children;\n return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\nInFocusGuard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node\n} : {};\nexport default InFocusGuard;","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true,\n ssr: typeof document !== 'undefined'\n});","import { createContext } from 'react';\nexport var focusScope = /*#__PURE__*/createContext(undefined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { forwardRef, useRef, useState, useCallback, useEffect, useMemo, Fragment } from 'react';\nimport { node, bool, string, any, arrayOf, oneOfType, object, func } from 'prop-types';\nimport { FOCUS_DISABLED, FOCUS_GROUP } from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nimport { focusScope } from './scope';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n var _useState = useState(),\n realObserved = _useState[0],\n setObserved = _useState[1];\n var observed = useRef();\n var isActive = useRef(false);\n var originalFocusedElement = useRef(null);\n var _useState2 = useState({}),\n update = _useState2[1];\n var children = props.children,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$noFocusGuards = props.noFocusGuards,\n noFocusGuards = _props$noFocusGuards === void 0 ? false : _props$noFocusGuards,\n _props$persistentFocu = props.persistentFocus,\n persistentFocus = _props$persistentFocu === void 0 ? false : _props$persistentFocu,\n _props$crossFrame = props.crossFrame,\n crossFrame = _props$crossFrame === void 0 ? true : _props$crossFrame,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n hasPositiveIndices = props.hasPositiveIndices,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n _props$returnFocus = props.returnFocus,\n shouldReturnFocus = _props$returnFocus === void 0 ? false : _props$returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n var _useState3 = useState({}),\n id = _useState3[0];\n var onActivation = useCallback(function (_ref) {\n var captureFocusRestore = _ref.captureFocusRestore;\n if (!originalFocusedElement.current) {\n var _document;\n var activeElement = (_document = document) == null ? void 0 : _document.activeElement;\n originalFocusedElement.current = activeElement;\n if (activeElement !== document.body) {\n originalFocusedElement.current = captureFocusRestore(activeElement);\n }\n }\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n isActive.current = true;\n update();\n }, [onActivationCallback]);\n var onDeactivation = useCallback(function () {\n isActive.current = false;\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n update();\n }, [onDeactivationCallback]);\n var returnFocus = useCallback(function (allowDefer) {\n var focusRestore = originalFocusedElement.current;\n if (focusRestore) {\n var returnFocusTo = (typeof focusRestore === 'function' ? focusRestore() : focusRestore) || document.body;\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n if (allowDefer) {\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]);\n var onFocus = useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium;\n var setObserveNode = useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n useEffect(function () {\n if (!observed.current && typeof Container !== 'string') {\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n var lockProps = _extends((_extends2 = {}, _extends2[FOCUS_DISABLED] = disabled && 'disabled', _extends2[FOCUS_GROUP] = group, _extends2), containerProps);\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n var focusScopeValue = useMemo(function () {\n return {\n observed: observed,\n shards: shards,\n enabled: !disabled,\n active: isActive.current\n };\n }, [disabled, isActive.current, shards, realObserved]);\n return /*#__PURE__*/React.createElement(Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions,\n noFocusGuards: noFocusGuards\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), /*#__PURE__*/React.createElement(focusScope.Provider, {\n value: focusScopeValue\n }, children)), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: node,\n disabled: bool,\n returnFocus: oneOfType([bool, object, func]),\n focusOptions: object,\n noFocusGuards: bool,\n hasPositiveIndices: bool,\n allowTextSelection: bool,\n autoFocus: bool,\n persistentFocus: bool,\n crossFrame: bool,\n group: string,\n className: string,\n whiteList: func,\n shards: arrayOf(any),\n as: oneOfType([string, func, object]),\n lockProps: object,\n onActivation: func,\n onDeactivation: func,\n sideCar: any.isRequired\n} : {};\nexport default FocusLock;","export function deferAction(action) {\n setTimeout(action, 1);\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};\nexport var extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport { moveFocusInside, focusInside, focusIsHidden, expandFocusableNodes, getFocusableNodes, focusNextElement, focusPrevElement, focusFirstElement, focusLastElement, captureFocusRestore } from 'focus-lock';\nimport { deferAction, extractRef } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar tryRestoreFocus = function tryRestoreFocus() {\n return null;\n};\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\nvar windowFocused = false;\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n do {\n var item = allNodes[i];\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n return;\n }\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n return Boolean(focusWasOutsideWindow);\n }\n return focusWasOutsideWindow === 'meanwhile';\n};\nvar checkInHost = function checkInHost(check, el, boundary) {\n return el && (el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\nvar withinHost = function withinHost(activeElement, workingArea) {\n return workingArea.some(function (area) {\n return checkInHost(activeElement, area, area);\n });\n};\nvar getNodeFocusables = function getNodeFocusables(nodes) {\n return getFocusableNodes(nodes, new Map());\n};\nvar isNotFocusable = function isNotFocusable(node) {\n return !getNodeFocusables([node.parentNode]).some(function (el) {\n return el.node === node;\n });\n};\nvar activateTrap = function activateTrap() {\n var result = false;\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions,\n noFocusGuards = _lastActiveTrap.noFocusGuards;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n if (focusOnBody() && lastActiveFocus && lastActiveFocus !== document.body) {\n if (!document.body.contains(lastActiveFocus) || isNotFocusable(lastActiveFocus)) {\n var newTarget = tryRestoreFocus();\n if (newTarget) {\n newTarget.focus();\n }\n }\n }\n var activeElement = document && document.activeElement;\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n var shouldForceRestoreFocus = function shouldForceRestoreFocus() {\n if (!focusWasOutside(crossFrame) || !noFocusGuards || !lastActiveFocus || windowFocused) {\n return false;\n }\n var nodes = getNodeFocusables(workingArea);\n var lastIndex = nodes.findIndex(function (_ref) {\n var node = _ref.node;\n return node === lastActiveFocus;\n });\n return lastIndex === 0 || lastIndex === nodes.length - 1;\n };\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || shouldForceRestoreFocus() || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !(focusInside(workingArea) || activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n if (activeElement.blur) {\n activeElement.blur();\n }\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n lastActiveFocus = document && document.activeElement;\n if (lastActiveFocus !== document.body) {\n tryRestoreFocus = captureFocusRestore(lastActiveFocus);\n }\n focusWasOutsideWindow = false;\n }\n }\n if (document && activeElement !== document.activeElement && document.querySelector('[data-focus-auto-guard]')) {\n var newActiveElement = document && document.activeElement;\n var allNodes = expandFocusableNodes(workingArea);\n var focusedIndex = allNodes.map(function (_ref2) {\n var node = _ref2.node;\n return node;\n }).indexOf(newActiveElement);\n if (focusedIndex > -1) {\n allNodes.filter(function (_ref3) {\n var guard = _ref3.guard,\n node = _ref3.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref4) {\n var node = _ref4.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n return result;\n};\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n event.stopPropagation();\n event.preventDefault();\n }\n};\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\nvar onFocus = function onFocus(event) {\n var source = event.target;\n var currentNode = event.currentTarget;\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\nvar FocusTrap = function FocusTrap(_ref5) {\n var children = _ref5.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired\n} : {};\nvar onWindowFocus = function onWindowFocus() {\n windowFocused = true;\n};\nvar onWindowBlur = function onWindowBlur() {\n windowFocused = false;\n focusWasOutsideWindow = 'just';\n deferAction(function () {\n focusWasOutsideWindow = 'meanwhile';\n });\n};\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('focus', onWindowFocus);\n window.addEventListener('blur', onWindowBlur);\n};\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('focus', onWindowFocus);\n window.removeEventListener('blur', onWindowBlur);\n};\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref6) {\n var disabled = _ref6.disabled;\n return !disabled;\n });\n}\nvar focusLockAPI = {\n moveFocusInside: moveFocusInside,\n focusInside: focusInside,\n focusNextElement: focusNextElement,\n focusPrevElement: focusPrevElement,\n focusFirstElement: focusFirstElement,\n focusLastElement: focusLastElement,\n captureFocusRestore: captureFocusRestore\n};\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation();\n if (!traps.filter(function (_ref7) {\n var id = _ref7.id;\n return id === lastTrap.id;\n }).length) {\n lastTrap.returnFocus(!trap);\n }\n }\n if (trap) {\n lastActiveFocus = null;\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation(focusLockAPI);\n }\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n}\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb(focusLockAPI);\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { forwardRef } from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\nvar FocusLockCombination = /*#__PURE__*/forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar,\n propTypes = _objectWithoutPropertiesLoose(_ref, [\"sideCar\"]);\nFocusLockCombination.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","var Et=Object.create;var Ye=Object.defineProperty;var bt=Object.getOwnPropertyDescriptor;var gt=Object.getOwnPropertyNames;var yt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var Lt=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var Pt=(n,e,r,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of gt(e))!wt.call(n,o)&&o!==r&&Ye(n,o,{get:()=>e[o],enumerable:!(i=bt(e,o))||i.enumerable});return n};var St=(n,e,r)=>(r=n!=null?Et(yt(n)):{},Pt(e||!n||!n.__esModule?Ye(r,\"default\",{value:n,enumerable:!0}):r,n));var je=Lt((he,Je)=>{(function(n,e){typeof he==\"object\"&&typeof Je<\"u\"?e(he):typeof define==\"function\"&&define.amd?define([\"exports\"],e):(n=typeof globalThis<\"u\"?globalThis:n||self,e(n.fastUniqueNumbers={}))})(he,function(n){\"use strict\";var e=function(l){return function(p){var f=l(p);return p.add(f),f}},r=function(l){return function(p,f){return l.set(p,f),f}},i=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,u=o*2,g=function(l,p){return function(f){var B=p.get(f),y=B===void 0?f.size:B<u?B+1:0;if(!f.has(y))return l(f,y);if(f.size<o){for(;f.has(y);)y=Math.floor(Math.random()*u);return l(f,y)}if(f.size>i)throw new Error(\"Congratulations, you created a collection of unique numbers which uses all available integers!\");for(;f.has(y);)y=Math.floor(Math.random()*i);return l(f,y)}},O=new WeakMap,W=r(O),m=g(W,O),a=e(m);n.addUniqueNumber=a,n.generateUniqueNumber=m})});import{Component as Mt,forwardRef as Rt}from\"react\";import{jsx as At}from\"react/jsx-runtime\";function kt(n){return Rt(function(r,i){let o={...r},u=se(o);return typeof i==\"function\"?i(u):i&&(i.current=u),At(n,{...r,...u})})}var Re=class extends Mt{},ke=class extends Re{constructor(e){super(e),this.onPresenceChange&&e.setOnPresenceChange(this.onPresenceChange.bind(this)),this.onPrompt&&e.setOnPrompt(this.onPrompt.bind(this)),this.onIdle&&e.setOnIdle(this.onIdle.bind(this)),this.onActive&&e.setOnActive(this.onActive.bind(this)),this.onAction&&e.setOnAction(this.onAction.bind(this)),this.onMessage&&e.setOnMessage(this.onMessage.bind(this))}};import{useEffect as b,useRef as c,useCallback as T,useMemo as Dt}from\"react\";var oe=St(je());var Xe=n=>n.method!==void 0&&n.method===\"call\";var ze=n=>n.error===null&&typeof n.id==\"number\";var Ke=n=>{let e=new Map([[0,()=>{}]]),r=new Map([[0,()=>{}]]),i=new Map,o=new Worker(n);return o.addEventListener(\"message\",({data:m})=>{if(Xe(m)){let{params:{timerId:a,timerType:d}}=m;if(d===\"interval\"){let l=e.get(a);if(typeof l==\"number\"){let p=i.get(l);if(p===void 0||p.timerId!==a||p.timerType!==d)throw new Error(\"The timer is in an undefined state.\")}else if(typeof l<\"u\")l();else throw new Error(\"The timer is in an undefined state.\")}else if(d===\"timeout\"){let l=r.get(a);if(typeof l==\"number\"){let p=i.get(l);if(p===void 0||p.timerId!==a||p.timerType!==d)throw new Error(\"The timer is in an undefined state.\")}else if(typeof l<\"u\")l(),r.delete(a);else throw new Error(\"The timer is in an undefined state.\")}}else if(ze(m)){let{id:a}=m,d=i.get(a);if(d===void 0)throw new Error(\"The timer is in an undefined state.\");let{timerId:l,timerType:p}=d;i.delete(a),p===\"interval\"?e.delete(l):r.delete(l)}else{let{error:{message:a}}=m;throw new Error(a)}}),{clearInterval:m=>{let a=(0,oe.generateUniqueNumber)(i);i.set(a,{timerId:m,timerType:\"interval\"}),e.set(m,a),o.postMessage({id:a,method:\"clear\",params:{timerId:m,timerType:\"interval\"}})},clearTimeout:m=>{let a=(0,oe.generateUniqueNumber)(i);i.set(a,{timerId:m,timerType:\"timeout\"}),r.set(m,a),o.postMessage({id:a,method:\"clear\",params:{timerId:m,timerType:\"timeout\"}})},setInterval:(m,a)=>{let d=(0,oe.generateUniqueNumber)(e);return e.set(d,()=>{m(),typeof e.get(d)==\"function\"&&o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"interval\"}})}),o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"interval\"}}),d},setTimeout:(m,a)=>{let d=(0,oe.generateUniqueNumber)(r);return r.set(d,m),o.postMessage({id:null,method:\"set\",params:{delay:a,now:performance.now(),timerId:d,timerType:\"timeout\"}}),d}}};var Qe=(n,e)=>{let r=null;return()=>{if(r!==null)return r;let i=new Blob([e],{type:\"application/javascript; charset=utf-8\"}),o=URL.createObjectURL(i);return r=n(o),setTimeout(()=>URL.revokeObjectURL(o)),r}};var Ze=`(()=>{\"use strict\";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:\"call\",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener(\"message\",(i=>{let{data:s}=i;try{if(\"clear\"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if(\"interval\"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id \"'.concat(t,'\".'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if(\"timeout\"!==i)throw new Error('The given type \"'.concat(i,'\" is not supported'));(e=>{const r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id \"'.concat(e,'\".'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if(\"set\"!==s.method)throw new Error('The given method \"'.concat(s.method,'\" is not supported'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if(\"interval\"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,\"interval\"))})(i,a,n);else{if(\"timeout\"!==d)throw new Error('The given type \"'.concat(d,'\" is not supported'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,\"timeout\"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();`;var ve=Qe(Ke,Ze),et=n=>ve().clearInterval(n),tt=n=>ve().clearTimeout(n),rt=(n,e)=>ve().setInterval(n,e),nt=(n,e)=>ve().setTimeout(n,e);var M=(typeof window>\"u\"?\"undefined\":typeof window)==\"object\";var I={setTimeout:M?setTimeout.bind(window):setTimeout,clearTimeout:M?clearTimeout.bind(window):clearTimeout,setInterval:M?setInterval.bind(window):setInterval,clearInterval:M?clearInterval.bind(window):clearInterval},ae={setTimeout:nt,clearTimeout:tt,setInterval:rt,clearInterval:et};function Ot(){I.setTimeout=setTimeout,I.clearTimeout=clearTimeout,I.setInterval=setInterval,I.clearInterval=clearInterval,ae.setTimeout=setTimeout,ae.clearTimeout=clearTimeout,ae.setInterval=setInterval,ae.clearInterval=clearInterval}function it(n){I.setTimeout=n.setTimeout,I.clearTimeout=n.clearTimeout,I.setInterval=n.setInterval,I.clearInterval=n.clearInterval}var Q={},Ae=class{name;closed=!1;mc=new MessageChannel;constructor(e){this.name=e,Q[e]=Q[e]||[],Q[e].push(this),this.mc.port1.start(),this.mc.port2.start(),this.onStorage=this.onStorage.bind(this),window.addEventListener(\"storage\",this.onStorage)}onStorage(e){if(e.storageArea!==window.localStorage||e.key.substring(0,this.name.length)!==this.name||e.newValue===null)return;let r=JSON.parse(e.newValue);this.mc.port2.postMessage(r)}postMessage(e){if(this.closed)throw new Error(\"InvalidStateError\");let r=JSON.stringify(e),i=`${this.name}:${String(Date.now())}${String(Math.random())}`;window.localStorage.setItem(i,r),I.setTimeout(()=>{window.localStorage.removeItem(i)},500),Q[this.name].forEach(o=>{o!==this&&o.mc.port2.postMessage(JSON.parse(r))})}close(){if(this.closed)return;this.closed=!0,this.mc.port1.close(),this.mc.port2.close(),window.removeEventListener(\"storage\",this.onStorage);let e=Q[this.name].indexOf(this);Q[this.name].splice(e,1)}get onmessage(){return this.mc.port1.onmessage}set onmessage(e){this.mc.port1.onmessage=e}get onmessageerror(){return this.mc.port1.onmessageerror}set onmessageerror(e){this.mc.port1.onmessageerror=e}addEventListener(e,r){return this.mc.port1.addEventListener(e,r)}removeEventListener(e,r){return this.mc.port1.removeEventListener(e,r)}dispatchEvent(e){return this.mc.port1.dispatchEvent(e)}},st=typeof window>\"u\"?void 0:typeof window.BroadcastChannel==\"function\"?window.BroadcastChannel:Ae;function ot(n=0){return new Promise(e=>I.setTimeout(e,n))}function Te(){return Math.random().toString(36).substring(2)}var Ie=class{options;channel;token=Te();isLeader=!1;isDead=!1;isApplying=!1;reApply=!1;intervals=[];listeners=[];deferred;constructor(e,r){this.channel=e,this.options=r,this.apply=this.apply.bind(this),this.awaitLeadership=this.awaitLeadership.bind(this),this.sendAction=this.sendAction.bind(this)}async apply(){if(this.isLeader||this.isDead)return!1;if(this.isApplying)return this.reApply=!0,!1;this.isApplying=!0;let e=!1,r=i=>{let{token:o,action:u}=i.data;o!==this.token&&(u===0&&o>this.token&&(e=!0),u===1&&(e=!0))};this.channel.addEventListener(\"message\",r);try{return this.sendAction(0),await ot(this.options.responseTime),this.channel.removeEventListener(\"message\",r),this.isApplying=!1,e?this.reApply?this.apply():!1:(this.assumeLead(),!0)}catch{return!1}}awaitLeadership(){if(this.isLeader)return Promise.resolve();let e=!1,r=null;return new Promise(i=>{let o=()=>{if(e)return;e=!0;try{I.clearInterval(r)}catch{}let g=this.intervals.indexOf(r);g>=0&&this.intervals.splice(g,1),this.channel.removeEventListener(\"message\",u),i()};r=I.setInterval(()=>{this.apply().then(()=>{this.isLeader&&o()})},this.options.fallbackInterval),this.intervals.push(r);let u=g=>{let{action:O}=g.data;O===2&&this.apply().then(()=>{this.isLeader&&o()})};this.channel.addEventListener(\"message\",u)})}sendAction(e){this.channel.postMessage({action:e,token:this.token})}assumeLead(){this.isLeader=!0;let e=r=>{let{action:i}=r.data;i===0&&this.sendAction(1)};return this.channel.addEventListener(\"message\",e),this.listeners.push(e),this.sendAction(1)}waitForLeadership(){return this.deferred?this.deferred:(this.deferred=this.awaitLeadership(),this.deferred)}close(){if(!this.isDead){this.isDead=!0,this.isLeader=!1,this.sendAction(2);try{this.listeners.forEach(e=>this.channel.removeEventListener(\"message\",e)),this.intervals.forEach(e=>I.clearInterval(e))}catch{}}}};var Ee=class{channel;options;elector;token=Te();registry=new Map;allIdle=!1;isLastActive=!1;constructor(e){let{channelName:r}=e;if(this.options=e,this.channel=new st(r),this.registry.set(this.token,1),e.leaderElection){let i={fallbackInterval:2e3,responseTime:100};this.elector=new Ie(this.channel,i),this.elector.waitForLeadership()}this.channel.addEventListener(\"message\",i=>{let{action:o,token:u,data:g}=i.data;switch(o){case 3:this.registry.set(u,2);break;case 4:this.registry.delete(u);break;case 5:this.idle(u);break;case 6:this.active(u);break;case 7:this.prompt(u);break;case 8:this.start(u);break;case 9:this.reset(u);break;case 10:this.activate(u);break;case 11:this.pause(u);break;case 12:this.resume(u);break;case 13:this.options.onMessage(g);break}}),this.send(3)}get isLeader(){if(!this.elector)throw new Error('\\u274C Leader election is not enabled. To Enable it set the \"leaderElection\" property to true.');return this.elector.isLeader}prompt(e=this.token){this.registry.set(e,0);let r=[...this.registry.values()].every(i=>i===0);e===this.token&&this.send(7),r&&this.options.onPrompt()}idle(e=this.token){this.registry.set(e,2);let r=[...this.registry.values()].every(i=>i===2);e===this.token&&this.send(5),!this.allIdle&&r&&(this.allIdle=!0,this.options.onIdle())}active(e=this.token){this.allIdle=!1,this.registry.set(e,1);let r=[...this.registry.values()].some(i=>i===1);e===this.token&&this.send(6),r&&this.options.onActive(),this.isLastActive=e===this.token}start(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(8):this.options.start(!0),this.isLastActive=e===this.token}reset(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(9):this.options.reset(!0),this.isLastActive=e===this.token}activate(e=this.token){this.allIdle=!1,this.registry.set(e,1),e===this.token?this.send(10):this.options.activate(!0),this.isLastActive=e===this.token}pause(e=this.token){e===this.token?this.send(11):this.options.pause(!0)}resume(e=this.token){e===this.token?this.send(12):this.options.resume(!0)}message(e){try{this.channel.postMessage({action:13,token:this.token,data:e})}catch{}}send(e){try{this.channel.postMessage({action:e,token:this.token})}catch{}}close(){this.options.leaderElection&&this.elector.close(),this.send(4),this.channel.close()}};var at=M?document:null,xe=[\"mousemove\",\"keydown\",\"wheel\",\"DOMMouseScroll\",\"mousewheel\",\"mousedown\",\"touchstart\",\"touchmove\",\"MSPointerDown\",\"MSPointerMove\",\"visibilitychange\",\"focus\"];function ct(n,e){let r;function i(...o){r&&clearTimeout(r),r=setTimeout(()=>{n(...o),r=null},e)}return i.cancel=function(){clearTimeout(r)},i}function be(n,e){let r=0;return function(...i){let o=new Date().getTime();if(!(o-r<e))return r=o,n(...i)}}var v=()=>Date.now();var Z=2147483647;function se({timeout:n=1e3*60*20,promptTimeout:e=0,promptBeforeIdle:r=0,element:i=at,events:o=xe,timers:u=void 0,immediateEvents:g=[],onPresenceChange:O=()=>{},onPrompt:W=()=>{},onIdle:m=()=>{},onActive:a=()=>{},onAction:d=()=>{},onMessage:l=()=>{},debounce:p=0,throttle:f=0,eventsThrottle:B=200,startOnMount:y=!0,startManually:D=!1,stopOnIdle:ce=!1,crossTab:j=!1,name:Oe=\"idle-timer\",syncTimers:ee=0,leaderElection:Ce=!1,disabled:C=!1}={}){let De=c(v()),ue=c(v()),w=c(null),R=c(null),F=c(0),te=c(0),N=c(0),S=c(0),h=c(!1),E=c(!1),H=c(!1),_=c(!0),re=c(!1),U=c(null),s=c(null),k=c(n),G=c(0);b(()=>{if(e&&console.warn(\"\\u26A0\\uFE0F IdleTimer -- The `promptTimeout` property has been deprecated in favor of `promptBeforeIdle`. It will be removed in the next major release.\"),r&&e)throw new Error(\"\\u274C Both promptTimeout and promptBeforeIdle can not be set. The promptTimeout property will be deprecated in a future version.\");if(n>=Z)throw new Error(`\\u274C The value for the timeout property must fit in a 32 bit signed integer, ${Z}.`);if(e>=Z)throw new Error(`\\u274C The value for the promptTimeout property must fit in a 32 bit signed integer, ${Z}.`);if(r>=Z)throw new Error(`\\u274C The value for the promptBeforeIdle property must fit in a 32 bit signed integer, ${Z}.`);if(r>=n)throw new Error(`\\u274C The value for the promptBeforeIdle property must be less than the timeout property, ${n}.`);if(r?(k.current=n-r,G.current=r):(k.current=n,G.current=e),!_.current){if(D||C)return;h.current&&(X.current(null,L),s.current&&s.current.active()),J()}},[n,e,r,D,C]);let Ne=c(ce);b(()=>{Ne.current=ce},[ce]);let He=c(g),ne=c(i),ye=c([...new Set([...o,...g]).values()]),A=c(C);b(()=>{A.current=C,!_.current&&(C?fe():D||J())},[C]);let ie=c(O);b(()=>{ie.current=O},[O]);let le=c(W);b(()=>{le.current=W},[W]);let me=c(m);b(()=>{me.current=m},[m]);let X=c(a);b(()=>{X.current=a},[a]);let de=c(d);b(()=>{de.current=d},[d]);let z=c(l);b(()=>{z.current=l},[l]);let q=Dt(()=>{let t=(P,K)=>de.current(P,K);return p>0?ct(t,p):f>0?be(t,f):t},[f,p]),_e=c();b(()=>{j&&ee&&(_e.current=be(()=>{s.current.active()},ee))},[j,ee]);let x=()=>{U.current!==null&&(I.clearTimeout(U.current),U.current=null)},$=(t,P=!0)=>{x(),U.current=I.setTimeout(Le,t||k.current),P&&(R.current=v())},Ue=t=>{!E.current&&!h.current&&(le.current(t,L),ie.current({type:\"active\",prompted:!0},L)),S.current=0,N.current=v(),E.current=!0,$(G.current,!1)},Fe=()=>{x(),h.current||(me.current(null,L),ie.current({type:\"idle\"},L)),h.current=!0,w.current=v(),Ne.current?Y():E.current&&(N.current=0,E.current=!1)},we=t=>{x(),(h.current||E.current)&&(X.current(t,L),ie.current({type:\"active\",prompted:!1},L)),E.current=!1,N.current=0,h.current=!1,F.current+=v()-w.current,te.current+=v()-w.current,V(),$()},Le=t=>{if(!h.current){q.cancel&&q.cancel();let K=v()-R.current;if(!(k.current+G.current<K)&&G.current>0&&!E.current){s.current?s.current.prompt():Ue(t);return}s.current?s.current.idle():Fe();return}s.current?s.current.active():we(t)},Pe=t=>{if(!y&&!R.current&&(R.current=v(),X.current(null,L)),q(t,L),E.current)return;if(x(),!h.current&&He.current.includes(t.type)){Le(t);return}let P=v()-R.current;if(h.current&&!ce||!h.current&&P>=k.current){Le(t);return}H.current=!1,S.current=0,N.current=0,$(),j&&ee&&_e.current()},pe=c(Pe);b(()=>{let t=re.current;t&&Y(),B>0?pe.current=be(Pe,B):pe.current=Pe,t&&V()},[B,f,p,de,j,ee]);let V=()=>{M&&ne.current&&(re.current||(ye.current.forEach(t=>{ne.current.addEventListener(t,pe.current,{capture:!0,passive:!0})}),re.current=!0))},Y=(t=!1)=>{M&&ne.current&&(re.current||t)&&(ye.current.forEach(P=>{ne.current.removeEventListener(P,pe.current,{capture:!0})}),re.current=!1)},J=T(t=>A.current?!1:(x(),V(),h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,s.current&&!t&&s.current.start(),$(),!0),[U,h,A,k,s]),Se=T(t=>A.current?!1:(x(),V(),ue.current=v(),F.current+=v()-w.current,te.current+=v()-w.current,F.current=0,h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,s.current&&!t&&s.current.reset(),D||$(),!0),[U,h,k,D,A,s]),Ve=T(t=>A.current?!1:(x(),V(),(h.current||E.current)&&we(),h.current=!1,E.current=!1,H.current=!1,S.current=0,N.current=0,ue.current=v(),s.current&&!t&&s.current.activate(),$(),!0),[U,h,E,A,k,s]),fe=T((t=!1)=>A.current||H.current?!1:(S.current=We(),H.current=!0,Y(),x(),s.current&&!t&&s.current.pause(),!0),[U,A,s]),Me=T((t=!1)=>A.current||!H.current?!1:(H.current=!1,E.current||V(),h.current||$(S.current),N.current&&(N.current=v()),s.current&&!t&&s.current.resume(),!0),[U,k,A,S,s]),ut=T((t,P)=>(s.current?(P&&z.current(t,L),s.current.message(t)):P&&z.current(t,L),!0),[l]),lt=T(()=>h.current,[h]),mt=T(()=>E.current,[E]),dt=T(()=>s.current?s.current.isLeader:null,[s]),pt=T(()=>s.current?s.current.isLastActive:null,[s]),ft=T(()=>s.current?s.current.token:null,[s]),We=T(()=>{if(H.current)return S.current;let t=S.current?S.current:G.current+k.current,P=R.current?v()-R.current:0,K=Math.floor(t-P);return K<0?0:Math.abs(K)},[k,G,E,S,R]),Be=T(()=>Math.round(v()-ue.current),[ue]),Ge=T(()=>Math.round(v()-De.current),[De]),ht=T(()=>w.current?new Date(w.current):null,[w]),vt=T(()=>R.current?new Date(R.current):null,[R]),qe=T(()=>h.current?Math.round(v()-w.current+F.current):Math.round(F.current),[w,F]),$e=T(()=>h.current?Math.round(v()-w.current+te.current):Math.round(te.current),[w,te]),Tt=T(()=>{let t=Math.round(Be()-qe());return t>=0?t:0},[w,F]),It=T(()=>{let t=Math.round(Ge()-$e());return t>=0?t:0},[w,F]);b(()=>{if(p>0&&f>0)throw new Error(\"\\u274C onAction can either be throttled or debounced, not both.\");u&&it(u);let t=()=>{s.current&&s.current.close(),q.cancel&&q.cancel(),x(),Y(!0)};return M&&window.addEventListener(\"beforeunload\",t),()=>{M&&window.removeEventListener(\"beforeunload\",t),s.current&&s.current.close(),q.cancel&&q.cancel(),x(),Y(!0)}},[]),b(()=>{s.current&&s.current.close(),j?s.current=new Ee({channelName:Oe,leaderElection:Ce,onPrompt:()=>{Ue()},onIdle:()=>{Fe()},onActive:()=>{we()},onMessage:t=>{z.current(t,L)},start:J,reset:Se,activate:Ve,pause:fe,resume:Me}):s.current=null},[j,Oe,Ce,le,me,X,z,J,Se,fe,Me]),b(()=>{_.current||(x(),Y(!0)),!(D||C)&&(y?J():V())},[D,y,C,_]),b(()=>{if(!_.current){let t=[...new Set([...o,...g]).values()];if(Y(),ye.current=t,ne.current=i,He.current=g,D||C)return;y?J():V()}},[i,JSON.stringify(o),JSON.stringify(g),_,C,D,y]),b(()=>{_.current&&(_.current=!1)},[_]);let L={message:ut,start:J,reset:Se,activate:Ve,pause:fe,resume:Me,isIdle:lt,isPrompted:mt,isLeader:dt,isLastActiveTab:pt,getTabId:ft,getRemainingTime:We,getElapsedTime:Be,getTotalElapsedTime:Ge,getLastIdleTime:ht,getLastActiveTime:vt,getIdleTime:qe,getTotalIdleTime:$e,getActiveTime:Tt,getTotalActiveTime:It,setOnPresenceChange:t=>{O=t,ie.current=t},setOnPrompt:t=>{W=t,le.current=t},setOnIdle:t=>{m=t,me.current=t},setOnActive:t=>{a=t,X.current=t},setOnAction:t=>{d=t,de.current=t},setOnMessage:t=>{l=t,z.current=t}};return L}import{createContext as Nt,useContext as Ht}from\"react\";import{jsx as Vt}from\"react/jsx-runtime\";var ge=Nt(null);function _t(n){let e=se(n);return Vt(ge.Provider,{value:e,children:n.children})}var Ut=ge.Consumer;function Ft(){return Ht(ge)}export{xe as DEFAULT_EVENTS,ke as IdleTimerComponent,Ut as IdleTimerConsumer,ge as IdleTimerContext,_t as IdleTimerProvider,Ot as createMocks,se as useIdleTimer,Ft as useIdleTimerContext,kt as withIdleTimer,ae as workerTimers};\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","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export { styleSingleton } from './component';\nexport { stylesheetSingleton } from './singleton';\nexport { styleHookSingleton } from './hook';\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","import { RemoveScrollBar } from './component';\nimport { zeroRightClassName, fullWidthClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nexport { RemoveScrollBar, zeroRightClassName, fullWidthClassName, noScrollbarsClassName, removedBarSizeVariable, getGapWidth, };\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","import { __spreadArray } from 'tslib';\nimport { parse } from 'content-type';\n\nvar cache = new Map();\n\nvar cloneSvg = function cloneSvg(sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\n\nvar isLocal = function isLocal() {\n return window.location.protocol === 'file:';\n};\n\nvar makeAjaxRequest = function makeAjaxRequest(url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n if (!contentType) {\n throw new Error('Content type not found');\n }\n var type = parse(contentType).type;\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \".concat(type));\n }\n }\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal() ? 'Note: SVG injection ajax calls do not work locally without ' + 'adjusting security settings in your browser. Or consider ' + 'using a local webserver.' : 'Unable to load SVG file: ' + url);\n }\n if (httpRequest.status === 200 || isLocal() && httpRequest.status === 0) {\n callback(null, httpRequest);\n } else {\n throw new Error('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n }\n }\n } catch (error) {\n httpRequest.abort();\n if (error instanceof Error) {\n callback(error, httpRequest);\n } else {\n throw error;\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n httpRequest.send();\n};\n\nvar requestQueue = {};\nvar queueRequest = function queueRequest(url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n};\nvar processRequestQueue = function processRequestQueue(url) {\n var _loop_1 = function _loop_1(i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = requestQueue[url][i];\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n if (i === requestQueue[url].length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n _loop_1(i);\n }\n};\n\nvar loadSvgCached = function loadSvgCached(url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n cache.set(url, error);\n } else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n processRequestQueue(url);\n });\n};\n\nvar loadSvgUncached = function loadSvgUncached(url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n callback(error);\n } else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\n\nvar idCounter = 0;\nvar uniqueId = function uniqueId() {\n return ++idCounter;\n};\n\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar injectElement = function injectElement(el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var elUrl = el.getAttribute('data-src') || el.getAttribute('src');\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n var elId = el.getAttribute('id');\n if (elId) {\n svg.setAttribute('id', elId);\n }\n var elTitle = el.getAttribute('title');\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n var elWidth = el.getAttribute('width');\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n var elHeight = el.getAttribute('height');\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], (svg.getAttribute('class') || '').split(' '), true), ['injected-svg'], false), (el.getAttribute('class') || '').split(' '), true))).join(' ').trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke']\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n properties_1 = iriElementsAndProperties_1[key];\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n var _loop_1 = function _loop_1(a, elementsLen) {\n currentId_1 = elements_1[a].id;\n newId_1 = currentId_1 + '-' + uniqueId();\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId_1 + '\"]');\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var attrValue = referencingElements[b].getAttribute(property);\n if (attrValue && !attrValue.match(new RegExp('url\\\\(\"?#' + currentId_1 + '\"?\\\\)'))) {\n continue;\n }\n referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');\n }\n });\n var allLinks = svg.querySelectorAll('[*|href]');\n var links = [];\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href');\n if (href && href.toString() === '#' + elements_1[a].id) {\n links.push(allLinks[c]);\n }\n }\n for (var d = 0, linksLen = links.length; d < linksLen; d++) {\n links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);\n }\n elements_1[a].id = newId_1;\n };\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n _loop_1(a);\n }\n });\n }\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n scriptType = scripts[i].getAttribute('type');\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript' || scriptType === 'text/javascript') {\n script = scripts[i].innerText || scripts[i].textContent;\n if (script) {\n scriptsToEval.push(script);\n }\n svg.removeChild(scripts[i]);\n }\n }\n if (scriptsToEval.length > 0 && (evalScripts === 'always' || evalScripts === 'once' && !ranScripts[elUrl])) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n ranScripts[elUrl] = true;\n }\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\n\nvar SVGInjector = function SVGInjector(elements, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.afterAll,\n afterAll = _c === void 0 ? function () {\n return undefined;\n } : _c,\n _d = _b.afterEach,\n afterEach = _d === void 0 ? function () {\n return undefined;\n } : _d,\n _e = _b.beforeEach,\n beforeEach = _e === void 0 ? function () {\n return undefined;\n } : _e,\n _f = _b.cacheRequests,\n cacheRequests = _f === void 0 ? true : _f,\n _g = _b.evalScripts,\n evalScripts = _g === void 0 ? 'never' : _g,\n _h = _b.httpRequestWithCredentials,\n httpRequestWithCredentials = _h === void 0 ? false : _h,\n _j = _b.renumerateIRIElements,\n renumerateIRIElements = _j === void 0 ? true : _j;\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n for (var i = 0, j = elements.length; i < j; i++) {\n injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n if (elements && 'length' in elements && elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n } else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n } else {\n afterAll(0);\n }\n};\n\nexport { SVGInjector };\n//# sourceMappingURL=svg-injector.esm.js.map\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\n\n// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nvar ownerWindow = function ownerWindow(node) {\n var doc = (node == null ? undefined : node.ownerDocument) || document;\n return doc.defaultView || window;\n};\n\n// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nvar shallowDiffers = function shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (var _i in b) {\n if (a[_i] !== b[_i]) {\n return true;\n }\n }\n return false;\n};\n\nvar _excluded = [\"afterInjection\", \"beforeInjection\", \"desc\", \"evalScripts\", \"fallback\", \"httpRequestWithCredentials\", \"loading\", \"renumerateIRIElements\", \"src\", \"title\", \"useRequestCache\", \"wrapper\"];\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar ReactSVG = /*#__PURE__*/function (_React$Component) {\n function ReactSVG() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.initialState = {\n hasError: false,\n isLoading: true\n };\n _this.state = _this.initialState;\n _this._isMounted = false;\n _this.reactWrapper = undefined;\n _this.nonReactWrapper = undefined;\n _this.refCallback = function (reactWrapper) {\n _this.reactWrapper = reactWrapper;\n };\n return _this;\n }\n _inheritsLoose(ReactSVG, _React$Component);\n var _proto = ReactSVG.prototype;\n _proto.renderSVG = function renderSVG() {\n var _this2 = this;\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n var _this$props = this.props,\n desc = _this$props.desc,\n evalScripts = _this$props.evalScripts,\n httpRequestWithCredentials = _this$props.httpRequestWithCredentials,\n renumerateIRIElements = _this$props.renumerateIRIElements,\n src = _this$props.src,\n title = _this$props.title,\n useRequestCache = _this$props.useRequestCache;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n var onError = this.props.onError;\n var beforeInjection = this.props.beforeInjection;\n var afterInjection = this.props.afterInjection;\n var wrapper = this.props.wrapper;\n var nonReactWrapper;\n var nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n } else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n var handleError = function handleError(error) {\n _this2.removeSVG();\n if (!_this2._isMounted) {\n onError(error);\n return;\n }\n _this2.setState(function () {\n return {\n hasError: true,\n isLoading: false\n };\n }, function () {\n onError(error);\n });\n };\n var afterEach = function afterEach(error, svg) {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (_this2._isMounted) {\n _this2.setState(function () {\n return {\n isLoading: false\n };\n }, function () {\n try {\n afterInjection(svg);\n } catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n var beforeEach = function beforeEach(svg) {\n svg.setAttribute('role', 'img');\n if (desc) {\n var originalDesc = svg.querySelector(':scope > desc');\n if (originalDesc) {\n svg.removeChild(originalDesc);\n }\n var newDesc = document.createElement('desc');\n newDesc.innerHTML = desc;\n svg.prepend(newDesc);\n }\n if (title) {\n var originalTitle = svg.querySelector(':scope > title');\n if (originalTitle) {\n svg.removeChild(originalTitle);\n }\n var newTitle = document.createElement('title');\n newTitle.innerHTML = title;\n svg.prepend(newTitle);\n }\n try {\n beforeInjection(svg);\n } catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach: afterEach,\n beforeEach: beforeEach,\n cacheRequests: useRequestCache,\n evalScripts: evalScripts,\n httpRequestWithCredentials: httpRequestWithCredentials,\n renumerateIRIElements: renumerateIRIElements\n });\n }\n };\n _proto.removeSVG = function removeSVG() {\n var _this$nonReactWrapper;\n if ((_this$nonReactWrapper = this.nonReactWrapper) != null && _this$nonReactWrapper.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this3 = this;\n if (shallowDiffers(_extends({}, prevProps), this.props)) {\n this.setState(function () {\n return _this3.initialState;\n }, function () {\n _this3.removeSVG();\n _this3.renderSVG();\n });\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n };\n _proto.render = function render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n var _this$props2 = this.props;\n _this$props2.afterInjection;\n _this$props2.beforeInjection;\n _this$props2.desc;\n _this$props2.evalScripts;\n var Fallback = _this$props2.fallback;\n _this$props2.httpRequestWithCredentials;\n var Loading = _this$props2.loading;\n _this$props2.renumerateIRIElements;\n _this$props2.src;\n _this$props2.title;\n _this$props2.useRequestCache;\n var wrapper = _this$props2.wrapper,\n rest = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var Wrapper = wrapper;\n return /*#__PURE__*/React.createElement(Wrapper, _extends({}, rest, {\n ref: this.refCallback\n }, wrapper === 'svg' ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace\n } : {}), this.state.isLoading && Loading && /*#__PURE__*/React.createElement(Loading, null), this.state.hasError && Fallback && /*#__PURE__*/React.createElement(Fallback, null));\n };\n return ReactSVG;\n}(React.Component);\nReactSVG.defaultProps = {\n afterInjection: function afterInjection() {\n return undefined;\n },\n beforeInjection: function beforeInjection() {\n return undefined;\n },\n desc: '',\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: function onError() {\n return undefined;\n },\n renumerateIRIElements: true,\n title: '',\n useRequestCache: true,\n wrapper: 'div'\n};\nReactSVG.propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n desc: PropTypes.string,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.string]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.string]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n title: PropTypes.string,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg'])\n} ;\n\nexport { ReactSVG };\n//# sourceMappingURL=react-svg.esm.js.map\n","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","/* (ignored) */","/* (ignored) */","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*!\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","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n result = IS_CONSTRUCTOR ? new this() : [];\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError(REDUCE_EMPTY);\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: null,\n last: null,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: null,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = null;\n entry = entry.next;\n }\n state.first = state.last = null;\n state.index = create(null);\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: null\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: null\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n if (data) return data[state.id];\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = globalThis[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.40.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) !== INVALID_DATE) {\n defineBuiltIn(DatePrototype, TO_STRING, function toString() {\n var value = thisTimeValue(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString(this) : INVALID_DATE;\n });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = globalThis.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = globalThis.RangeError;\nvar TypeError = globalThis.TypeError;\nvar QObject = globalThis.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? globalThis : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = globalThis.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n // eslint-disable-next-line sonarjs/inconsistent-function-call -- ok\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar IS_IE11 = !globalThis.ActiveXObject && 'ActiveXObject' in globalThis;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n return FREEZING && fails(function () {\n var frozenArray = freeze([]);\n nativeSet(new $WeakMap(), frozenArray, 1);\n return !isFrozen(frozenArray);\n });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n defineBuiltIns(WeakMapPrototype, {\n set: function set(key, value) {\n var arrayIntegrityLevel;\n if (isArray(key)) {\n if (isFrozen(key)) arrayIntegrityLevel = freeze;\n else if (isSealed(key)) arrayIntegrityLevel = seal;\n }\n nativeSet(this, key, value);\n if (arrayIntegrityLevel) arrayIntegrityLevel(key);\n return this;\n }\n });\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","if (typeof require !== 'undefined') {\n var f = require('fs')\n if (f.default) f = f.default\n exports.default = f\n module.exports = exports.default\n}\n","var fetchApi\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch\n }\n}\n\nif (typeof require !== 'undefined' && (typeof window === 'undefined' || typeof window.document === 'undefined')) {\n var f = fetchApi || require('cross-fetch')\n if (f.default) f = f.default\n exports.default = f\n module.exports = exports.default\n}\n","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, offset as offset$1, shift as shift$1, limitShift as limitShift$1, flip as flip$1, size as size$1, autoPlacement as autoPlacement$1, hide as hide$1, inline as inline$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-guards/src/FocusGuards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nvar Root = FocusGuards;\nexport {\n FocusGuards,\n Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-scope/src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n if (document.activeElement !== document.body) return;\n if (noElementsRemoved(mutations)) return;\n const lastFocusedElementStillInContainer = container?.contains(\n lastFocusedElementRef.current\n );\n if (lastFocusedElementStillInContainer) return;\n\n focus(container);\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nfunction noElementsRemoved(mutations) {\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) {\n return false;\n }\n }\n return true;\n} \nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/portal/src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.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 const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\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 { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = 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 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 canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (!restored) {\n this.#dispatch({ type: \"pending\", variables, isPaused });\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 isPaused\n });\n }\n }\n const data = await this.#retryer.start();\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 } finally {\n this.#mutationCache.runNext(this);\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: action.isPaused,\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\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = (cb) => setTimeout(cb, 0);\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n 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 /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\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/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n timeUntilStale\n} 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 #initialState;\n #revertState;\n #cache;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\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 = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\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.#retryer?.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) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !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.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.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 addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\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 initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (data === void 0) {\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 try {\n this.setData(data);\n } catch (error) {\n onError(error);\n return;\n }\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 canRun: () => true\n });\n return this.#retryer.start();\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 ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\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 fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\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 fetchState\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 = /* @__PURE__ */ new Map();\n this.#mutationId = Date.now();\n }\n #mutations;\n #mutationId;\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 const scope = scopeFor(mutation);\n const mutations = this.#mutations.get(scope) ?? [];\n mutations.push(mutation);\n this.#mutations.set(scope, mutations);\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n const scope = scopeFor(mutation);\n if (this.#mutations.has(scope)) {\n const mutations = this.#mutations.get(scope)?.filter((x) => x !== mutation);\n if (mutations) {\n if (mutations.length === 0) {\n this.#mutations.delete(scope);\n } else {\n this.#mutations.set(scope, mutations);\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const firstPendingMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m.state.status === \"pending\");\n return !firstPendingMutation || firstPendingMutation === mutation;\n }\n runNext(mutation) {\n const foundMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((mutation) => {\n this.remove(mutation);\n });\n });\n }\n getAll() {\n return [...this.#mutations.values()].flat();\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id ?? String(mutation.mutationId);\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\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 let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\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 = ensureQueryFn(context.options, context.fetchOptions);\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 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 const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\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 pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\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 resolveStaleTime,\n skipToken\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(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await 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 const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const cachedData = this.getQueryData(options.queryKey);\n if (cachedData === void 0)\n return this.fetchQuery(options);\n else {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.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 (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? 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 ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\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 ...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 (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.enabled !== true && defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\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","// src/queryObserver.ts\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { fetchState } from \"./query.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\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 = /* @__PURE__ */ new Set();\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 } else {\n this.updateResult();\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 (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\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 || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || 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, onPropTracked) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n trackProp(key) {\n this.#trackedProps.add(key);\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 const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\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 || resolveEnabled(this.options.enabled, this.#currentQuery) === 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 newState = { ...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 newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n if (options.select && newState.data !== void 0) {\n if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(newState.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 = newState.data;\n }\n if (options.placeholderData !== void 0 && data === void 0 && 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 && placeholderData !== void 0) {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (placeholderData !== void 0) {\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 = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\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 (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\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 resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== 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 (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\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","// 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 extends Error {\n constructor(options) {\n super(\"CancelledError\");\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 canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\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 if (isResolved || canContinue()) {\n continueResolve(value);\n }\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 const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? 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 return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise,\n cancel,\n continue: () => {\n continueFn?.();\n return promise;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return promise;\n }\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 globalThis;\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 resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\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 (fetchStatus && 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 aItems = array ? a : Object.keys(a);\n const aSize = aItems.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 if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\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 (ctor === void 0) {\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 if (Object.getPrototypeOf(o) !== Object.prototype) {\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 replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n }\n }\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}\nvar skipToken = Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nexport {\n addToEnd,\n addToStart,\n ensureQueryFn,\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 resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\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__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\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__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n if (typeof defaultedOptions.staleTime !== \"number\") {\n defaultedOptions.staleTime = 1e3;\n }\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1e3);\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.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 && query && shouldThrowError(throwOnError, [result.error, query]);\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.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 {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend\n} 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 client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(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)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client.getQueryCache().get(defaultedOptions.queryHash)\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\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(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\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?.removeObserver(this);\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 const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n 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 { noop, 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}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.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}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n */\nexport var earthRadius = 6371008.8;\n\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n */\nexport var factors = {\n meters: earthRadius,\n metres: earthRadius,\n millimeters: earthRadius * 1000,\n millimetres: earthRadius * 1000,\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n kilometers: earthRadius / 1000,\n kilometres: earthRadius / 1000,\n miles: earthRadius / 1609.344,\n nauticalmiles: earthRadius / 1852,\n inches: earthRadius * 39.370,\n yards: earthRadius / 1.0936,\n feet: earthRadius * 3.28084,\n radians: 1,\n degrees: earthRadius / 111325,\n};\n\n/**\n * Units of measurement factors based on 1 meter.\n */\nexport var unitsFactors = {\n meters: 1,\n metres: 1,\n millimeters: 1000,\n millimetres: 1000,\n centimeters: 100,\n centimetres: 100,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n miles: 1 / 1609.344,\n nauticalmiles: 1 / 1852,\n inches: 39.370,\n yards: 1 / 1.0936,\n feet: 3.28084,\n radians: 1 / earthRadius,\n degrees: 1 / 111325,\n};\n\n/**\n * Area of measurement factors based on 1 square meter.\n */\nexport var areaFactors = {\n meters: 1,\n metres: 1,\n millimeters: 1000000,\n millimetres: 1000000,\n centimeters: 10000,\n centimetres: 10000,\n kilometers: 0.000001,\n kilometres: 0.000001,\n acres: 0.000247105,\n miles: 3.86e-7,\n yards: 1.195990046,\n feet: 10.763910417,\n inches: 1550.003100006\n};\n\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nexport function feature(geometry, properties, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error('options is invalid');\n var bbox = options.bbox;\n var id = options.id;\n\n // Validation\n if (geometry === undefined) throw new Error('geometry is required');\n if (properties && properties.constructor !== Object) throw new Error('properties must be an Object');\n if (bbox) validateBBox(bbox);\n if (id !== 0 && id) validateId(id);\n\n // Main\n var feat = {type: 'Feature'};\n if (id === 0 || id) feat.id = id;\n if (bbox) feat.bbox = bbox;\n feat.properties = properties || {};\n feat.geometry = geometry;\n return feat;\n}\n\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<number>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Geometry\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = 'Point';\n * var coordinates = [110, 50];\n *\n * var geometry = turf.geometry(type, coordinates);\n *\n * //=geometry\n */\nexport function geometry(type, coordinates, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error('options is invalid');\n var bbox = options.bbox;\n\n // Validation\n if (!type) throw new Error('type is required');\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n if (bbox) validateBBox(bbox);\n\n // Main\n var geom;\n switch (type) {\n case 'Point': geom = point(coordinates).geometry; break;\n case 'LineString': geom = lineString(coordinates).geometry; break;\n case 'Polygon': geom = polygon(coordinates).geometry; break;\n case 'MultiPoint': geom = multiPoint(coordinates).geometry; break;\n case 'MultiLineString': geom = multiLineString(coordinates).geometry; break;\n case 'MultiPolygon': geom = multiPolygon(coordinates).geometry; break;\n default: throw new Error(type + ' is invalid');\n }\n if (bbox) geom.bbox = bbox;\n return geom;\n}\n\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nexport function point(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n if (coordinates.length < 2) throw new Error('coordinates must be at least 2 numbers long');\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) throw new Error('coordinates must contain numbers');\n\n return feature({\n type: 'Point',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nexport function points(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\n\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nexport function polygon(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n\n for (var i = 0; i < coordinates.length; i++) {\n var ring = coordinates[i];\n if (ring.length < 4) {\n throw new Error('Each LinearRing of a Polygon must have 4 or more Positions.');\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (i === 0 && j === 0 && !isNumber(ring[0][0]) || !isNumber(ring[0][1])) throw new Error('coordinates must contain numbers');\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error('First and last Position are not equivalent.');\n }\n }\n }\n\n return feature({\n type: 'Polygon',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nexport function polygons(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\n\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nexport function lineString(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (coordinates.length < 2) throw new Error('coordinates must be an array of two or more positions');\n // Check if first point of LineString contains two numbers\n if (!isNumber(coordinates[0][1]) || !isNumber(coordinates[0][1])) throw new Error('coordinates must contain numbers');\n\n return feature({\n type: 'LineString',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<number>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nexport function lineStrings(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\n\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nexport function featureCollection(features, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error('options is invalid');\n var bbox = options.bbox;\n var id = options.id;\n\n // Validation\n if (!features) throw new Error('No features passed');\n if (!Array.isArray(features)) throw new Error('features must be an Array');\n if (bbox) validateBBox(bbox);\n if (id) validateId(id);\n\n // Main\n var fc = {type: 'FeatureCollection'};\n if (id) fc.id = id;\n if (bbox) fc.bbox = bbox;\n fc.features = features;\n return fc;\n}\n\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nexport function multiLineString(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n\n return feature({\n type: 'MultiLineString',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nexport function multiPoint(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n\n return feature({\n type: 'MultiPoint',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nexport function multiPolygon(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n\n return feature({\n type: 'MultiPolygon',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = {\n * \"type\": \"Point\",\n * \"coordinates\": [100, 0]\n * };\n * var line = {\n * \"type\": \"LineString\",\n * \"coordinates\": [ [101, 0], [102, 1] ]\n * };\n * var collection = turf.geometryCollection([pt, line]);\n *\n * //=collection\n */\nexport function geometryCollection(geometries, properties, options) {\n if (!geometries) throw new Error('geometries is required');\n if (!Array.isArray(geometries)) throw new Error('geometries must be an Array');\n\n return feature({\n type: 'GeometryCollection',\n geometries: geometries\n }, properties, options);\n}\n\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nexport function round(num, precision) {\n if (num === undefined || num === null || isNaN(num)) throw new Error('num is required');\n if (precision && !(precision >= 0)) throw new Error('precision must be a positive number');\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\n\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.\n * @returns {number} distance\n */\nexport function radiansToLength(radians, units) {\n if (radians === undefined || radians === null) throw new Error('radians is required');\n\n if (units && typeof units !== 'string') throw new Error('units must be a string');\n var factor = factors[units || 'kilometers'];\n if (!factor) throw new Error(units + ' units is invalid');\n return radians * factor;\n}\n\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.\n * @returns {number} radians\n */\nexport function lengthToRadians(distance, units) {\n if (distance === undefined || distance === null) throw new Error('distance is required');\n\n if (units && typeof units !== 'string') throw new Error('units must be a string');\n var factor = factors[units || 'kilometers'];\n if (!factor) throw new Error(units + ' units is invalid');\n return distance / factor;\n}\n\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nexport function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\n\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nexport function bearingToAzimuth(bearing) {\n if (bearing === null || bearing === undefined) throw new Error('bearing is required');\n\n var angle = bearing % 360;\n if (angle < 0) angle += 360;\n return angle;\n}\n\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nexport function radiansToDegrees(radians) {\n if (radians === null || radians === undefined) throw new Error('radians is required');\n\n var degrees = radians % (2 * Math.PI);\n return degrees * 180 / Math.PI;\n}\n\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nexport function degreesToRadians(degrees) {\n if (degrees === null || degrees === undefined) throw new Error('degrees is required');\n\n var radians = degrees % 360;\n return radians * Math.PI / 180;\n}\n\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {string} originalUnit of the length\n * @param {string} [finalUnit='kilometers'] returned unit\n * @returns {number} the converted length\n */\nexport function convertLength(length, originalUnit, finalUnit) {\n if (length === null || length === undefined) throw new Error('length is required');\n if (!(length >= 0)) throw new Error('length must be a positive number');\n\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit || 'kilometers');\n}\n\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches\n * @param {number} area to be converted\n * @param {string} [originalUnit='meters'] of the distance\n * @param {string} [finalUnit='kilometers'] returned unit\n * @returns {number} the converted distance\n */\nexport function convertArea(area, originalUnit, finalUnit) {\n if (area === null || area === undefined) throw new Error('area is required');\n if (!(area >= 0)) throw new Error('area must be a positive number');\n\n var startFactor = areaFactors[originalUnit || 'meters'];\n if (!startFactor) throw new Error('invalid original units');\n\n var finalFactor = areaFactors[finalUnit || 'kilometers'];\n if (!finalFactor) throw new Error('invalid final units');\n\n return (area / startFactor) * finalFactor;\n}\n\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nexport function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\n\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nexport function isObject(input) {\n return (!!input) && (input.constructor === Object);\n}\n\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nexport function validateBBox(bbox) {\n if (!bbox) throw new Error('bbox is required');\n if (!Array.isArray(bbox)) throw new Error('bbox must be an Array');\n if (bbox.length !== 4 && bbox.length !== 6) throw new Error('bbox must be an Array of 4 or 6 numbers');\n bbox.forEach(function (num) {\n if (!isNumber(num)) throw new Error('bbox must only contain numbers');\n });\n}\n\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nexport function validateId(id) {\n if (!id) throw new Error('id is required');\n if (['string', 'number'].indexOf(typeof id) === -1) throw new Error('id must be a number or a string');\n}\n\n// Deprecated methods\nexport function radians2degrees() {\n throw new Error('method has been renamed to `radiansToDegrees`');\n}\n\nexport function degrees2radians() {\n throw new Error('method has been renamed to `degreesToRadians`');\n}\n\nexport function distanceToDegrees() {\n throw new Error('method has been renamed to `lengthToDegrees`');\n}\n\nexport function distanceToRadians() {\n throw new Error('method has been renamed to `lengthToRadians`');\n}\n\nexport function radiansToDistance() {\n throw new Error('method has been renamed to `radiansToLength`');\n}\n\nexport function bearingToAngle() {\n throw new Error('method has been renamed to `bearingToAzimuth`');\n}\n\nexport function convertDistance() {\n throw new Error('method has been renamed to `convertLength`');\n}\n","var arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (!object) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n if (!object) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nexport function setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n if (Array.isArray(obj) && isNaN(k)) throw new Error(\"Cannot create property \\\"\".concat(k, \"\\\" here since object is an array\"));\n obj[k] = newValue;\n}\nexport function pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nexport function getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\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 _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nvar ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\nvar ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\nvar unicode = {\n Space_Separator: Space_Separator,\n ID_Start: ID_Start,\n ID_Continue: ID_Continue\n};\nvar util = {\n isSpaceSeparator: function isSpaceSeparator(c) {\n return typeof c === 'string' && unicode.Space_Separator.test(c);\n },\n isIdStartChar: function isIdStartChar(c) {\n return typeof c === 'string' && (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c === '$' || c === '_' || unicode.ID_Start.test(c));\n },\n isIdContinueChar: function isIdContinueChar(c) {\n return typeof c === 'string' && (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9' || c === '$' || c === '_' || c === \"\\u200C\" || c === \"\\u200D\" || unicode.ID_Continue.test(c));\n },\n isDigit: function isDigit(c) {\n return typeof c === 'string' && /[0-9]/.test(c);\n },\n isHexDigit: function isHexDigit(c) {\n return typeof c === 'string' && /[0-9A-Fa-f]/.test(c);\n }\n};\nvar source;\nvar parseState;\nvar stack;\nvar pos;\nvar line;\nvar column;\nvar token;\nvar key;\nvar root;\nvar parse = function parse(text, reviver) {\n source = String(text);\n parseState = 'start';\n stack = [];\n pos = 0;\n line = 1;\n column = 0;\n token = undefined;\n key = undefined;\n root = undefined;\n do {\n token = lex();\n parseStates[parseState]();\n } while (token.type !== 'eof');\n if (typeof reviver === 'function') {\n return internalize({\n '': root\n }, '', reviver);\n }\n return root;\n};\nfunction internalize(holder, name, reviver) {\n var value = holder[name];\n if (value != null && _typeof(value) === 'object') {\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n var _key = String(i);\n var replacement = internalize(value, _key, reviver);\n if (replacement === undefined) {\n delete value[_key];\n } else {\n Object.defineProperty(value, _key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n } else {\n for (var _key2 in value) {\n var _replacement = internalize(value, _key2, reviver);\n if (_replacement === undefined) {\n delete value[_key2];\n } else {\n Object.defineProperty(value, _key2, {\n value: _replacement,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n }\n }\n return reviver.call(holder, name, value);\n}\nvar lexState;\nvar buffer;\nvar doubleQuote;\nvar _sign;\nvar c;\nfunction lex() {\n lexState = 'default';\n buffer = '';\n doubleQuote = false;\n _sign = 1;\n for (;;) {\n c = peek();\n var _token = lexStates[lexState]();\n if (_token) {\n return _token;\n }\n }\n}\nfunction peek() {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos));\n }\n}\nfunction read() {\n var c = peek();\n if (c === '\\n') {\n line++;\n column = 0;\n } else if (c) {\n column += c.length;\n } else {\n column++;\n }\n if (c) {\n pos += c.length;\n }\n return c;\n}\nvar lexStates = {\n default: function _default() {\n switch (c) {\n case '\\t':\n case '\\v':\n case '\\f':\n case ' ':\n case \"\\xA0\":\n case \"\\uFEFF\":\n case '\\n':\n case '\\r':\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n return;\n case '/':\n read();\n lexState = 'comment';\n return;\n case undefined:\n read();\n return newToken('eof');\n }\n if (util.isSpaceSeparator(c)) {\n read();\n return;\n }\n return lexStates[parseState]();\n },\n comment: function comment() {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineComment';\n return;\n case '/':\n read();\n lexState = 'singleLineComment';\n return;\n }\n throw invalidChar(read());\n },\n multiLineComment: function multiLineComment() {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineCommentAsterisk';\n return;\n case undefined:\n throw invalidChar(read());\n }\n read();\n },\n multiLineCommentAsterisk: function multiLineCommentAsterisk() {\n switch (c) {\n case '*':\n read();\n return;\n case '/':\n read();\n lexState = 'default';\n return;\n case undefined:\n throw invalidChar(read());\n }\n read();\n lexState = 'multiLineComment';\n },\n singleLineComment: function singleLineComment() {\n switch (c) {\n case '\\n':\n case '\\r':\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n lexState = 'default';\n return;\n case undefined:\n read();\n return newToken('eof');\n }\n read();\n },\n value: function value() {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read());\n case 'n':\n read();\n literal('ull');\n return newToken('null', null);\n case 't':\n read();\n literal('rue');\n return newToken('boolean', true);\n case 'f':\n read();\n literal('alse');\n return newToken('boolean', false);\n case '-':\n case '+':\n if (read() === '-') {\n _sign = -1;\n }\n lexState = 'sign';\n return;\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return;\n case '0':\n buffer = read();\n lexState = 'zero';\n return;\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return;\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', Infinity);\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN);\n case '\"':\n case \"'\":\n doubleQuote = read() === '\"';\n buffer = '';\n lexState = 'string';\n return;\n }\n throw invalidChar(read());\n },\n identifierNameStartEscape: function identifierNameStartEscape() {\n if (c !== 'u') {\n throw invalidChar(read());\n }\n read();\n var u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n break;\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier();\n }\n break;\n }\n buffer += u;\n lexState = 'identifierName';\n },\n identifierName: function identifierName() {\n switch (c) {\n case '$':\n case '_':\n case \"\\u200C\":\n case \"\\u200D\":\n buffer += read();\n return;\n case '\\\\':\n read();\n lexState = 'identifierNameEscape';\n return;\n }\n if (util.isIdContinueChar(c)) {\n buffer += read();\n return;\n }\n return newToken('identifier', buffer);\n },\n identifierNameEscape: function identifierNameEscape() {\n if (c !== 'u') {\n throw invalidChar(read());\n }\n read();\n var u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n case \"\\u200C\":\n case \"\\u200D\":\n break;\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier();\n }\n break;\n }\n buffer += u;\n lexState = 'identifierName';\n },\n sign: function sign() {\n switch (c) {\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return;\n case '0':\n buffer = read();\n lexState = 'zero';\n return;\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return;\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', _sign * Infinity);\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN);\n }\n throw invalidChar(read());\n },\n zero: function zero() {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return;\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return;\n case 'x':\n case 'X':\n buffer += read();\n lexState = 'hexadecimal';\n return;\n }\n return newToken('numeric', _sign * 0);\n },\n decimalInteger: function decimalInteger() {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return;\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken('numeric', _sign * Number(buffer));\n },\n decimalPointLeading: function decimalPointLeading() {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return;\n }\n throw invalidChar(read());\n },\n decimalPoint: function decimalPoint() {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return;\n }\n return newToken('numeric', _sign * Number(buffer));\n },\n decimalFraction: function decimalFraction() {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken('numeric', _sign * Number(buffer));\n },\n decimalExponent: function decimalExponent() {\n switch (c) {\n case '+':\n case '-':\n buffer += read();\n lexState = 'decimalExponentSign';\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return;\n }\n throw invalidChar(read());\n },\n decimalExponentSign: function decimalExponentSign() {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return;\n }\n throw invalidChar(read());\n },\n decimalExponentInteger: function decimalExponentInteger() {\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken('numeric', _sign * Number(buffer));\n },\n hexadecimal: function hexadecimal() {\n if (util.isHexDigit(c)) {\n buffer += read();\n lexState = 'hexadecimalInteger';\n return;\n }\n throw invalidChar(read());\n },\n hexadecimalInteger: function hexadecimalInteger() {\n if (util.isHexDigit(c)) {\n buffer += read();\n return;\n }\n return newToken('numeric', _sign * Number(buffer));\n },\n string: function string() {\n switch (c) {\n case '\\\\':\n read();\n buffer += escape();\n return;\n case '\"':\n if (doubleQuote) {\n read();\n return newToken('string', buffer);\n }\n buffer += read();\n return;\n case \"'\":\n if (!doubleQuote) {\n read();\n return newToken('string', buffer);\n }\n buffer += read();\n return;\n case '\\n':\n case '\\r':\n throw invalidChar(read());\n case \"\\u2028\":\n case \"\\u2029\":\n separatorChar(c);\n break;\n case undefined:\n throw invalidChar(read());\n }\n buffer += read();\n },\n start: function start() {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read());\n }\n lexState = 'value';\n },\n beforePropertyName: function beforePropertyName() {\n switch (c) {\n case '$':\n case '_':\n buffer = read();\n lexState = 'identifierName';\n return;\n case '\\\\':\n read();\n lexState = 'identifierNameStartEscape';\n return;\n case '}':\n return newToken('punctuator', read());\n case '\"':\n case \"'\":\n doubleQuote = read() === '\"';\n lexState = 'string';\n return;\n }\n if (util.isIdStartChar(c)) {\n buffer += read();\n lexState = 'identifierName';\n return;\n }\n throw invalidChar(read());\n },\n afterPropertyName: function afterPropertyName() {\n if (c === ':') {\n return newToken('punctuator', read());\n }\n throw invalidChar(read());\n },\n beforePropertyValue: function beforePropertyValue() {\n lexState = 'value';\n },\n afterPropertyValue: function afterPropertyValue() {\n switch (c) {\n case ',':\n case '}':\n return newToken('punctuator', read());\n }\n throw invalidChar(read());\n },\n beforeArrayValue: function beforeArrayValue() {\n if (c === ']') {\n return newToken('punctuator', read());\n }\n lexState = 'value';\n },\n afterArrayValue: function afterArrayValue() {\n switch (c) {\n case ',':\n case ']':\n return newToken('punctuator', read());\n }\n throw invalidChar(read());\n },\n end: function end() {\n throw invalidChar(read());\n }\n};\nfunction newToken(type, value) {\n return {\n type: type,\n value: value,\n line: line,\n column: column\n };\n}\nfunction literal(s) {\n var _iterator = _createForOfIteratorHelper(s),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _c = _step.value;\n var p = peek();\n if (p !== _c) {\n throw invalidChar(read());\n }\n read();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\nfunction escape() {\n var c = peek();\n switch (c) {\n case 'b':\n read();\n return '\\b';\n case 'f':\n read();\n return '\\f';\n case 'n':\n read();\n return '\\n';\n case 'r':\n read();\n return '\\r';\n case 't':\n read();\n return '\\t';\n case 'v':\n read();\n return '\\v';\n case '0':\n read();\n if (util.isDigit(peek())) {\n throw invalidChar(read());\n }\n return '\\0';\n case 'x':\n read();\n return hexEscape();\n case 'u':\n read();\n return unicodeEscape();\n case '\\n':\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n return '';\n case '\\r':\n read();\n if (peek() === '\\n') {\n read();\n }\n return '';\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n throw invalidChar(read());\n case undefined:\n throw invalidChar(read());\n }\n return read();\n}\nfunction hexEscape() {\n var buffer = '';\n var c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read());\n }\n buffer += read();\n c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read());\n }\n buffer += read();\n return String.fromCodePoint(parseInt(buffer, 16));\n}\nfunction unicodeEscape() {\n var buffer = '';\n var count = 4;\n while (count-- > 0) {\n var _c2 = peek();\n if (!util.isHexDigit(_c2)) {\n throw invalidChar(read());\n }\n buffer += read();\n }\n return String.fromCodePoint(parseInt(buffer, 16));\n}\nvar parseStates = {\n start: function start() {\n if (token.type === 'eof') {\n throw invalidEOF();\n }\n push();\n },\n beforePropertyName: function beforePropertyName() {\n switch (token.type) {\n case 'identifier':\n case 'string':\n key = token.value;\n parseState = 'afterPropertyName';\n return;\n case 'punctuator':\n pop();\n return;\n case 'eof':\n throw invalidEOF();\n }\n },\n afterPropertyName: function afterPropertyName() {\n if (token.type === 'eof') {\n throw invalidEOF();\n }\n parseState = 'beforePropertyValue';\n },\n beforePropertyValue: function beforePropertyValue() {\n if (token.type === 'eof') {\n throw invalidEOF();\n }\n push();\n },\n beforeArrayValue: function beforeArrayValue() {\n if (token.type === 'eof') {\n throw invalidEOF();\n }\n if (token.type === 'punctuator' && token.value === ']') {\n pop();\n return;\n }\n push();\n },\n afterPropertyValue: function afterPropertyValue() {\n if (token.type === 'eof') {\n throw invalidEOF();\n }\n switch (token.value) {\n case ',':\n parseState = 'beforePropertyName';\n return;\n case '}':\n pop();\n }\n },\n afterArrayValue: function afterArrayValue() {\n if (token.type === 'eof') {\n throw invalidEOF();\n }\n switch (token.value) {\n case ',':\n parseState = 'beforeArrayValue';\n return;\n case ']':\n pop();\n }\n },\n end: function end() {}\n};\nfunction push() {\n var value;\n switch (token.type) {\n case 'punctuator':\n switch (token.value) {\n case '{':\n value = {};\n break;\n case '[':\n value = [];\n break;\n }\n break;\n case 'null':\n case 'boolean':\n case 'numeric':\n case 'string':\n value = token.value;\n break;\n }\n if (root === undefined) {\n root = value;\n } else {\n var parent = stack[stack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else {\n Object.defineProperty(parent, key, {\n value: value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n if (value !== null && _typeof(value) === 'object') {\n stack.push(value);\n if (Array.isArray(value)) {\n parseState = 'beforeArrayValue';\n } else {\n parseState = 'beforePropertyName';\n }\n } else {\n var current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n }\n}\nfunction pop() {\n stack.pop();\n var current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n}\nfunction invalidChar(c) {\n if (c === undefined) {\n return syntaxError(\"JSON5: invalid end of input at \".concat(line, \":\").concat(column));\n }\n return syntaxError(\"JSON5: invalid character '\".concat(formatChar(c), \"' at \").concat(line, \":\").concat(column));\n}\nfunction invalidEOF() {\n return syntaxError(\"JSON5: invalid end of input at \".concat(line, \":\").concat(column));\n}\nfunction invalidIdentifier() {\n column -= 5;\n return syntaxError(\"JSON5: invalid identifier character at \".concat(line, \":\").concat(column));\n}\nfunction separatorChar(c) {\n console.warn(\"JSON5: '\".concat(formatChar(c), \"' in strings is not valid ECMAScript; consider escaping\"));\n}\nfunction formatChar(c) {\n var replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n };\n if (replacements[c]) {\n return replacements[c];\n }\n if (c < ' ') {\n var hexString = c.charCodeAt(0).toString(16);\n return '\\\\x' + ('00' + hexString).substring(hexString.length);\n }\n return c;\n}\nfunction syntaxError(message) {\n var err = new SyntaxError(message);\n err.lineNumber = line;\n err.columnNumber = column;\n return err;\n}\nvar stringify = function stringify(value, replacer, space) {\n var stack = [];\n var indent = '';\n var propertyList;\n var replacerFunc;\n var gap = '';\n var quote;\n if (replacer != null && _typeof(replacer) === 'object' && !Array.isArray(replacer)) {\n space = replacer.space;\n quote = replacer.quote;\n replacer = replacer.replacer;\n }\n if (typeof replacer === 'function') {\n replacerFunc = replacer;\n } else if (Array.isArray(replacer)) {\n propertyList = [];\n var _iterator2 = _createForOfIteratorHelper(replacer),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var v = _step2.value;\n var item = void 0;\n if (typeof v === 'string') {\n item = v;\n } else if (typeof v === 'number' || v instanceof String || v instanceof Number) {\n item = String(v);\n }\n if (item !== undefined && propertyList.indexOf(item) < 0) {\n propertyList.push(item);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n if (space instanceof Number) {\n space = Number(space);\n } else if (space instanceof String) {\n space = String(space);\n }\n if (typeof space === 'number') {\n if (space > 0) {\n space = Math.min(10, Math.floor(space));\n gap = ' '.substr(0, space);\n }\n } else if (typeof space === 'string') {\n gap = space.substr(0, 10);\n }\n return serializeProperty('', {\n '': value\n });\n function serializeProperty(key, holder) {\n var value = holder[key];\n if (value != null) {\n if (typeof value.toJSON5 === 'function') {\n value = value.toJSON5(key);\n } else if (typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n }\n if (replacerFunc) {\n value = replacerFunc.call(holder, key, value);\n }\n if (value instanceof Number) {\n value = Number(value);\n } else if (value instanceof String) {\n value = String(value);\n } else if (value instanceof Boolean) {\n value = value.valueOf();\n }\n switch (value) {\n case null:\n return 'null';\n case true:\n return 'true';\n case false:\n return 'false';\n }\n if (typeof value === 'string') {\n return quoteString(value, false);\n }\n if (typeof value === 'number') {\n return String(value);\n }\n if (_typeof(value) === 'object') {\n return Array.isArray(value) ? serializeArray(value) : serializeObject(value);\n }\n return undefined;\n }\n function quoteString(value) {\n var quotes = {\n \"'\": 0.1,\n '\"': 0.2\n };\n var replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n };\n var product = '';\n for (var i = 0; i < value.length; i++) {\n var _c3 = value[i];\n switch (_c3) {\n case \"'\":\n case '\"':\n quotes[_c3]++;\n product += _c3;\n continue;\n case '\\0':\n if (util.isDigit(value[i + 1])) {\n product += '\\\\x00';\n continue;\n }\n }\n if (replacements[_c3]) {\n product += replacements[_c3];\n continue;\n }\n if (_c3 < ' ') {\n var hexString = _c3.charCodeAt(0).toString(16);\n product += '\\\\x' + ('00' + hexString).substring(hexString.length);\n continue;\n }\n product += _c3;\n }\n var quoteChar = quote || Object.keys(quotes).reduce(function (a, b) {\n return quotes[a] < quotes[b] ? a : b;\n });\n product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);\n return quoteChar + product + quoteChar;\n }\n function serializeObject(value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5');\n }\n stack.push(value);\n var stepback = indent;\n indent = indent + gap;\n var keys = propertyList || Object.keys(value);\n var partial = [];\n var _iterator3 = _createForOfIteratorHelper(keys),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _key3 = _step3.value;\n var propertyString = serializeProperty(_key3, value);\n if (propertyString !== undefined) {\n var member = serializeKey(_key3) + ':';\n if (gap !== '') {\n member += ' ';\n }\n member += propertyString;\n partial.push(member);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n var final;\n if (partial.length === 0) {\n final = '{}';\n } else {\n var properties;\n if (gap === '') {\n properties = partial.join(',');\n final = '{' + properties + '}';\n } else {\n var separator = ',\\n' + indent;\n properties = partial.join(separator);\n final = '{\\n' + indent + properties + ',\\n' + stepback + '}';\n }\n }\n stack.pop();\n indent = stepback;\n return final;\n }\n function serializeKey(key) {\n if (key.length === 0) {\n return quoteString(key, true);\n }\n var firstChar = String.fromCodePoint(key.codePointAt(0));\n if (!util.isIdStartChar(firstChar)) {\n return quoteString(key, true);\n }\n for (var i = firstChar.length; i < key.length; i++) {\n if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n return quoteString(key, true);\n }\n }\n return key;\n }\n function serializeArray(value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5');\n }\n stack.push(value);\n var stepback = indent;\n indent = indent + gap;\n var partial = [];\n for (var i = 0; i < value.length; i++) {\n var propertyString = serializeProperty(String(i), value);\n partial.push(propertyString !== undefined ? propertyString : 'null');\n }\n var final;\n if (partial.length === 0) {\n final = '[]';\n } else {\n if (gap === '') {\n var properties = partial.join(',');\n final = '[' + properties + ']';\n } else {\n var separator = ',\\n' + indent;\n var _properties = partial.join(separator);\n final = '[\\n' + indent + _properties + ',\\n' + stepback + ']';\n }\n }\n stack.pop();\n indent = stepback;\n return final;\n }\n};\nvar JSON5 = {\n parse: parse,\n stringify: stringify\n};\nvar lib = JSON5;\nexport default lib;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return typeof subject === 'undefined' || subject === null;\n}\nfunction isObject(subject) {\n return _typeof(subject) === 'object' && subject !== null;\n}\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;else if (isNothing(sequence)) return [];\n return [sequence];\n}\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction repeat(string, count) {\n var result = '',\n cycle;\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n return result;\n}\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\nfunction formatError(exception, compact) {\n var where = '',\n message = exception.reason || '(unknown reason)';\n if (!exception.mark) return message;\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n return message + ' ' + where;\n}\nfunction YAMLException$1(reason, mark) {\n Error.call(this);\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || '';\n }\n}\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\nvar exception = YAMLException$1;\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length\n };\n}\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer) return null;\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [0];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while (match = re.exec(mark.buffer)) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n var result = '',\n i,\n line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(mark.buffer, lineStarts[foundLineNo - i], lineEnds[foundLineNo - i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), maxLineLength);\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + ' | ' + line.str + '\\n' + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(mark.buffer, lineStarts[foundLineNo + i], lineEnds[foundLineNo + i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + ' | ' + line.str + '\\n';\n }\n return result.replace(/\\n$/, '');\n}\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = ['kind', 'multi', 'resolve', 'construct', 'instanceOf', 'predicate', 'represent', 'representName', 'defaultStyle', 'styleAliases'];\nvar YAML_NODE_KINDS = ['scalar', 'sequence', 'mapping'];\nfunction compileStyleAliases(map) {\n var result = {};\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n}\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.options = options;\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () {\n return true;\n };\n this.construct = options['construct'] || function (data) {\n return data;\n };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\nvar type = Type$1;\nfunction compileList(schema, name) {\n var result = [];\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {\n newIndex = previousIndex;\n }\n });\n result[newIndex] = currentType;\n });\n return result;\n}\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n },\n index,\n length;\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) {\n explicit.push(definition);\n } else if (Array.isArray(definition)) {\n explicit = explicit.concat(definition);\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' + 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n};\nvar schema = Schema$1;\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function construct(data) {\n return data !== null ? data : '';\n }\n});\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function construct(data) {\n return data !== null ? data : [];\n }\n});\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function construct(data) {\n return data !== null ? data : {};\n }\n});\nvar failsafe = new schema({\n explicit: [str, seq, map]\n});\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n var max = data.length;\n return max === 1 && data === '~' || max === 4 && (data === 'null' || data === 'Null' || data === 'NULL');\n}\nfunction constructYamlNull() {\n return null;\n}\nfunction isNull(object) {\n return object === null;\n}\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function canonical() {\n return '~';\n },\n lowercase: function lowercase() {\n return 'null';\n },\n uppercase: function uppercase() {\n return 'NULL';\n },\n camelcase: function camelcase() {\n return 'Null';\n },\n empty: function empty() {\n return '';\n }\n },\n defaultStyle: 'lowercase'\n});\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n var max = data.length;\n return max === 4 && (data === 'true' || data === 'True' || data === 'TRUE') || max === 5 && (data === 'false' || data === 'False' || data === 'FALSE');\n}\nfunction constructYamlBoolean(data) {\n return data === 'true' || data === 'True' || data === 'TRUE';\n}\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function lowercase(object) {\n return object ? 'true' : 'false';\n },\n uppercase: function uppercase(object) {\n return object ? 'TRUE' : 'FALSE';\n },\n camelcase: function camelcase(object) {\n return object ? 'True' : 'False';\n }\n },\n defaultStyle: 'lowercase'\n});\nfunction isHexCode(c) {\n return 0x30 <= c && c <= 0x39 || 0x41 <= c && c <= 0x46 || 0x61 <= c && c <= 0x66;\n}\nfunction isOctCode(c) {\n return 0x30 <= c && c <= 0x37;\n}\nfunction isDecCode(c) {\n return 0x30 <= c && c <= 0x39;\n}\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n if (!max) return false;\n ch = data[index];\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n if (ch === '0') {\n if (index + 1 === max) return true;\n ch = data[++index];\n if (ch === 'b') {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n if (ch === 'x') {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n if (ch === 'o') {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n if (ch === '_') return false;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits || ch === '_') return false;\n return true;\n}\nfunction constructYamlInteger(data) {\n var value = data,\n sign = 1,\n ch;\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n ch = value[0];\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === '0') return 0;\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === '[object Number]' && object % 1 === 0 && !common.isNegativeZero(object);\n}\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function binary(obj) {\n return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1);\n },\n octal: function octal(obj) {\n return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1);\n },\n decimal: function decimal(obj) {\n return obj.toString(10);\n },\n hexadecimal: function hexadecimal(obj) {\n return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1);\n }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [2, 'bin'],\n octal: [8, 'oct'],\n decimal: [10, 'dec'],\n hexadecimal: [16, 'hex']\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp('^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + '|[-+]?\\\\.(?:inf|Inf|INF)' + '|\\\\.(?:nan|NaN|NAN))$');\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n if (!YAML_FLOAT_PATTERN.test(data) || data[data.length - 1] === '_') {\n return false;\n }\n return true;\n}\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n if (value === '.inf') {\n return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase':\n return '.nan';\n case 'uppercase':\n return '.NAN';\n case 'camelcase':\n return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase':\n return '.inf';\n case 'uppercase':\n return '.INF';\n case 'camelcase':\n return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase':\n return '-.inf';\n case 'uppercase':\n return '-.INF';\n case 'camelcase':\n return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n res = object.toString(10);\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === '[object Number]' && (object % 1 !== 0 || common.isNegativeZero(object));\n}\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\nvar json = failsafe.extend({\n implicit: [_null, bool, int, float]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp('^([0-9][0-9][0-9][0-9])' + '-([0-9][0-9])' + '-([0-9][0-9])$');\nvar YAML_TIMESTAMP_REGEXP = new RegExp('^([0-9][0-9][0-9][0-9])' + '-([0-9][0-9]?)' + '-([0-9][0-9]?)' + '(?:[Tt]|[ \\\\t]+)' + '([0-9][0-9]?)' + ':([0-9][0-9])' + ':([0-9][0-9])' + '(?:\\\\.([0-9]*))?' + '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + '(?::([0-9][0-9]))?))?$');\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\nfunction constructYamlTimestamp(data) {\n var match,\n year,\n month,\n day,\n hour,\n minute,\n second,\n fraction = 0,\n delta = null,\n tz_hour,\n tz_minute,\n date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null) throw new Error('Date resolve error');\n year = +match[1];\n month = +match[2] - 1;\n day = +match[3];\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction += '0';\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000;\n if (match[9] === '-') delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta) date.setTime(date.getTime() - delta);\n return date;\n}\nfunction representYamlTimestamp(object) {\n return object.toISOString();\n}\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n var code,\n idx,\n bitlen = 0,\n max = data.length,\n map = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n if (code > 64) continue;\n if (code < 0) return false;\n bitlen += 6;\n }\n return bitlen % 8 === 0;\n}\nfunction constructYamlBinary(data) {\n var idx,\n tailbits,\n input = data.replace(/[\\r\\n=]/g, ''),\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n for (idx = 0; idx < max; idx++) {\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 0xFF);\n result.push(bits >> 8 & 0xFF);\n result.push(bits & 0xFF);\n }\n bits = bits << 6 | map.indexOf(input.charAt(idx));\n }\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 0xFF);\n result.push(bits >> 8 & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 0xFF);\n result.push(bits >> 2 & 0xFF);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 0xFF);\n }\n return new Uint8Array(result);\n}\nfunction representYamlBinary(object) {\n var result = '',\n bits = 0,\n idx,\n tail,\n max = object.length,\n map = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if (idx % 3 === 0 && idx) {\n result += map[bits >> 18 & 0x3F];\n result += map[bits >> 12 & 0x3F];\n result += map[bits >> 6 & 0x3F];\n result += map[bits & 0x3F];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map[bits >> 18 & 0x3F];\n result += map[bits >> 12 & 0x3F];\n result += map[bits >> 6 & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[bits >> 10 & 0x3F];\n result += map[bits >> 4 & 0x3F];\n result += map[bits << 2 & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[bits >> 2 & 0x3F];\n result += map[bits << 4 & 0x3F];\n result += map[64];\n result += map[64];\n }\n return result;\n}\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n var objectKeys = [],\n index,\n length,\n pair,\n pairKey,\n pairHasKey,\n object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== '[object Object]') return false;\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;else return false;\n }\n }\n if (!pairHasKey) return false;\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);else return false;\n }\n return true;\n}\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n var index,\n length,\n pair,\n keys,\n result,\n object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if (_toString$1.call(pair) !== '[object Object]') return false;\n keys = Object.keys(pair);\n if (keys.length !== 1) return false;\n result[index] = [keys[0], pair[keys[0]]];\n }\n return true;\n}\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n var index,\n length,\n pair,\n keys,\n result,\n object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [keys[0], pair[keys[0]]];\n }\n return result;\n}\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n var key,\n object = data;\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n return true;\n}\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [timestamp, merge],\n explicit: [binary, omap, pairs, set]\n});\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction is_EOL(c) {\n return c === 0x0A || c === 0x0D;\n}\nfunction is_WHITE_SPACE(c) {\n return c === 0x09 || c === 0x20;\n}\nfunction is_WS_OR_EOL(c) {\n return c === 0x09 || c === 0x20 || c === 0x0A || c === 0x0D;\n}\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D;\n}\nfunction fromHexCode(c) {\n var lc;\n if (0x30 <= c && c <= 0x39) {\n return c - 0x30;\n }\n lc = c | 0x20;\n if (0x61 <= lc && lc <= 0x66) {\n return lc - 0x61 + 10;\n }\n return -1;\n}\nfunction escapedHexLen(c) {\n if (c === 0x78) {\n return 2;\n }\n if (c === 0x75) {\n return 4;\n }\n if (c === 0x55) {\n return 8;\n }\n return 0;\n}\nfunction fromDecimalCode(c) {\n if (0x30 <= c && c <= 0x39) {\n return c - 0x30;\n }\n return -1;\n}\nfunction simpleEscapeSequence(c) {\n return c === 0x30 ? '\\x00' : c === 0x61 ? '\\x07' : c === 0x62 ? '\\x08' : c === 0x74 ? '\\x09' : c === 0x09 ? '\\x09' : c === 0x6E ? '\\x0A' : c === 0x76 ? '\\x0B' : c === 0x66 ? '\\x0C' : c === 0x72 ? '\\x0D' : c === 0x65 ? '\\x1B' : c === 0x20 ? ' ' : c === 0x22 ? '\\x22' : c === 0x2F ? '/' : c === 0x5C ? '\\x5C' : c === 0x4E ? '\\x85' : c === 0x5F ? '\\xA0' : c === 0x4C ? \"\\u2028\" : c === 0x50 ? \"\\u2029\" : '';\n}\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n return String.fromCharCode((c - 0x010000 >> 10) + 0xD800, (c - 0x010000 & 0x03FF) + 0xDC00);\n}\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.firstTabInLine = -1;\n this.documents = [];\n}\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1),\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\nvar directiveHandlers = {\n YAML: function handleYamlDirective(state, name, args) {\n var match, major, minor;\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n state.version = args[0];\n state.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n TAG: function handleTagDirective(state, name, args) {\n var handle, prefix;\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n state.tagMap[handle] = prefix;\n }\n};\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 || 0x20 <= _character && _character <= 0x10FFFF)) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n state.result += _result;\n }\n}\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n sourceKeys = Object.keys(source);\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n if (_typeof(keyNode) === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n if (_typeof(keyNode) === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n keyNode = String(keyNode);\n if (_result === null) {\n _result = {};\n }\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n return _result;\n}\nfunction readLineBreak(state) {\n var ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x0A) {\n state.position++;\n } else if (ch === 0x0D) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09 && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n if (allowComments && ch === 0x23) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A && ch !== 0x0D && ch !== 0);\n }\n if (is_EOL(ch)) {\n readLineBreak(state);\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n while (ch === 0x20) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n return lineBreaks;\n}\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n ch = state.input.charCodeAt(_position);\n if ((ch === 0x2D || ch === 0x2E) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n}\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n ch = state.input.charCodeAt(state.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 0x23 || ch === 0x26 || ch === 0x2A || ch === 0x21 || ch === 0x7C || ch === 0x3E || ch === 0x27 || ch === 0x22 || ch === 0x25 || ch === 0x40 || ch === 0x60) {\n return false;\n }\n if (ch === 0x3F || ch === 0x2D) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n while (ch !== 0) {\n if (ch === 0x3A) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n } else if (ch === 0x23) {\n preceding = state.input.charCodeAt(state.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, captureEnd, false);\n if (state.result) {\n return true;\n }\n state.kind = _kind;\n state.result = _result;\n return false;\n}\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x27) {\n return false;\n }\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x27) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x22) {\n return false;\n }\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n } else if (ch === 0x5C) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n state.result += charFromCodepoint(hexResult);\n state.position++;\n } else {\n throwError(state, 'unknown escape sequence');\n }\n captureStart = captureEnd = state.position;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x5B) {\n terminator = 0x5D;\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B) {\n terminator = 0x7D;\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(++state.position);\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C) {\n throwError(state, \"expected the node content, but found ','\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 0x3F) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n _line = state.line;\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if ((isExplicitPair || state.line === _line) && ch === 0x3A) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x2C) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x7C) {\n folding = false;\n } else if (ch === 0x3E) {\n folding = true;\n } else {\n return false;\n }\n state.kind = 'scalar';\n state.result = '';\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x2B || ch === 0x2D) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === 0x2B ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n } else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (is_WHITE_SPACE(ch));\n if (ch === 0x23) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (!is_EOL(ch) && ch !== 0);\n }\n }\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n ch = state.input.charCodeAt(state.position);\n while ((!detectedIndent || state.lineIndent < textIndent) && ch === 0x20) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n state.result += '\\n';\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n } else if (emptyLines === 0) {\n if (didReadContent) {\n state.result += ' ';\n }\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n } else {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n while (!is_EOL(ch) && ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, state.position, false);\n }\n return true;\n}\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n if (ch !== 0x2D) {\n break;\n }\n following = state.input.charCodeAt(state.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state.position++;\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line;\n if ((ch === 0x3F || ch === 0x3A) && is_WS_OR_EOL(following)) {\n if (ch === 0x3F) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n state.position += 1;\n ch = following;\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n break;\n }\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 0x3A) {\n ch = state.input.charCodeAt(++state.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n }\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n return detected;\n}\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x21) return false;\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x3C) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n } else if (ch === 0x21) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n } else {\n tagHandle = '!';\n }\n _position = state.position;\n if (isVerbatim) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && ch !== 0x3E);\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n if (ch === 0x21) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n ch = state.input.charCodeAt(++state.position);\n }\n tagName = state.input.slice(_position, state.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n if (isVerbatim) {\n state.tag = tagName;\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n}\nfunction readAnchorProperty(state) {\n var _position, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x26) return false;\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\nfunction readAlias(state) {\n var _position, alias, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x2A) return false;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n alias = state.input.slice(_position, state.position);\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1,\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n typeList,\n type,\n flowIndent,\n blockIndent;\n if (state.listener !== null) {\n state.listener('open', state);\n }\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state.position - state.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n } else if (readAlias(state)) {\n hasContent = true;\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n } else if (state.tag === '?') {\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n if (type.resolve(state.result)) {\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n if (!type.resolve(state.result, state.tag)) {\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if (state.lineIndent > 0 || ch !== 0x25) {\n break;\n }\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 0x23) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch)) break;\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n if (ch !== 0) readLineBreak(state);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n skipSeparationSpace(state, true, -1);\n if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 0x2D && state.input.charCodeAt(state.position + 1) === 0x2D && state.input.charCodeAt(state.position + 2) === 0x2D) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n state.documents.push(state.result);\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n if (state.input.charCodeAt(state.position) === 0x2E) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n if (state.position < state.length - 1) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n if (input.charCodeAt(input.length - 1) !== 0x0A && input.charCodeAt(input.length - 1) !== 0x0D) {\n input += '\\n';\n }\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n var state = new State$1(input, options);\n var nullpos = input.indexOf('\\0');\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n state.input += '\\0';\n while (state.input.charCodeAt(state.position) === 0x20) {\n state.lineIndent += 1;\n state.position += 1;\n }\n while (state.position < state.length - 1) {\n readDocument(state);\n }\n return state.documents;\n}\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && _typeof(iterator) === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator !== 'function') {\n return documents;\n }\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) {\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09;\nvar CHAR_LINE_FEED = 0x0A;\nvar CHAR_CARRIAGE_RETURN = 0x0D;\nvar CHAR_SPACE = 0x20;\nvar CHAR_EXCLAMATION = 0x21;\nvar CHAR_DOUBLE_QUOTE = 0x22;\nvar CHAR_SHARP = 0x23;\nvar CHAR_PERCENT = 0x25;\nvar CHAR_AMPERSAND = 0x26;\nvar CHAR_SINGLE_QUOTE = 0x27;\nvar CHAR_ASTERISK = 0x2A;\nvar CHAR_COMMA = 0x2C;\nvar CHAR_MINUS = 0x2D;\nvar CHAR_COLON = 0x3A;\nvar CHAR_EQUALS = 0x3D;\nvar CHAR_GREATER_THAN = 0x3E;\nvar CHAR_QUESTION = 0x3F;\nvar CHAR_COMMERCIAL_AT = 0x40;\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B;\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D;\nvar CHAR_GRAVE_ACCENT = 0x60;\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B;\nvar CHAR_VERTICAL_LINE = 0x7C;\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D;\nvar ESCAPE_SEQUENCES = {};\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\nvar DEPRECATED_BOOLEANS_SYNTAX = ['y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'];\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n if (map === null) return {};\n result = {};\n keys = Object.keys(map);\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n result[tag] = style;\n }\n return result;\n}\nfunction encodeHex(character) {\n var string, handle, length;\n string = character.toString(16).toUpperCase();\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, options['indent'] || 2);\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = common.isNothing(options['flowLevel']) ? -1 : options['flowLevel'];\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n this.tag = null;\n this.result = '';\n this.duplicates = [];\n this.usedDuplicates = null;\n}\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n if (line.length && line !== '\\n') result += ind;\n result += line;\n }\n return result;\n}\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n if (type.resolve(str)) {\n return true;\n }\n }\n return false;\n}\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\nfunction isPrintable(c) {\n return 0x00020 <= c && c <= 0x00007E || 0x000A1 <= c && c <= 0x00D7FF && c !== 0x2028 && c !== 0x2029 || 0x0E000 <= c && c <= 0x00FFFD && c !== CHAR_BOM || 0x10000 <= c && c <= 0x10FFFF;\n}\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;\n}\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (inblock ? cIsNsCharOrWhitespace : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar;\n}\nfunction isPlainSafeFirst(c) {\n return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;\n}\nfunction isPlainSafeLast(c) {\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos),\n second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false;\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1;\n var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1));\n if (singleLineOnly || forceQuotes) {\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine || i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== ' ';\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n hasFoldableLine = hasFoldableLine || shouldTrackWidth && i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== ' ';\n }\n if (!hasLineBreak && !hasFoldableLine) {\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"' + string + '\"' : \"'\" + string + \"'\";\n }\n }\n var indent = state.indent * Math.max(1, level);\n var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }();\n}\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : clip ? '' : '-';\n return indentIndicator + chomp + '\\n';\n}\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\nfunction foldString(string, width) {\n var lineRe = /(\\n+)([^\\n]*)/g;\n var result = function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }();\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n var match;\n while (match = lineRe.exec(string)) {\n var prefix = match[1],\n line = match[2];\n moreIndented = line[0] === ' ';\n result += prefix + (!prevMoreIndented && !moreIndented && line !== '' ? '\\n' : '') + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n return result;\n}\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n var breakRe = / [^ ]/g;\n var match;\n var start = 0,\n end,\n curr = 0,\n next = 0;\n var result = '';\n while (match = breakRe.exec(line)) {\n next = match.index;\n if (next - start > width) {\n end = curr > start ? curr : next;\n result += '\\n' + line.slice(start, end);\n start = end + 1;\n }\n curr = next;\n }\n result += '\\n';\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n return result.slice(1);\n}\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n return result;\n}\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n if (writeNode(state, level, value, false, false) || typeof value === 'undefined' && writeNode(state, level, null, false, false)) {\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === 'undefined' && writeNode(state, level + 1, null, true, true, false, true)) {\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = _result || '[]';\n}\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n if (state.condenseFlow) pairBuffer += '\"';\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n if (!writeNode(state, level, objectKey, false, false)) {\n continue;\n }\n if (state.dump.length > 1024) pairBuffer += '? ';\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n if (!writeNode(state, level, objectValue, false, false)) {\n continue;\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n if (state.sortKeys === true) {\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n throw new exception('sortKeys must be a boolean or a function');\n }\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue;\n }\n explicitPair = state.tag !== null && state.tag !== '?' || state.dump && state.dump.length > 1024;\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n pairBuffer += state.dump;\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue;\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = _result || '{}';\n}\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n if ((type.instanceOf || type.predicate) && (!type.instanceOf || _typeof(object) === 'object' && object instanceof type.instanceOf) && (!type.predicate || type.predicate(object))) {\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n state.dump = _result;\n }\n return true;\n }\n }\n return false;\n}\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n if (block) {\n block = state.flowLevel < 0 || state.flowLevel > level;\n }\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n if (state.tag !== null && state.tag !== '?' || duplicate || state.indent !== 2 && level > 0) {\n compact = false;\n }\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && Object.keys(state.dump).length !== 0) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && state.dump.length !== 0) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n if (state.tag !== null && state.tag !== '?') {\n tagStr = encodeURI(state.tag[0] === '!' ? state.tag.slice(1) : state.tag).replace(/!/g, '%21');\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n return true;\n}\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n inspectNode(object, objects, duplicatesIndexes);\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList, index, length;\n if (object !== null && _typeof(object) === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\nfunction dump$1(input, options) {\n options = options || {};\n var state = new State(options);\n if (!state.noRefs) getDuplicateReferences(input, state);\n var value = input;\n if (state.replacer) {\n value = state.replacer.call({\n '': value\n }, '', value);\n }\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n return '';\n}\nvar dump_1 = dump$1;\nvar dumper = {\n dump: dump_1\n};\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\nvar jsYaml = {\n Type: Type,\n Schema: Schema,\n FAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n JSON_SCHEMA: JSON_SCHEMA,\n CORE_SCHEMA: CORE_SCHEMA,\n DEFAULT_SCHEMA: DEFAULT_SCHEMA,\n load: load,\n loadAll: loadAll,\n dump: dump,\n YAMLException: YAMLException,\n types: types,\n safeLoad: safeLoad,\n safeLoadAll: safeLoadAll,\n safeDump: safeDump\n};\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };","export default (function (filename) {\n if (filename.indexOf('.') < 0) return undefined;\n return \".\".concat(filename.split('.').pop());\n});","import JSON5 from './formats/json5.js';\nimport jsYaml from './formats/yaml.js';\nimport * as fsMod from './fs.cjs';\nimport extname from './extname.js';\nvar isDeno = typeof Deno !== 'undefined';\nvar isBun = typeof Bun !== 'undefined';\nvar YAML = typeof jsYaml !== 'undefined' && jsYaml.load ? jsYaml : undefined;\nvar fs = fsMod ? fsMod.default || fsMod : undefined;\nvar evalAlias = eval;\nvar readFileInNodeSync = function readFileInNodeSync(filename) {\n var data = fs.readFileSync(filename, 'utf8');\n var stat;\n try {\n stat = fs.statSync(filename);\n } catch (e) {}\n return {\n data: data,\n stat: stat\n };\n};\nvar readFileInNode = function readFileInNode(filename) {\n return new Promise(function (resolve, reject) {\n fs.readFile(filename, 'utf8', function (err, data) {\n if (err) return reject(err);\n fs.stat(filename, function (err, stat) {\n if (err) return resolve({\n data: data\n });\n return resolve({\n data: data,\n stat: stat\n });\n });\n });\n });\n};\nvar readFileInDenoSync = function readFileInDenoSync(filename) {\n var decoder = new TextDecoder('utf-8');\n var d = Deno.readFileSync(filename);\n var data = decoder.decode(d);\n var stat;\n try {\n stat = Deno.statSync(filename);\n } catch (e) {}\n return {\n data: data,\n stat: stat\n };\n};\nvar readFileInDeno = function readFileInDeno(filename) {\n return new Promise(function (resolve, reject) {\n var decoder = new TextDecoder('utf-8');\n Deno.readFile(filename).then(function (d) {\n var data = decoder.decode(d);\n Deno.stat(filename).then(function (stat) {\n return resolve({\n data: data,\n stat: stat\n });\n }).catch(function () {\n return resolve({\n data: data\n });\n });\n }).catch(reject);\n });\n};\nvar readFileInBunSync = readFileInNodeSync;\nvar readFileInBun = readFileInNode;\nvar replaceLast = function replaceLast(str, find, replace) {\n var index = str.lastIndexOf(find);\n if (index > -1) {\n return str.substring(0, index) + replace + str.substring(index + find.length);\n }\n return str.toString();\n};\nvar parseData = function parseData(extension, data, options) {\n data = data.replace(/^\\uFEFF/, '');\n var result = {};\n switch (extension) {\n case '.js':\n case '.ts':\n if (typeof module === 'undefined') {\n if (data.indexOf('exports') > -1) {\n data = \"(\".concat(replaceLast(data.substring(data.indexOf('=') + 1), '};', ''), \")\");\n } else if (data.indexOf('export default ') > -1) {\n data = \"(\".concat(replaceLast(data.substring(data.indexOf('export default ') + 15), '};', ''), \")\");\n }\n }\n result = evalAlias(data);\n break;\n case '.json5':\n result = JSON5.parse(data);\n break;\n case '.yml':\n case '.yaml':\n result = YAML.load(data);\n break;\n default:\n result = options.parse(data);\n }\n return result;\n};\nexport function readFileSync(filename, options) {\n var ext = extname(filename);\n var data, stat;\n if (isBun) {\n var ret = readFileInBunSync(filename);\n data = ret.data;\n stat = ret.stat;\n } else if (isDeno) {\n var _ret = readFileInDenoSync(filename);\n data = _ret.data;\n stat = _ret.stat;\n } else {\n var _ret2 = readFileInNodeSync(filename);\n data = _ret2.data;\n stat = _ret2.stat;\n }\n return {\n data: parseData(ext, data, options),\n stat: stat\n };\n}\nexport function readFile(filename) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n parse: JSON.parse\n };\n var ext = extname(filename);\n var fn = isBun ? readFileInBun : isDeno ? readFileInDeno : readFileInNode;\n return new Promise(function (resolve, reject) {\n fn(filename).then(function (_ref) {\n var data = _ref.data,\n stat = _ref.stat;\n try {\n var ret = parseData(ext, data, options);\n resolve({\n data: ret,\n stat: stat\n });\n } catch (err) {\n err.message = 'error parsing ' + filename + ': ' + err.message;\n reject(err);\n }\n }).catch(reject);\n });\n}","import JSON5 from './formats/json5.js';\nimport jsYaml from './formats/yaml.js';\nimport * as fsMod from './fs.cjs';\nimport extname from './extname.js';\nvar isDeno = typeof Deno !== 'undefined';\nvar isBun = typeof Bun !== 'undefined';\nvar YAML = typeof jsYaml !== 'undefined' && jsYaml.load ? jsYaml : undefined;\nvar fs = fsMod ? fsMod.default || fsMod : undefined;\nfunction dirname(path) {\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n matchedSlash = false;\n }\n }\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n}\nvar writeFileInNodeSync = function writeFileInNodeSync(filename, payload) {\n try {\n fs.mkdirSync(dirname(filename), {\n recursive: true\n });\n } catch (err) {}\n return fs.writeFileSync(filename, payload, 'utf8');\n};\nvar writeFileInNode = function writeFileInNode(filename, payload) {\n return new Promise(function (resolve, reject) {\n fs.mkdir(dirname(filename), {\n recursive: true\n }, function () {\n fs.writeFile(filename, payload, 'utf8', function (err, data) {\n return err ? reject(err) : resolve(data);\n });\n });\n });\n};\nvar removeFileInNodeSync = function removeFileInNodeSync(filename) {\n return fs.unlinkSync(filename);\n};\nvar removeFileInNode = function removeFileInNode(filename) {\n return new Promise(function (resolve, reject) {\n return fs.unlink(filename, function (err) {\n return err ? reject(err) : resolve();\n });\n });\n};\nvar writeFileInDenoSync = function writeFileInDenoSync(filename, payload) {\n var encoder = new TextEncoder();\n var data = encoder.encode(payload);\n try {\n Deno.mkdirSync(dirname(filename), {\n recursive: true\n });\n } catch (err) {}\n Deno.writeFileSync(filename, data);\n};\nvar writeFileInDeno = function writeFileInDeno(filename, payload) {\n var encoder = new TextEncoder();\n var data = encoder.encode(payload);\n return new Promise(function (resolve, reject) {\n Deno.mkdir(dirname(filename), {\n recursive: true\n }).then(function () {\n Deno.writeFile(filename, data).then(resolve, reject);\n }).catch(function () {\n Deno.writeFile(filename, data).then(resolve, reject);\n });\n });\n};\nvar removeFileInDenoSync = function removeFileInDenoSync(filename) {\n Deno.removeSync(filename);\n};\nvar removeFileInDeno = function removeFileInDeno(filename) {\n return Deno.remove(filename);\n};\nvar writeFileInBunSync = writeFileInNodeSync;\nvar writeFileInBun = writeFileInNode;\nvar removeFileInBunSync = removeFileInNodeSync;\nvar removeFileInBun = removeFileInNode;\nvar stringifyData = function stringifyData(extension, data, options) {\n var result = '';\n switch (extension) {\n case '.js':\n case '.ts':\n if (typeof module === 'undefined') {\n result = \"export default \".concat(options.stringify(data, null, options.ident));\n } else {\n result = \"module.exports = \".concat(options.stringify(data, null, options.ident));\n }\n break;\n case '.json5':\n result = JSON5.stringify(data, null, options.ident);\n break;\n case '.yml':\n case '.yaml':\n result = YAML.dump(data, {\n ident: options.indent\n });\n break;\n default:\n result = options.stringify(data, null, options.ident);\n }\n return result;\n};\nexport function writeFileSync(filename, payload, options) {\n var ext = extname(filename);\n var data;\n try {\n data = stringifyData(ext, payload, options);\n } catch (err) {\n err.message = 'error stringifying ' + filename + ': ' + err.message;\n throw err;\n }\n if (isBun) {\n return writeFileInBunSync(filename, data);\n } else if (isDeno) {\n return writeFileInDenoSync(filename, data);\n } else {\n return writeFileInNodeSync(filename, data);\n }\n}\nexport function writeFile(filename, payload) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n stringify: JSON.stringify,\n ident: 2\n };\n var ext = extname(filename);\n var data;\n try {\n data = stringifyData(ext, payload, options);\n } catch (err) {\n err.message = 'error stringifying ' + filename + ': ' + err.message;\n throw err;\n }\n var fn = isBun ? writeFileInBun : isDeno ? writeFileInDeno : writeFileInNode;\n return fn(filename, data);\n}\nexport function removeFileSync(filename) {\n if (isBun) {\n return removeFileInBunSync(filename);\n } else if (isDeno) {\n return removeFileInDenoSync(filename);\n } else {\n return removeFileInNodeSync(filename);\n }\n}\nexport function removeFile(filename) {\n var fn = isBun ? removeFileInBun : isDeno ? removeFileInDeno : removeFileInNode;\n return fn(filename);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { defaults, debounce, getPath, setPath, pushPath } from './utils.js';\nimport { readFile, readFileSync } from './readFile.js';\nimport { writeFile as _writeFile, removeFile as _removeFile } from './writeFile.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/{{lng}}/{{ns}}.missing.json',\n ident: 2,\n parse: JSON.parse,\n stringify: JSON.stringify\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n this.queuedWrites = {};\n this.debouncedWrite = debounce(this.write, 250);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var _this = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(language, namespace);\n }\n var filename = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n if (this.allOptions.initImmediate === false) {\n try {\n var _readFileSync = readFileSync(filename, this.options),\n data = _readFileSync.data,\n stat = _readFileSync.stat;\n var timestamp = stat && stat.mtime && stat.mtime.getTime();\n if (this.options.expirationTime && timestamp && timestamp + this.options.expirationTime < Date.now()) {\n this.removeFile(language, namespace);\n return callback(new Error('File expired!'), false);\n }\n callback(null, data, timestamp);\n } catch (err) {\n callback(err, false);\n }\n return;\n }\n readFile(filename, this.options).then(function (_ref) {\n var data = _ref.data,\n stat = _ref.stat;\n var timestamp = stat && stat.mtime && stat.mtime.getTime();\n if (_this.options.expirationTime && timestamp && timestamp + _this.options.expirationTime < Date.now()) {\n _this.removeFile(language, namespace);\n return callback(new Error('File expired!'), false);\n }\n callback(null, data, timestamp);\n }).catch(function (err) {\n return callback(err, false);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this2 = this;\n if (typeof callback !== 'function') callback = function callback() {};\n if (typeof languages === 'string') languages = [languages];\n var todo = languages.length;\n var done = function done() {\n if (! --todo) callback();\n };\n languages.forEach(function (lng) {\n _this2.queue.call(_this2, lng, namespace, key, fallbackValue, done);\n });\n }\n }, {\n key: \"save\",\n value: function save(language, namespace, data, callback) {\n var _this3 = this;\n if (!callback) callback = function callback() {};\n var keys = Object.keys(data);\n var todo = keys.length;\n var done = function done() {\n if (! --todo) callback();\n };\n keys.forEach(function (key) {\n _this3.queue.call(_this3, language, namespace, key, data[key], done);\n });\n }\n }, {\n key: \"removeFile\",\n value: function removeFile(language, namespace) {\n var addPath = this.options.addPath;\n if (typeof this.options.addPath === 'function') {\n addPath = this.options.addPath(language, namespace);\n }\n var filename = this.services.interpolator.interpolate(addPath, {\n lng: language,\n ns: namespace\n });\n _removeFile(filename, this.options).then(function () {}).catch(function () {});\n }\n }, {\n key: \"write\",\n value: function write() {\n for (var lng in this.queuedWrites) {\n var namespaces = this.queuedWrites[lng];\n if (lng !== 'locks') {\n for (var ns in namespaces) {\n this.writeFile(lng, ns);\n }\n }\n }\n }\n }, {\n key: \"writeFile\",\n value: function writeFile(lng, namespace) {\n var _this4 = this;\n var lock = getPath(this.queuedWrites, ['locks', lng, namespace]);\n if (lock) return;\n var addPath = this.options.addPath;\n if (typeof this.options.addPath === 'function') {\n addPath = this.options.addPath(lng, namespace);\n }\n var filename = this.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n var missings = getPath(this.queuedWrites, [lng, namespace]);\n setPath(this.queuedWrites, [lng, namespace], []);\n if (missings.length) {\n setPath(this.queuedWrites, ['locks', lng, namespace], true);\n var proceed = function proceed(_ref2) {\n var data = _ref2.data;\n missings.forEach(function (missing) {\n var path = _this4.allOptions.keySeparator === false ? [missing.key] : missing.key.split(_this4.allOptions.keySeparator || '.');\n try {\n setPath(data, path, missing.fallbackValue);\n } catch (e) {\n if (path.length < 2 || !e.message || e.message.indexOf('Cannot create property') < 0) throw e;\n setPath(data, [missing.key], missing.fallbackValue);\n }\n });\n var proceedWrite = function proceedWrite() {\n setPath(_this4.queuedWrites, ['locks', lng, namespace], false);\n missings.forEach(function (missing) {\n if (missing.callback) missing.callback();\n });\n _this4.debouncedWrite();\n };\n _writeFile(filename, data, _this4.options).then(proceedWrite).catch(proceedWrite);\n };\n readFile(filename, this.options).then(proceed).catch(function () {\n return proceed({\n data: {}\n });\n });\n }\n }\n }, {\n key: \"queue\",\n value: function queue(lng, namespace, key, fallbackValue, callback) {\n pushPath(this.queuedWrites, [lng, namespace], {\n key: key,\n fallbackValue: fallbackValue || '',\n callback: callback\n });\n this.debouncedWrite();\n }\n }]);\n return Backend;\n}();\nBackend.type = 'backend';\nexport default Backend;","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMonths} function options.\n */\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\n\n/**\n * The {@link differenceInDays} function options.\n */\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full days according to the local timezone\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n *\n * @example\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n * //=> 92\n */\nexport function differenceInDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const sign = compareLocalAsc(laterDate_, earlierDate_);\n const difference = Math.abs(\n differenceInCalendarDays(laterDate_, earlierDate_),\n );\n\n laterDate_.setDate(laterDate_.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastDayNotFull = Number(\n compareLocalAsc(laterDate_, earlierDate_) === -sign,\n );\n\n const result = sign * (difference - isLastDayNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(laterDate, earlierDate) {\n const diff =\n laterDate.getFullYear() - earlierDate.getFullYear() ||\n laterDate.getMonth() - earlierDate.getMonth() ||\n laterDate.getDate() - earlierDate.getDate() ||\n laterDate.getHours() - earlierDate.getHours() ||\n laterDate.getMinutes() - earlierDate.getMinutes() ||\n laterDate.getSeconds() - earlierDate.getSeconds() ||\n laterDate.getMilliseconds() - earlierDate.getMilliseconds();\n\n if (diff < 0) return -1;\n if (diff > 0) return 1;\n\n // Return 0 if diff is 0; return NaN if diff is NaN\n return diff;\n}\n\n// Fallback for modularized imports:\nexport default differenceInDays;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link startOfToday} function options.\n */\n\n/**\n * @name startOfToday\n * @category Day Helpers\n * @summary Return the start of today.\n * @pure false\n *\n * @description\n * Return the start of today.\n *\n * @typeParam ContextDate - The `Date` type of the context function.\n *\n * @param options - An object with options\n *\n * @returns The start of today\n *\n * @example\n * // If today is 6 October 2014:\n * const result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\nexport function startOfToday(options) {\n return startOfDay(Date.now(), options);\n}\n\n// Fallback for modularized imports:\nexport default startOfToday;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link subDays} function options.\n */\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount, options) {\n return addDays(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) &&\r\n !Array.isArray(value) &&\r\n isObjectType(value) &&\r\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\r\n ? isCheckBoxInput(event.target)\r\n ? event.target.checked\r\n : event.target.value\r\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\r\n if (!path || !isObject(obj)) {\r\n return defaultValue;\r\n }\r\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\r\n return isUndefined(result) || result === obj\r\n ? isUndefined(obj[path])\r\n ? defaultValue\r\n : obj[path]\r\n : result;\r\n};\n\nconst EVENTS = {\r\n BLUR: 'blur',\r\n FOCUS_OUT: 'focusout',\r\n CHANGE: 'change',\r\n};\r\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n onTouched: 'onTouched',\r\n all: 'all',\r\n};\r\nconst INPUT_VALIDATION_RULES = {\r\n max: 'max',\r\n min: 'min',\r\n maxLength: 'maxLength',\r\n minLength: 'minLength',\r\n pattern: 'pattern',\r\n required: 'required',\r\n validate: 'validate',\r\n};\n\nconst HookFormContext = React.createContext(null);\r\n/**\r\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @returns return all useForm methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * <FormProvider {...methods} >\r\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\r\n * <NestedInput />\r\n * <input type=\"submit\" />\r\n * </form>\r\n * </FormProvider>\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return <input {...register(\"test\")} />;\r\n * }\r\n * ```\r\n */\r\nconst useFormContext = () => React.useContext(HookFormContext);\r\n/**\r\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @param props - all useFrom methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * <FormProvider {...methods} >\r\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\r\n * <NestedInput />\r\n * <input type=\"submit\" />\r\n * </form>\r\n * </FormProvider>\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return <input {...register(\"test\")} />;\r\n * }\r\n * ```\r\n */\r\nconst FormProvider = (props) => {\r\n const { children, ...data } = props;\r\n return (React.createElement(HookFormContext.Provider, { value: data }, props.children));\r\n};\n\nvar getProxyFormState = (formState, _proxyFormState, localProxyFormState, isRoot = true) => {\r\n const result = {};\r\n for (const key in formState) {\r\n Object.defineProperty(result, key, {\r\n get: () => {\r\n const _key = key;\r\n if (_proxyFormState[_key] !== VALIDATION_MODE.all) {\r\n _proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\r\n }\r\n localProxyFormState && (localProxyFormState[_key] = true);\r\n return formState[_key];\r\n },\r\n });\r\n }\r\n return result;\r\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, isRoot) => {\r\n const { name, ...formState } = formStateData;\r\n return (isEmptyObject(formState) ||\r\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\r\n Object.keys(formState).find((key) => _proxyFormState[key] ===\r\n (!isRoot || VALIDATION_MODE.all)));\r\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\r\n ? name === signalName\r\n : !name ||\r\n !signalName ||\r\n name === signalName ||\r\n convertToArrayPayload(name).some((currentName) => currentName &&\r\n (currentName.startsWith(signalName) ||\r\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\r\n const _props = React.useRef(props);\r\n _props.current = props;\r\n React.useEffect(() => {\r\n const tearDown = (subscription) => {\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n };\r\n const subscription = !props.disabled &&\r\n _props.current.subject.subscribe({\r\n next: _props.current.callback,\r\n });\r\n return () => tearDown(subscription);\r\n }, [props.disabled]);\r\n}\n\n/**\r\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\r\n *\r\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, control } = useForm({\r\n * defaultValues: {\r\n * firstName: \"firstName\"\r\n * }});\r\n * const { dirtyFields } = useFormState({\r\n * control\r\n * });\r\n * const onSubmit = (data) => console.log(data);\r\n *\r\n * return (\r\n * <form onSubmit={handleSubmit(onSubmit)}>\r\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\r\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\r\n * <input type=\"submit\" />\r\n * </form>\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFormState(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, disabled, name, exact } = props || {};\r\n const [formState, updateFormState] = React.useState(control._formState);\r\n const _localProxyFormState = React.useRef({\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n });\r\n const _name = React.useRef(name);\r\n const _mounted = React.useRef(true);\r\n _name.current = name;\r\n const callback = React.useCallback((value) => _mounted.current &&\r\n shouldSubscribeByName(_name.current, value.name, exact) &&\r\n shouldRenderFormState(value, _localProxyFormState.current) &&\r\n updateFormState({\r\n ...control._formState,\r\n ...value,\r\n }), [control, exact]);\r\n useSubscribe({\r\n disabled,\r\n callback,\r\n subject: control._subjects.state,\r\n });\r\n React.useEffect(() => {\r\n _mounted.current = true;\r\n return () => {\r\n _mounted.current = false;\r\n };\r\n }, []);\r\n return getProxyFormState(formState, control._proxyFormState, _localProxyFormState.current, false);\r\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal) => {\r\n const isArray = Array.isArray(names);\r\n if (isString(names)) {\r\n isGlobal && _names.watch.add(names);\r\n return get(formValues, names);\r\n }\r\n if (isArray) {\r\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName),\r\n get(formValues, fieldName)));\r\n }\r\n isGlobal && (_names.watchAll = true);\r\n return formValues;\r\n};\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar objectHasFunction = (data) => {\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\n/**\r\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\r\n *\r\n * @remarks\r\n *\r\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\r\n *\r\n * @example\r\n * ```tsx\r\n * const { watch } = useForm();\r\n * const values = useWatch({\r\n * name: \"fieldName\"\r\n * control,\r\n * })\r\n * ```\r\n */\r\nfunction useWatch(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\r\n const _name = React.useRef(name);\r\n _name.current = name;\r\n const callback = React.useCallback((formState) => {\r\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\r\n const fieldValues = generateWatchOutput(_name.current, control._names, formState.values || control._formValues);\r\n updateValue(isUndefined(_name.current) ||\r\n (isObject(fieldValues) && !objectHasFunction(fieldValues))\r\n ? { ...fieldValues }\r\n : Array.isArray(fieldValues)\r\n ? [...fieldValues]\r\n : isUndefined(fieldValues)\r\n ? defaultValue\r\n : fieldValues);\r\n }\r\n }, [control, exact, defaultValue]);\r\n useSubscribe({\r\n disabled,\r\n subject: control._subjects.watch,\r\n callback,\r\n });\r\n const [value, updateValue] = React.useState(isUndefined(defaultValue)\r\n ? control._getWatch(name)\r\n : defaultValue);\r\n React.useEffect(() => {\r\n control._removeUnmounted();\r\n });\r\n return value;\r\n}\n\n/**\r\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns field properties, field and form state. {@link UseControllerReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function Input(props) {\r\n * const { field, fieldState, formState } = useController(props);\r\n * return (\r\n * <div>\r\n * <input {...field} placeholder={props.name} />\r\n * <p>{fieldState.isTouched && \"Touched\"}</p>\r\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\r\n * </div>\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useController(props) {\r\n const methods = useFormContext();\r\n const { name, control = methods.control, shouldUnregister } = props;\r\n const isArrayField = isNameInFieldArray(control._names.array, name);\r\n const value = useWatch({\r\n control,\r\n name,\r\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\r\n exact: true,\r\n });\r\n const formState = useFormState({\r\n control,\r\n name,\r\n });\r\n const _registerProps = React.useRef(control.register(name, {\r\n ...props.rules,\r\n value,\r\n }));\r\n React.useEffect(() => {\r\n const updateMounted = (name, value) => {\r\n const field = get(control._fields, name);\r\n if (field) {\r\n field._f.mount = value;\r\n }\r\n };\r\n updateMounted(name, true);\r\n return () => {\r\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\r\n (isArrayField\r\n ? _shouldUnregisterField && !control._stateFlags.action\r\n : _shouldUnregisterField)\r\n ? control.unregister(name)\r\n : updateMounted(name, false);\r\n };\r\n }, [name, control, isArrayField, shouldUnregister]);\r\n return {\r\n field: {\r\n name,\r\n value,\r\n onChange: React.useCallback((event) => {\r\n _registerProps.current.onChange({\r\n target: {\r\n value: getEventValue(event),\r\n name: name,\r\n },\r\n type: EVENTS.CHANGE,\r\n });\r\n }, [name]),\r\n onBlur: React.useCallback(() => {\r\n _registerProps.current.onBlur({\r\n target: {\r\n value: get(control._formValues, name),\r\n name: name,\r\n },\r\n type: EVENTS.BLUR,\r\n });\r\n }, [name, control]),\r\n ref: React.useCallback((elm) => {\r\n const field = get(control._fields, name);\r\n if (elm && field && elm.focus) {\r\n field._f.ref = {\r\n focus: () => elm.focus(),\r\n select: () => elm.select(),\r\n setCustomValidity: (message) => elm.setCustomValidity(message),\r\n reportValidity: () => elm.reportValidity(),\r\n };\r\n }\r\n }, [name, control._fields]),\r\n },\r\n formState,\r\n fieldState: Object.defineProperties({}, {\r\n invalid: {\r\n get: () => !!get(formState.errors, name),\r\n },\r\n isDirty: {\r\n get: () => !!get(formState.dirtyFields, name),\r\n },\r\n isTouched: {\r\n get: () => !!get(formState.touchedFields, name),\r\n },\r\n error: {\r\n get: () => get(formState.errors, name),\r\n },\r\n }),\r\n };\r\n}\n\n/**\r\n * Component based on `useController` hook to work with controlled component.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns provide field handler functions, field and form state.\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { control } = useForm<FormValues>({\r\n * defaultValues: {\r\n * test: \"\"\r\n * }\r\n * });\r\n *\r\n * return (\r\n * <form>\r\n * <Controller\r\n * control={control}\r\n * name=\"test\"\r\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\r\n * <>\r\n * <input\r\n * onChange={onChange} // send value to hook form\r\n * onBlur={onBlur} // notify when input is touched\r\n * value={value} // return updated value\r\n * ref={ref} // set ref for focus management\r\n * />\r\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\r\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\r\n * </>\r\n * )}\r\n * />\r\n * </form>\r\n * );\r\n * }\r\n * ```\r\n */\r\nconst Controller = (props) => props.render(useController(props));\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? {\r\n ...errors[name],\r\n types: {\r\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\r\n [type]: message || true,\r\n },\r\n }\r\n : {};\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || Array.isArray(objValue)\r\n ? objValue\r\n : !isNaN(+tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\r\n for (const key of fieldsNames || Object.keys(fields)) {\r\n const field = get(fields, key);\r\n if (field) {\r\n const { _f, ...currentField } = field;\r\n if (_f && callback(_f.name)) {\r\n if (_f.ref.focus && isUndefined(_f.ref.focus())) {\r\n break;\r\n }\r\n else if (_f.refs) {\r\n _f.refs[0].focus();\r\n break;\r\n }\r\n }\r\n else if (isObject(currentField)) {\r\n focusFieldBy(currentField, callback);\r\n }\r\n }\r\n }\r\n};\n\nvar generateId = () => {\r\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\r\n ? options.focusName ||\r\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\r\n : '';\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\r\n (_names.watchAll ||\r\n _names.watch.has(name) ||\r\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\r\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nfunction append(data, value) {\r\n return [...data, ...convertToArrayPayload(value)];\r\n}\n\nvar isWeb = typeof window !== 'undefined' &&\r\n typeof window.HTMLElement !== 'undefined' &&\r\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\r\n let copy;\r\n const isArray = Array.isArray(data);\r\n if (data instanceof Date) {\r\n copy = new Date(data);\r\n }\r\n else if (data instanceof Set) {\r\n copy = new Set(data);\r\n }\r\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\r\n (isArray || isObject(data))) {\r\n copy = isArray ? [] : {};\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n copy = data;\r\n break;\r\n }\r\n copy[key] = cloneObject(data[key]);\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n return copy;\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...convertToArrayPayload(value),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar moveArrayAt = (data, from, to) => {\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n if (isUndefined(data[to])) {\r\n data[to] = undefined;\r\n }\r\n data.splice(to, 0, data.splice(from, 1)[0]);\r\n return data;\r\n};\n\nfunction prepend(data, value) {\r\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\r\n}\n\nfunction removeAtIndexes(data, indexes) {\r\n let i = 0;\r\n const temp = [...data];\r\n for (const index of indexes) {\r\n temp.splice(index - i, 1);\r\n i++;\r\n }\r\n return compact(temp).length ? temp : [];\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\r\n};\n\nfunction baseGet(object, updatePath) {\r\n const length = updatePath.slice(0, -1).length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return object;\r\n}\r\nfunction unset(object, path) {\r\n const updatePath = isKey(path) ? [path] : stringToPath(path);\r\n const childObject = updatePath.length == 1 ? object : baseGet(object, updatePath);\r\n const key = updatePath[updatePath.length - 1];\r\n let previousObjRef;\r\n if (childObject) {\r\n delete childObject[key];\r\n }\r\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\r\n let index = -1;\r\n let objectRef;\r\n const currentPaths = updatePath.slice(0, -(k + 1));\r\n const currentPathsLength = currentPaths.length - 1;\r\n if (k > 0) {\r\n previousObjRef = object;\r\n }\r\n while (++index < currentPaths.length) {\r\n const item = currentPaths[index];\r\n objectRef = objectRef ? objectRef[item] : object[item];\r\n if (currentPathsLength === index &&\r\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\r\n (Array.isArray(objectRef) &&\r\n !objectRef.filter((data) => !isUndefined(data)).length))) {\r\n previousObjRef ? delete previousObjRef[item] : delete object[item];\r\n }\r\n previousObjRef = objectRef;\r\n }\r\n }\r\n return object;\r\n}\n\nvar updateAt = (fieldValues, index, value) => {\r\n fieldValues[index] = value;\r\n return fieldValues;\r\n};\n\n/**\r\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\r\n *\r\n * @param props - useFieldArray props\r\n *\r\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\r\n * defaultValues: {\r\n * test: []\r\n * }\r\n * });\r\n * const { fields, append } = useFieldArray({\r\n * control,\r\n * name: \"test\"\r\n * });\r\n *\r\n * return (\r\n * <form onSubmit={handleSubmit(data => console.log(data))}>\r\n * {fields.map((item, index) => (\r\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\r\n * ))}\r\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\r\n * append\r\n * </button>\r\n * <input type=\"submit\" />\r\n * </form>\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFieldArray(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\r\n const [fields, setFields] = React.useState(control._getFieldArray(name));\r\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\r\n const _fieldIds = React.useRef(fields);\r\n const _name = React.useRef(name);\r\n const _actioned = React.useRef(false);\r\n _name.current = name;\r\n _fieldIds.current = fields;\r\n control._names.array.add(name);\r\n const callback = React.useCallback(({ values, name: fieldArrayName, }) => {\r\n if (fieldArrayName === _name.current || !fieldArrayName) {\r\n const fieldValues = get(values, _name.current, []);\r\n setFields(fieldValues);\r\n ids.current = fieldValues.map(generateId);\r\n }\r\n }, []);\r\n useSubscribe({\r\n callback,\r\n subject: control._subjects.array,\r\n });\r\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\r\n _actioned.current = true;\r\n control._updateFieldArray(name, updatedFieldArrayValues);\r\n }, [control, name]);\r\n const append$1 = (value, options) => {\r\n const appendValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\r\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\r\n ids.current = append(ids.current, appendValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const prepend$1 = (value, options) => {\r\n const prependValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\r\n control._names.focus = getFocusFieldName(name, 0, options);\r\n ids.current = prepend(ids.current, prependValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const remove = (index) => {\r\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\r\n ids.current = removeArrayAt(ids.current, index);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\r\n argA: index,\r\n });\r\n };\r\n const insert$1 = (index, value, options) => {\r\n const insertValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\r\n control._names.focus = getFocusFieldName(name, index, options);\r\n ids.current = insert(ids.current, index, insertValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\r\n argA: index,\r\n argB: fillEmptyArray(value),\r\n });\r\n };\r\n const swap = (indexA, indexB) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\r\n swapArrayAt(ids.current, indexA, indexB);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n }, false);\r\n };\r\n const move = (from, to) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n moveArrayAt(updatedFieldArrayValues, from, to);\r\n moveArrayAt(ids.current, from, to);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n }, false);\r\n };\r\n const update = (index, value) => {\r\n const updateValue = cloneObject(value);\r\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\r\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\r\n updateValues(updatedFieldArrayValues);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\r\n argA: index,\r\n argB: updateValue,\r\n }, true, false);\r\n };\r\n const replace = (value) => {\r\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\r\n ids.current = updatedFieldArrayValues.map(generateId);\r\n updateValues([...updatedFieldArrayValues]);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\r\n };\r\n React.useEffect(() => {\r\n control._stateFlags.action = false;\r\n isWatched(name, control._names) && control._subjects.state.next({});\r\n if (_actioned.current) {\r\n control._executeSchema([name]).then((result) => {\r\n const error = get(result.errors, name);\r\n const existingError = get(control._formState.errors, name);\r\n if (existingError ? !error && existingError.type : error && error.type) {\r\n error\r\n ? set(control._formState.errors, name, error)\r\n : unset(control._formState.errors, name);\r\n control._subjects.state.next({\r\n errors: control._formState.errors,\r\n });\r\n }\r\n });\r\n }\r\n control._subjects.watch.next({\r\n name,\r\n values: control._formValues,\r\n });\r\n control._names.focus &&\r\n focusFieldBy(control._fields, (key) => key.startsWith(control._names.focus));\r\n control._names.focus = '';\r\n control._proxyFormState.isValid && control._updateValid();\r\n }, [fields, name, control]);\r\n React.useEffect(() => {\r\n !get(control._formValues, name) && control._updateFieldArray(name);\r\n return () => {\r\n (control._options.shouldUnregister || shouldUnregister) &&\r\n control.unregister(name);\r\n };\r\n }, [name, control, keyName, shouldUnregister]);\r\n return {\r\n swap: React.useCallback(swap, [updateValues, name, control]),\r\n move: React.useCallback(move, [updateValues, name, control]),\r\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\r\n append: React.useCallback(append$1, [updateValues, name, control]),\r\n remove: React.useCallback(remove, [updateValues, name, control]),\r\n insert: React.useCallback(insert$1, [updateValues, name, control]),\r\n update: React.useCallback(update, [updateValues, name, control]),\r\n replace: React.useCallback(replace, [updateValues, name, control]),\r\n fields: React.useMemo(() => fields.map((field, index) => ({\r\n ...field,\r\n [keyName]: ids.current[index] || generateId(),\r\n })), [fields, keyName]),\r\n };\r\n}\n\nfunction createSubject() {\r\n let _observers = [];\r\n const next = (value) => {\r\n for (const observer of _observers) {\r\n observer.next(value);\r\n }\r\n };\r\n const subscribe = (observer) => {\r\n _observers.push(observer);\r\n return {\r\n unsubscribe: () => {\r\n _observers = _observers.filter((o) => o !== observer);\r\n },\r\n };\r\n };\r\n const unsubscribe = () => {\r\n _observers = [];\r\n };\r\n return {\r\n get observers() {\r\n return _observers;\r\n },\r\n next,\r\n subscribe,\r\n unsubscribe,\r\n };\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\r\n if (isPrimitive(object1) || isPrimitive(object2)) {\r\n return object1 === object2;\r\n }\r\n if (isDateObject(object1) && isDateObject(object2)) {\r\n return object1.getTime() === object2.getTime();\r\n }\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n if (!keys2.includes(key)) {\r\n return false;\r\n }\r\n if (key !== 'ref') {\r\n const val2 = object2[key];\r\n if ((isDateObject(val1) && isDateObject(val2)) ||\r\n (isObject(val1) && isObject(val2)) ||\r\n (Array.isArray(val1) && Array.isArray(val2))\r\n ? !deepEqual(val1, val2)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nvar getValidationModes = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n isOnAll: mode === VALIDATION_MODE.all,\r\n isOnTouch: mode === VALIDATION_MODE.onTouched,\r\n});\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isHTMLElement = (value) => {\r\n const owner = value ? value.ownerDocument : 0;\r\n const ElementClass = owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement;\r\n return value instanceof ElementClass;\r\n};\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction markFieldsDirty(data, fields = {}) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n fields[key] = Array.isArray(data[key]) ? [] : {};\r\n markFieldsDirty(data[key], fields[key]);\r\n }\r\n else if (!isNullOrUndefined(data[key])) {\r\n fields[key] = true;\r\n }\r\n }\r\n }\r\n return fields;\r\n}\r\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n if (isUndefined(formValues) ||\r\n isPrimitive(dirtyFieldsFromValues[key])) {\r\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\r\n ? markFieldsDirty(data[key], [])\r\n : { ...markFieldsDirty(data[key]) };\r\n }\r\n else {\r\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\r\n }\r\n }\r\n else {\r\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\r\n }\r\n }\r\n }\r\n return dirtyFieldsFromValues;\r\n}\r\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (Array.isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.checked && !option.disabled)\r\n .map((option) => option.value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n return options[0].checked && !options[0].disabled\r\n ? // @ts-expect-error expected to work in the browser\r\n options[0].attributes && !isUndefined(options[0].attributes.value)\r\n ? isUndefined(options[0].value) || options[0].value === ''\r\n ? validResult\r\n : { value: options[0].value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\r\n ? value\r\n : valueAsNumber\r\n ? value === '' || isNullOrUndefined(value)\r\n ? NaN\r\n : +value\r\n : valueAsDate && isString(value)\r\n ? new Date(value)\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: null,\r\n};\r\nvar getRadioValue = (options) => Array.isArray(options)\r\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\r\n ? {\r\n isValid: true,\r\n value: option.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nfunction getFieldValue(_f) {\r\n const ref = _f.ref;\r\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\r\n return;\r\n }\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return getRadioValue(_f.refs).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return [...ref.selectedOptions].map(({ value }) => value);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(_f.refs).value;\r\n }\r\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\r\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\r\n const fields = {};\r\n for (const name of fieldsNames) {\r\n const field = get(_fields, name);\r\n field && set(fields, name, field._f);\r\n }\r\n return {\r\n criteriaMode,\r\n names: [...fieldsNames],\r\n fields,\r\n shouldUseNativeValidation,\r\n };\r\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getRuleValue = (rule) => isUndefined(rule)\r\n ? undefined\r\n : isRegex(rule)\r\n ? rule.source\r\n : isObject(rule)\r\n ? isRegex(rule.value)\r\n ? rule.value.source\r\n : rule.value\r\n : rule;\n\nvar hasValidation = (options) => options.mount &&\r\n (options.required ||\r\n options.min ||\r\n options.max ||\r\n options.maxLength ||\r\n options.minLength ||\r\n options.pattern ||\r\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\r\n const error = get(errors, name);\r\n if (error || isKey(name)) {\r\n return {\r\n error,\r\n name,\r\n };\r\n }\r\n const names = name.split('.');\r\n while (names.length) {\r\n const fieldName = names.join('.');\r\n const field = get(_fields, fieldName);\r\n const foundError = get(errors, fieldName);\r\n if (field && !Array.isArray(field) && name !== fieldName) {\r\n return { name };\r\n }\r\n if (foundError && foundError.type) {\r\n return {\r\n name: fieldName,\r\n error: foundError,\r\n };\r\n }\r\n names.pop();\r\n }\r\n return {\r\n name,\r\n };\r\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\r\n if (mode.isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && mode.isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nvar isMessage = (value) => isString(value) || React.isValidElement(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) ||\r\n (Array.isArray(result) && result.every(isMessage)) ||\r\n (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar validateField = async (field, inputValue, validateAllFieldCriteria, shouldUseNativeValidation) => {\r\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\r\n if (!mount || disabled) {\r\n return {};\r\n }\r\n const inputRef = refs ? refs[0] : ref;\r\n const setCustomValidity = (message) => {\r\n if (shouldUseNativeValidation && inputRef.reportValidity) {\r\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || ' ');\r\n inputRef.reportValidity();\r\n }\r\n };\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = ((valueAsNumber || isFileInput(ref)) && !ref.value) ||\r\n inputValue === '' ||\r\n (Array.isArray(inputValue) && !inputValue.length);\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = {\r\n type: exceedMax ? maxType : minType,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\r\n };\r\n };\r\n if (required &&\r\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\r\n (isBoolean(inputValue) && !inputValue) ||\r\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\r\n (isRadio && !getRadioValue(refs).isValid))) {\r\n const { value, message } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (value) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.required,\r\n message,\r\n ref: inputRef,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\r\n const valueNumber = ref.valueAsNumber || +inputValue;\r\n if (!isNullOrUndefined(maxOutput.value)) {\r\n exceedMax = valueNumber > maxOutput.value;\r\n }\r\n if (!isNullOrUndefined(minOutput.value)) {\r\n exceedMin = valueNumber < minOutput.value;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(inputValue);\r\n if (isString(maxOutput.value)) {\r\n exceedMax = valueDate > new Date(maxOutput.value);\r\n }\r\n if (isString(minOutput.value)) {\r\n exceedMin = valueDate < new Date(minOutput.value);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if ((maxLength || minLength) && !isEmpty && isString(inputValue)) {\r\n const maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n inputValue.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n inputValue.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (pattern && !isEmpty && isString(inputValue)) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.pattern,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n if (isFunction(validate)) {\r\n const result = await validate(inputValue);\r\n const validateError = getValidateError(result, inputRef);\r\n if (validateError) {\r\n error[name] = {\r\n ...validateError,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(validateError.message);\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n let validationResult = {};\r\n for (const key in validate) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateError = getValidateError(await validate[key](inputValue), inputRef, key);\r\n if (validateError) {\r\n validationResult = {\r\n ...validateError,\r\n ...appendErrorsCurry(key, validateError.message),\r\n };\r\n setCustomValidity(validateError.message);\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\r\n }\r\n }\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = {\r\n ref: inputRef,\r\n ...validationResult,\r\n };\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n setCustomValidity(true);\r\n return error;\r\n};\n\nconst defaultOptions = {\r\n mode: VALIDATION_MODE.onSubmit,\r\n reValidateMode: VALIDATION_MODE.onChange,\r\n shouldFocusError: true,\r\n};\r\nfunction createFormControl(props = {}) {\r\n let _options = {\r\n ...defaultOptions,\r\n ...props,\r\n };\r\n let _formState = {\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n };\r\n let _fields = {};\r\n let _defaultValues = cloneObject(_options.defaultValues) || {};\r\n let _formValues = _options.shouldUnregister\r\n ? {}\r\n : cloneObject(_defaultValues);\r\n let _stateFlags = {\r\n action: false,\r\n mount: false,\r\n watch: false,\r\n };\r\n let _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n };\r\n let delayErrorCallback;\r\n let timer = 0;\r\n let validateFields = {};\r\n const _proxyFormState = {\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n };\r\n const _subjects = {\r\n watch: createSubject(),\r\n array: createSubject(),\r\n state: createSubject(),\r\n };\r\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\r\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\r\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\r\n const debounce = (callback) => (wait) => {\r\n clearTimeout(timer);\r\n timer = window.setTimeout(callback, wait);\r\n };\r\n const _updateValid = async (shouldSkipRender) => {\r\n let isValid = false;\r\n if (_proxyFormState.isValid) {\r\n isValid = _options.resolver\r\n ? isEmptyObject((await _executeSchema()).errors)\r\n : await executeBuildInValidation(_fields, true);\r\n if (!shouldSkipRender && isValid !== _formState.isValid) {\r\n _formState.isValid = isValid;\r\n _subjects.state.next({\r\n isValid,\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\r\n if (args && method) {\r\n _stateFlags.action = true;\r\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\r\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\r\n shouldSetValues && set(_fields, name, fieldValues);\r\n }\r\n if (_proxyFormState.errors &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.errors, name))) {\r\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.errors, name, errors);\r\n unsetEmptyArray(_formState.errors, name);\r\n }\r\n if (_proxyFormState.touchedFields &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.touchedFields, name))) {\r\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\r\n }\r\n if (_proxyFormState.dirtyFields) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n }\r\n _subjects.state.next({\r\n isDirty: _getDirty(name, values),\r\n dirtyFields: _formState.dirtyFields,\r\n errors: _formState.errors,\r\n isValid: _formState.isValid,\r\n });\r\n }\r\n else {\r\n set(_formValues, name, values);\r\n }\r\n };\r\n const updateErrors = (name, error) => {\r\n set(_formState.errors, name, error);\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n });\r\n };\r\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\r\n const field = get(_fields, name);\r\n if (field) {\r\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\r\n isUndefined(defaultValue) ||\r\n (ref && ref.defaultChecked) ||\r\n shouldSkipSetValueAs\r\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\r\n : setFieldValue(name, defaultValue);\r\n _stateFlags.mount && _updateValid();\r\n }\r\n };\r\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\r\n let isFieldDirty = false;\r\n const output = {\r\n name,\r\n };\r\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\r\n if (_proxyFormState.isDirty) {\r\n const isPreviousFormDirty = _formState.isDirty;\r\n _formState.isDirty = output.isDirty = _getDirty();\r\n isFieldDirty = isPreviousFormDirty !== output.isDirty;\r\n }\r\n if (_proxyFormState.dirtyFields && (!isBlurEvent || shouldDirty)) {\r\n const isPreviousFieldDirty = get(_formState.dirtyFields, name);\r\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\r\n isCurrentFieldPristine\r\n ? unset(_formState.dirtyFields, name)\r\n : set(_formState.dirtyFields, name, true);\r\n output.dirtyFields = _formState.dirtyFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n isPreviousFieldDirty !== get(_formState.dirtyFields, name);\r\n }\r\n if (isBlurEvent && !isPreviousFieldTouched) {\r\n set(_formState.touchedFields, name, isBlurEvent);\r\n output.touchedFields = _formState.touchedFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n (_proxyFormState.touchedFields &&\r\n isPreviousFieldTouched !== isBlurEvent);\r\n }\r\n isFieldDirty && shouldRender && _subjects.state.next(output);\r\n return isFieldDirty ? output : {};\r\n };\r\n const shouldRenderByError = async (name, isValid, error, fieldState) => {\r\n const previousFieldError = get(_formState.errors, name);\r\n const shouldUpdateValid = _proxyFormState.isValid && _formState.isValid !== isValid;\r\n if (props.delayError && error) {\r\n delayErrorCallback = debounce(() => updateErrors(name, error));\r\n delayErrorCallback(props.delayError);\r\n }\r\n else {\r\n clearTimeout(timer);\r\n delayErrorCallback = null;\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\r\n !isEmptyObject(fieldState) ||\r\n shouldUpdateValid) {\r\n const updatedFormState = {\r\n ...fieldState,\r\n ...(shouldUpdateValid ? { isValid } : {}),\r\n errors: _formState.errors,\r\n name,\r\n };\r\n _formState = {\r\n ..._formState,\r\n ...updatedFormState,\r\n };\r\n _subjects.state.next(updatedFormState);\r\n }\r\n validateFields[name]--;\r\n if (_proxyFormState.isValidating &&\r\n !Object.values(validateFields).some((v) => v)) {\r\n _subjects.state.next({\r\n isValidating: false,\r\n });\r\n validateFields = {};\r\n }\r\n };\r\n const _executeSchema = async (name) => _options.resolver\r\n ? await _options.resolver({ ..._formValues }, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation))\r\n : {};\r\n const executeSchemaAndUpdateState = async (names) => {\r\n const { errors } = await _executeSchema();\r\n if (names) {\r\n for (const name of names) {\r\n const error = get(errors, name);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n }\r\n else {\r\n _formState.errors = errors;\r\n }\r\n return errors;\r\n };\r\n const executeBuildInValidation = async (fields, shouldOnlyCheckValid, context = {\r\n valid: true,\r\n }) => {\r\n for (const name in fields) {\r\n const field = fields[name];\r\n if (field) {\r\n const { _f: fieldReference, ...fieldValue } = field;\r\n if (fieldReference) {\r\n const fieldError = await validateField(field, get(_formValues, fieldReference.name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation);\r\n if (fieldError[fieldReference.name]) {\r\n context.valid = false;\r\n if (shouldOnlyCheckValid) {\r\n break;\r\n }\r\n }\r\n if (!shouldOnlyCheckValid) {\r\n fieldError[fieldReference.name]\r\n ? set(_formState.errors, fieldReference.name, fieldError[fieldReference.name])\r\n : unset(_formState.errors, fieldReference.name);\r\n }\r\n }\r\n fieldValue &&\r\n (await executeBuildInValidation(fieldValue, shouldOnlyCheckValid, context));\r\n }\r\n }\r\n return context.valid;\r\n };\r\n const _removeUnmounted = () => {\r\n for (const name of _names.unMount) {\r\n const field = get(_fields, name);\r\n field &&\r\n (field._f.refs\r\n ? field._f.refs.every((ref) => !live(ref))\r\n : !live(field._f.ref)) &&\r\n unregister(name);\r\n }\r\n _names.unMount = new Set();\r\n };\r\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\r\n !deepEqual(getValues(), _defaultValues));\r\n const _getWatch = (names, defaultValue, isGlobal) => {\r\n const fieldValues = {\r\n ...(_stateFlags.mount\r\n ? _formValues\r\n : isUndefined(defaultValue)\r\n ? _defaultValues\r\n : isString(names)\r\n ? { [names]: defaultValue }\r\n : defaultValue),\r\n };\r\n return generateWatchOutput(names, _names, fieldValues, isGlobal);\r\n };\r\n const _getFieldArray = (name) => compact(get(_stateFlags.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\r\n const setFieldValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n let fieldValue = value;\r\n if (field) {\r\n const fieldReference = field._f;\r\n if (fieldReference) {\r\n !fieldReference.disabled &&\r\n set(_formValues, name, getFieldValueAs(value, fieldReference));\r\n fieldValue =\r\n isWeb && isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\r\n ? ''\r\n : value;\r\n if (isMultipleSelect(fieldReference.ref)) {\r\n [...fieldReference.ref.options].forEach((selectRef) => (selectRef.selected = fieldValue.includes(selectRef.value)));\r\n }\r\n else if (fieldReference.refs) {\r\n if (isCheckBoxInput(fieldReference.ref)) {\r\n fieldReference.refs.length > 1\r\n ? fieldReference.refs.forEach((checkboxRef) => !checkboxRef.disabled &&\r\n (checkboxRef.checked = Array.isArray(fieldValue)\r\n ? !!fieldValue.find((data) => data === checkboxRef.value)\r\n : fieldValue === checkboxRef.value))\r\n : fieldReference.refs[0] &&\r\n (fieldReference.refs[0].checked = !!fieldValue);\r\n }\r\n else {\r\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\r\n }\r\n }\r\n else if (isFileInput(fieldReference.ref)) {\r\n fieldReference.ref.value = '';\r\n }\r\n else {\r\n fieldReference.ref.value = fieldValue;\r\n if (!fieldReference.ref.type) {\r\n _subjects.watch.next({\r\n name,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n (options.shouldDirty || options.shouldTouch) &&\r\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\r\n options.shouldValidate && trigger(name);\r\n };\r\n const setValues = (name, value, options) => {\r\n for (const fieldKey in value) {\r\n const fieldValue = value[fieldKey];\r\n const fieldName = `${name}.${fieldKey}`;\r\n const field = get(_fields, fieldName);\r\n (_names.array.has(name) ||\r\n !isPrimitive(fieldValue) ||\r\n (field && !field._f)) &&\r\n !isDateObject(fieldValue)\r\n ? setValues(fieldName, fieldValue, options)\r\n : setFieldValue(fieldName, fieldValue, options);\r\n }\r\n };\r\n const setValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n const isFieldArray = _names.array.has(name);\r\n const cloneValue = cloneObject(value);\r\n set(_formValues, name, cloneValue);\r\n if (isFieldArray) {\r\n _subjects.array.next({\r\n name,\r\n values: _formValues,\r\n });\r\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\r\n options.shouldDirty) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n _subjects.state.next({\r\n name,\r\n dirtyFields: _formState.dirtyFields,\r\n isDirty: _getDirty(name, cloneValue),\r\n });\r\n }\r\n }\r\n else {\r\n field && !field._f && !isNullOrUndefined(cloneValue)\r\n ? setValues(name, cloneValue, options)\r\n : setFieldValue(name, cloneValue, options);\r\n }\r\n isWatched(name, _names) && _subjects.state.next({});\r\n _subjects.watch.next({\r\n name,\r\n });\r\n };\r\n const onChange = async (event) => {\r\n const target = event.target;\r\n let name = target.name;\r\n const field = get(_fields, name);\r\n if (field) {\r\n let error;\r\n let isValid;\r\n const fieldValue = target.type\r\n ? getFieldValue(field._f)\r\n : getEventValue(event);\r\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\r\n const shouldSkipValidation = (!hasValidation(field._f) &&\r\n !_options.resolver &&\r\n !get(_formState.errors, name) &&\r\n !field._f.deps) ||\r\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\r\n const watched = isWatched(name, _names, isBlurEvent);\r\n set(_formValues, name, fieldValue);\r\n if (isBlurEvent) {\r\n field._f.onBlur && field._f.onBlur(event);\r\n delayErrorCallback && delayErrorCallback(0);\r\n }\r\n else if (field._f.onChange) {\r\n field._f.onChange(event);\r\n }\r\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\r\n const shouldRender = !isEmptyObject(fieldState) || watched;\r\n !isBlurEvent &&\r\n _subjects.watch.next({\r\n name,\r\n type: event.type,\r\n });\r\n if (shouldSkipValidation) {\r\n return (shouldRender &&\r\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\r\n }\r\n !isBlurEvent && watched && _subjects.state.next({});\r\n validateFields[name] = validateFields[name] ? +1 : 1;\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const { errors } = await _executeSchema([name]);\r\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\r\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\r\n error = errorLookupResult.error;\r\n name = errorLookupResult.name;\r\n isValid = isEmptyObject(errors);\r\n }\r\n else {\r\n error = (await validateField(field, get(_formValues, name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\r\n isValid = await _updateValid(true);\r\n }\r\n field._f.deps &&\r\n trigger(field._f.deps);\r\n shouldRenderByError(name, isValid, error, fieldState);\r\n }\r\n };\r\n const trigger = async (name, options = {}) => {\r\n let isValid;\r\n let validationResult;\r\n const fieldNames = convertToArrayPayload(name);\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\r\n isValid = isEmptyObject(errors);\r\n validationResult = name\r\n ? !fieldNames.some((name) => get(errors, name))\r\n : isValid;\r\n }\r\n else if (name) {\r\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\r\n const field = get(_fields, fieldName);\r\n return await executeBuildInValidation(field && field._f ? { [fieldName]: field } : field);\r\n }))).every(Boolean);\r\n !(!validationResult && !_formState.isValid) && _updateValid();\r\n }\r\n else {\r\n validationResult = isValid = await executeBuildInValidation(_fields);\r\n }\r\n _subjects.state.next({\r\n ...(!isString(name) ||\r\n (_proxyFormState.isValid && isValid !== _formState.isValid)\r\n ? {}\r\n : { name }),\r\n ...(_options.resolver ? { isValid } : {}),\r\n errors: _formState.errors,\r\n isValidating: false,\r\n });\r\n options.shouldFocus &&\r\n !validationResult &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), name ? fieldNames : _names.mount);\r\n return validationResult;\r\n };\r\n const getValues = (fieldNames) => {\r\n const values = {\r\n ..._defaultValues,\r\n ...(_stateFlags.mount ? _formValues : {}),\r\n };\r\n return isUndefined(fieldNames)\r\n ? values\r\n : isString(fieldNames)\r\n ? get(values, fieldNames)\r\n : fieldNames.map((name) => get(values, name));\r\n };\r\n const getFieldState = (name, formState) => ({\r\n invalid: !!get((formState || _formState).errors, name),\r\n isDirty: !!get((formState || _formState).dirtyFields, name),\r\n isTouched: !!get((formState || _formState).touchedFields, name),\r\n error: get((formState || _formState).errors, name),\r\n });\r\n const clearErrors = (name) => {\r\n name\r\n ? convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName))\r\n : (_formState.errors = {});\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n });\r\n };\r\n const setError = (name, error, options) => {\r\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\r\n set(_formState.errors, name, {\r\n ...error,\r\n ref,\r\n });\r\n _subjects.state.next({\r\n name,\r\n errors: _formState.errors,\r\n isValid: false,\r\n });\r\n options && options.shouldFocus && ref && ref.focus && ref.focus();\r\n };\r\n const watch = (name, defaultValue) => isFunction(name)\r\n ? _subjects.watch.subscribe({\r\n next: (info) => name(_getWatch(undefined, defaultValue), info),\r\n })\r\n : _getWatch(name, defaultValue, true);\r\n const unregister = (name, options = {}) => {\r\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\r\n _names.mount.delete(fieldName);\r\n _names.array.delete(fieldName);\r\n if (get(_fields, fieldName)) {\r\n if (!options.keepValue) {\r\n unset(_fields, fieldName);\r\n unset(_formValues, fieldName);\r\n }\r\n !options.keepError && unset(_formState.errors, fieldName);\r\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\r\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\r\n !_options.shouldUnregister &&\r\n !options.keepDefaultValue &&\r\n unset(_defaultValues, fieldName);\r\n }\r\n }\r\n _subjects.watch.next({});\r\n _subjects.state.next({\r\n ..._formState,\r\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\r\n });\r\n !options.keepIsValid && _updateValid();\r\n };\r\n const register = (name, options = {}) => {\r\n let field = get(_fields, name);\r\n const disabledIsDefined = isBoolean(options.disabled);\r\n set(_fields, name, {\r\n _f: {\r\n ...(field && field._f ? field._f : { ref: { name } }),\r\n name,\r\n mount: true,\r\n ...options,\r\n },\r\n });\r\n _names.mount.add(name);\r\n field\r\n ? disabledIsDefined &&\r\n set(_formValues, name, options.disabled\r\n ? undefined\r\n : get(_formValues, name, getFieldValue(field._f)))\r\n : updateValidAndValue(name, true, options.value);\r\n return {\r\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\r\n ...(_options.shouldUseNativeValidation\r\n ? {\r\n required: !!options.required,\r\n min: getRuleValue(options.min),\r\n max: getRuleValue(options.max),\r\n minLength: getRuleValue(options.minLength),\r\n maxLength: getRuleValue(options.maxLength),\r\n pattern: getRuleValue(options.pattern),\r\n }\r\n : {}),\r\n name,\r\n onChange,\r\n onBlur: onChange,\r\n ref: (ref) => {\r\n if (ref) {\r\n register(name, options);\r\n field = get(_fields, name);\r\n const fieldRef = isUndefined(ref.value)\r\n ? ref.querySelectorAll\r\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\r\n : ref\r\n : ref;\r\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\r\n const refs = field._f.refs || [];\r\n if (radioOrCheckbox\r\n ? refs.find((option) => option === fieldRef)\r\n : fieldRef === field._f.ref) {\r\n return;\r\n }\r\n set(_fields, name, {\r\n _f: {\r\n ...field._f,\r\n ...(radioOrCheckbox\r\n ? {\r\n refs: [\r\n ...refs.filter(live),\r\n fieldRef,\r\n ...(!!Array.isArray(get(_defaultValues, name))\r\n ? [{}]\r\n : []),\r\n ],\r\n ref: { type: fieldRef.type, name },\r\n }\r\n : { ref: fieldRef }),\r\n },\r\n });\r\n updateValidAndValue(name, false, undefined, fieldRef);\r\n }\r\n else {\r\n field = get(_fields, name, {});\r\n if (field._f) {\r\n field._f.mount = false;\r\n }\r\n (_options.shouldUnregister || options.shouldUnregister) &&\r\n !(isNameInFieldArray(_names.array, name) && _stateFlags.action) &&\r\n _names.unMount.add(name);\r\n }\r\n },\r\n };\r\n };\r\n const handleSubmit = (onValid, onInvalid) => async (e) => {\r\n if (e) {\r\n e.preventDefault && e.preventDefault();\r\n e.persist && e.persist();\r\n }\r\n let hasNoPromiseError = true;\r\n let fieldValues = cloneObject(_formValues);\r\n _subjects.state.next({\r\n isSubmitting: true,\r\n });\r\n try {\r\n if (_options.resolver) {\r\n const { errors, values } = await _executeSchema();\r\n _formState.errors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n await executeBuildInValidation(_fields);\r\n }\r\n if (isEmptyObject(_formState.errors)) {\r\n _subjects.state.next({\r\n errors: {},\r\n isSubmitting: true,\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n if (onInvalid) {\r\n await onInvalid({ ..._formState.errors }, e);\r\n }\r\n _options.shouldFocusError &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), _names.mount);\r\n }\r\n }\r\n catch (err) {\r\n hasNoPromiseError = false;\r\n throw err;\r\n }\r\n finally {\r\n _formState.isSubmitted = true;\r\n _subjects.state.next({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(_formState.errors) && hasNoPromiseError,\r\n submitCount: _formState.submitCount + 1,\r\n errors: _formState.errors,\r\n });\r\n }\r\n };\r\n const resetField = (name, options = {}) => {\r\n if (get(_fields, name)) {\r\n if (isUndefined(options.defaultValue)) {\r\n setValue(name, get(_defaultValues, name));\r\n }\r\n else {\r\n setValue(name, options.defaultValue);\r\n set(_defaultValues, name, options.defaultValue);\r\n }\r\n if (!options.keepTouched) {\r\n unset(_formState.touchedFields, name);\r\n }\r\n if (!options.keepDirty) {\r\n unset(_formState.dirtyFields, name);\r\n _formState.isDirty = options.defaultValue\r\n ? _getDirty(name, get(_defaultValues, name))\r\n : _getDirty();\r\n }\r\n if (!options.keepError) {\r\n unset(_formState.errors, name);\r\n _proxyFormState.isValid && _updateValid();\r\n }\r\n _subjects.state.next({ ..._formState });\r\n }\r\n };\r\n const reset = (formValues, keepStateOptions = {}) => {\r\n const updatedValues = formValues || _defaultValues;\r\n const cloneUpdatedValues = cloneObject(updatedValues);\r\n const values = formValues && !isEmptyObject(formValues)\r\n ? cloneUpdatedValues\r\n : _defaultValues;\r\n if (!keepStateOptions.keepDefaultValues) {\r\n _defaultValues = updatedValues;\r\n }\r\n if (!keepStateOptions.keepValues) {\r\n if (keepStateOptions.keepDirtyValues) {\r\n for (const fieldName of _names.mount) {\r\n get(_formState.dirtyFields, fieldName)\r\n ? set(values, fieldName, get(_formValues, fieldName))\r\n : setValue(fieldName, get(values, fieldName));\r\n }\r\n }\r\n else {\r\n if (isWeb && isUndefined(formValues)) {\r\n for (const name of _names.mount) {\r\n const field = get(_fields, name);\r\n if (field && field._f) {\r\n const fieldReference = Array.isArray(field._f.refs)\r\n ? field._f.refs[0]\r\n : field._f.ref;\r\n try {\r\n isHTMLElement(fieldReference) &&\r\n fieldReference.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n _fields = {};\r\n }\r\n _formValues = props.shouldUnregister\r\n ? keepStateOptions.keepDefaultValues\r\n ? cloneObject(_defaultValues)\r\n : {}\r\n : cloneUpdatedValues;\r\n _subjects.array.next({\r\n values,\r\n });\r\n _subjects.watch.next({\r\n values,\r\n });\r\n }\r\n _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n watchAll: false,\r\n focus: '',\r\n };\r\n _stateFlags.mount =\r\n !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\r\n _stateFlags.watch = !!props.shouldUnregister;\r\n _subjects.state.next({\r\n submitCount: keepStateOptions.keepSubmitCount\r\n ? _formState.submitCount\r\n : 0,\r\n isDirty: keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\r\n ? _formState.isDirty\r\n : !!(keepStateOptions.keepDefaultValues &&\r\n !deepEqual(formValues, _defaultValues)),\r\n isSubmitted: keepStateOptions.keepIsSubmitted\r\n ? _formState.isSubmitted\r\n : false,\r\n dirtyFields: keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\r\n ? _formState.dirtyFields\r\n : keepStateOptions.keepDefaultValues && formValues\r\n ? getDirtyFields(_defaultValues, formValues)\r\n : {},\r\n touchedFields: keepStateOptions.keepTouched\r\n ? _formState.touchedFields\r\n : {},\r\n errors: keepStateOptions.keepErrors\r\n ? _formState.errors\r\n : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const setFocus = (name, options = {}) => {\r\n const field = get(_fields, name)._f;\r\n const fieldRef = field.refs ? field.refs[0] : field.ref;\r\n options.shouldSelect ? fieldRef.select() : fieldRef.focus();\r\n };\r\n return {\r\n control: {\r\n register,\r\n unregister,\r\n getFieldState,\r\n _executeSchema,\r\n _getWatch,\r\n _getDirty,\r\n _updateValid,\r\n _removeUnmounted,\r\n _updateFieldArray,\r\n _getFieldArray,\r\n _subjects,\r\n _proxyFormState,\r\n get _fields() {\r\n return _fields;\r\n },\r\n get _formValues() {\r\n return _formValues;\r\n },\r\n get _stateFlags() {\r\n return _stateFlags;\r\n },\r\n set _stateFlags(value) {\r\n _stateFlags = value;\r\n },\r\n get _defaultValues() {\r\n return _defaultValues;\r\n },\r\n get _names() {\r\n return _names;\r\n },\r\n set _names(value) {\r\n _names = value;\r\n },\r\n get _formState() {\r\n return _formState;\r\n },\r\n set _formState(value) {\r\n _formState = value;\r\n },\r\n get _options() {\r\n return _options;\r\n },\r\n set _options(value) {\r\n _options = {\r\n ..._options,\r\n ...value,\r\n };\r\n },\r\n },\r\n trigger,\r\n register,\r\n handleSubmit,\r\n watch,\r\n setValue,\r\n getValues,\r\n reset,\r\n resetField,\r\n clearErrors,\r\n unregister,\r\n setError,\r\n setFocus,\r\n getFieldState,\r\n };\r\n}\n\n/**\r\n * Custom hook to mange the entire form.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\r\n *\r\n * @param props - form configuration and validation parameters.\r\n *\r\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * console.log(watch(\"example\"));\r\n *\r\n * return (\r\n * <form onSubmit={handleSubmit(onSubmit)}>\r\n * <input defaultValue=\"test\" {...register(\"example\")} />\r\n * <input {...register(\"exampleRequired\", { required: true })} />\r\n * {errors.exampleRequired && <span>This field is required</span>}\r\n * <input type=\"submit\" />\r\n * </form>\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useForm(props = {}) {\r\n const _formControl = React.useRef();\r\n const [formState, updateFormState] = React.useState({\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n });\r\n if (_formControl.current) {\r\n _formControl.current.control._options = props;\r\n }\r\n else {\r\n _formControl.current = {\r\n ...createFormControl(props),\r\n formState,\r\n };\r\n }\r\n const control = _formControl.current.control;\r\n const callback = React.useCallback((value) => {\r\n if (shouldRenderFormState(value, control._proxyFormState, true)) {\r\n control._formState = {\r\n ...control._formState,\r\n ...value,\r\n };\r\n updateFormState({ ...control._formState });\r\n }\r\n }, [control]);\r\n useSubscribe({\r\n subject: control._subjects.state,\r\n callback,\r\n });\r\n React.useEffect(() => {\r\n if (!control._stateFlags.mount) {\r\n control._proxyFormState.isValid && control._updateValid();\r\n control._stateFlags.mount = true;\r\n }\r\n if (control._stateFlags.watch) {\r\n control._stateFlags.watch = false;\r\n control._subjects.state.next({});\r\n }\r\n control._removeUnmounted();\r\n });\r\n _formControl.current.formState = getProxyFormState(formState, control._proxyFormState);\r\n return _formControl.current;\r\n}\n\nexport { Controller, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"</\"+t.name+\">\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"</\"+a.name+\">\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","export function warn() {\n if (console && console.warn) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === 'string') args[0] = `react-i18next:: ${args[0]}`;\n console.warn(...args);\n }\n}\nconst alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn(...args);\n}\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n}\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const lng = i18n.languages[0];\n const fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n const lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = i18n.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function hasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n const isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport function setDefaults() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n}\nexport function getDefaults() {\n return defaultOptions;\n}","let i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import { Fragment, isValidElement, cloneElement, createElement, Children } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { warn, warnOnce } from './utils.js';\nimport { getDefaults } from './defaults.js';\nimport { getI18n } from './i18nInstance.js';\nfunction hasChildren(node, checkLength) {\n if (!node) return false;\n const base = node.props ? node.props.children : node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n}\nfunction getChildren(node) {\n if (!node) return [];\n const children = node.props ? node.props.children : node.children;\n return node.props && node.props.i18nIsDynamicList ? getAsArray(children) : children;\n}\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(child => isValidElement(child));\n}\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\nfunction mergeProps(source, target) {\n const newTarget = {\n ...target\n };\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n let stringNode = '';\n const childrenArray = getAsArray(children);\n const keepArray = i18nOptions.transSupportBasicHtmlNodes && i18nOptions.transKeepBasicHtmlNodesFor ? i18nOptions.transKeepBasicHtmlNodesFor : [];\n childrenArray.forEach((child, childIndex) => {\n if (typeof child === 'string') {\n stringNode += `${child}`;\n } else if (isValidElement(child)) {\n const childPropsCount = Object.keys(child.props).length;\n const shouldKeepChild = keepArray.indexOf(child.type) > -1;\n const childChildren = child.props.children;\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += `<${child.type}/>`;\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += `<${childIndex}></${childIndex}>`;\n } else if (child.props.i18nIsDynamicList) {\n stringNode += `<${childIndex}></${childIndex}>`;\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += `<${child.type}>${childChildren}</${child.type}>`;\n } else {\n const content = nodesToString(childChildren, i18nOptions);\n stringNode += `<${childIndex}>${content}</${childIndex}>`;\n }\n } else if (child === null) {\n warn(`Trans: the passed in value is invalid - seems you passed in a null child.`);\n } else if (typeof child === 'object') {\n const {\n format,\n ...clone\n } = child;\n const keys = Object.keys(clone);\n if (keys.length === 1) {\n const value = format ? `${keys[0]}, ${format}` : keys[0];\n stringNode += `{{${value}}}`;\n } else {\n warn(`react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.`, child);\n }\n } else {\n warn(`Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.`, child);\n }\n });\n return stringNode;\n}\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {\n if (targetString === '') return [];\n const keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.map(keep => `<${keep}`).join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling && !shouldUnescape) return [targetString];\n const data = {};\n function getData(childs) {\n const childrenArray = getAsArray(childs);\n childrenArray.forEach(child => {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (typeof child === 'object' && !isValidElement(child)) Object.assign(data, child);\n });\n }\n getData(children);\n const ast = HTML.parse(`<0>${targetString}</0>`);\n const opts = {\n ...data,\n ...combinedTOpts\n };\n function renderInner(child, node, rootReactNode) {\n const childs = getChildren(child);\n const mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 || child.props && child.props.i18nIsDynamicList ? childs : mappedChildren;\n }\n function pushTranslatedJSX(child, inner, mem, i, isVoid) {\n if (child.dummy) {\n child.children = inner;\n mem.push(cloneElement(child, {\n key: i\n }, isVoid ? undefined : inner));\n } else {\n mem.push(...Children.map([child], c => {\n const props = {\n ...c.props\n };\n delete props.i18nIsDynamicList;\n return createElement(c.type, {\n ...props,\n key: i,\n ref: c.ref\n }, isVoid ? null : inner);\n }));\n }\n }\n function mapAST(reactNode, astNode, rootReactNode) {\n const reactNodes = getAsArray(reactNode);\n const astNodes = getAsArray(astNode);\n return astNodes.reduce((mem, node, i) => {\n const translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n if (node.type === 'tag') {\n let tmp = reactNodes[parseInt(node.name, 10)];\n if (rootReactNode.length === 1 && !tmp) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n const child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n const isElement = isValidElement(child);\n const isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n const isEmptyTransWithHTML = emptyChildrenButNeedsHandling && typeof child === 'object' && child.dummy && !isElement;\n const isKnownComponent = typeof children === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n if (typeof child === 'string') {\n const value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n const inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n const inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(createElement(node.name, {\n key: `${node.name}-${i}`\n }));\n } else {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n mem.push(createElement(node.name, {\n key: `${node.name}-${i}`\n }, inner));\n }\n } else if (node.voidElement) {\n mem.push(`<${node.name} />`);\n } else {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n mem.push(`<${node.name}>${inner}</${node.name}>`);\n }\n } else if (typeof child === 'object' && !isElement) {\n const content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else {\n pushTranslatedJSX(child, translationContent, mem, i, node.children.length !== 1 || !translationContent);\n }\n } else if (node.type === 'text') {\n const wrapTextNodes = i18nOptions.transWrapTextNodes;\n const content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n if (wrapTextNodes) {\n mem.push(createElement(wrapTextNodes, {\n key: `${node.name}-${i}`\n }, content));\n } else {\n mem.push(content);\n }\n }\n return mem;\n }, []);\n }\n const result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\nexport function Trans(_ref) {\n let {\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions = {},\n values,\n defaults,\n components,\n ns,\n i18n: i18nFromProps,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n } = _ref;\n const i18n = i18nFromProps || getI18n();\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n const t = tFromProps || i18n.t.bind(i18n) || (k => k);\n if (context) tOptions.context = context;\n const reactI18nextOptions = {\n ...getDefaults(),\n ...(i18n.options && i18n.options.react)\n };\n let namespaces = ns || t.ns || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n const nodeAsString = nodesToString(children, reactI18nextOptions);\n const defaultValue = defaults || nodeAsString || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n const {\n hashTransKey\n } = reactI18nextOptions;\n const key = i18nKey || (hashTransKey ? hashTransKey(nodeAsString || defaultValue) : nodeAsString || defaultValue);\n if (i18n.options && i18n.options.interpolation && i18n.options.interpolation.defaultVariables) {\n values = values && Object.keys(values).length > 0 ? {\n ...values,\n ...i18n.options.interpolation.defaultVariables\n } : {\n ...i18n.options.interpolation.defaultVariables\n };\n }\n const interpolationOverride = values || count !== undefined ? tOptions.interpolation : {\n interpolation: {\n ...tOptions.interpolation,\n prefix: '#$?',\n suffix: '?$#'\n }\n };\n const combinedTOpts = {\n ...tOptions,\n count,\n ...values,\n ...interpolationOverride,\n defaultValue,\n ns: namespaces\n };\n const translation = key ? t(key, combinedTOpts) : defaultValue;\n if (components) {\n Object.keys(components).forEach(c => {\n const comp = components[c];\n if (typeof comp.type === 'function' || !comp.props || !comp.props.children || translation.indexOf(`${c}/>`) < 0 && translation.indexOf(`${c} />`) < 0) return;\n function Componentized() {\n return createElement(Fragment, null, comp);\n }\n components[c] = createElement(Componentized);\n });\n }\n const content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n const useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport function composeInitialProps(ForComponent) {\n return ctx => new Promise(resolve => {\n const i18nInitialProps = getInitialProps();\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(componentsInitialProps => {\n resolve({\n ...componentsInitialProps,\n ...i18nInitialProps\n });\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n}\nexport function getInitialProps() {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import { useContext } from 'react';\nimport { nodesToString, Trans as TransWithoutContext } from './TransWithoutContext.js';\nimport { getI18n, I18nContext } from './context.js';\nexport { nodesToString };\nexport function Trans(_ref) {\n let {\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions = {},\n values,\n defaults,\n components,\n ns,\n i18n: i18nFromProps,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n } = _ref;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n const t = tFromProps || i18n && i18n.t.bind(i18n);\n return TransWithoutContext({\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions,\n values,\n defaults,\n components,\n ns: ns || t && t.ns || defaultNSFromContext || i18n && i18n.options && i18n.options.defaultNS,\n i18n,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n });\n}","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nfunction alwaysNewT(i18n, language, namespace, keyPrefix) {\n return i18n.getFixedT(language, namespace, keyPrefix);\n}\nfunction useMemoizedT(i18n, language, namespace, keyPrefix) {\n return useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\n}\nexport function useTranslation(ns) {\n let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && typeof optsOrDefaultValue === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n function boundReset() {\n if (isMounted.current) setT(getNewT);\n }\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n const isInitial = useRef(true);\n useEffect(() => {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n}","import { createElement, forwardRef as forwardRefReact } from 'react';\nimport { useTranslation } from './useTranslation.js';\nimport { getDisplayName } from './utils.js';\nexport function withTranslation(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function Extend(WrappedComponent) {\n function I18nextWithTranslation(_ref) {\n let {\n forwardedRef,\n ...rest\n } = _ref;\n const [t, i18n, ready] = useTranslation(ns, {\n ...rest,\n keyPrefix: options.keyPrefix\n });\n const passDownProps = {\n ...rest,\n t,\n i18n,\n tReady: ready\n };\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n } else if (!options.withRef && forwardedRef) {\n passDownProps.forwardedRef = forwardedRef;\n }\n return createElement(WrappedComponent, passDownProps);\n }\n I18nextWithTranslation.displayName = `withI18nextTranslation(${getDisplayName(WrappedComponent)})`;\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n const forwardRef = (props, ref) => createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n return options.withRef ? forwardRefReact(forwardRef) : I18nextWithTranslation;\n };\n}","import { useTranslation } from './useTranslation.js';\nexport function Translation(props) {\n const {\n ns,\n children,\n ...options\n } = props;\n const [t, i18n, ready] = useTranslation(ns, options);\n return children(t, {\n i18n,\n lng: i18n.language\n }, ready);\n}","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context.js';\nexport function I18nextProvider(_ref) {\n let {\n i18n,\n defaultNS,\n children\n } = _ref;\n const value = useMemo(() => ({\n i18n,\n defaultNS\n }), [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value\n }, children);\n}","import { useContext } from 'react';\nimport { getI18n, I18nContext } from './context.js';\nexport function useSSR(initialI18nStore, initialLanguage) {\n let props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n.options && i18n.options.isClone) return;\n if (initialI18nStore && !i18n.initializedStoreOnce) {\n i18n.services.resourceStore.data = initialI18nStore;\n i18n.options.ns = Object.values(initialI18nStore).reduce((mem, lngResources) => {\n Object.keys(lngResources).forEach(ns => {\n if (mem.indexOf(ns) < 0) mem.push(ns);\n });\n return mem;\n }, i18n.options.ns);\n i18n.initializedStoreOnce = true;\n i18n.isInitialized = true;\n }\n if (initialLanguage && !i18n.initializedLanguageOnce) {\n i18n.changeLanguage(initialLanguage);\n i18n.initializedLanguageOnce = true;\n }\n}","import { createElement } from 'react';\nimport { useSSR } from './useSSR.js';\nimport { composeInitialProps } from './context.js';\nimport { getDisplayName } from './utils.js';\nexport function withSSR() {\n return function Extend(WrappedComponent) {\n function I18nextWithSSR(_ref) {\n let {\n initialI18nStore,\n initialLanguage,\n ...rest\n } = _ref;\n useSSR(initialI18nStore, initialLanguage);\n return createElement(WrappedComponent, {\n ...rest\n });\n }\n I18nextWithSSR.getInitialProps = composeInitialProps(WrappedComponent);\n I18nextWithSSR.displayName = `withI18nextSSR(${getDisplayName(WrappedComponent)})`;\n I18nextWithSSR.WrappedComponent = WrappedComponent;\n return I18nextWithSSR;\n };\n}","export { Trans } from './Trans.js';\nexport { Trans as TransWithoutContext } from './TransWithoutContext.js';\nexport { useTranslation } from './useTranslation.js';\nexport { withTranslation } from './withTranslation.js';\nexport { Translation } from './Translation.js';\nexport { I18nextProvider } from './I18nextProvider.js';\nexport { withSSR } from './withSSR.js';\nexport { useSSR } from './useSSR.js';\nexport { initReactI18next } from './initReactI18next.js';\nexport { setDefaults, getDefaults } from './defaults.js';\nexport { setI18n, getI18n } from './i18nInstance.js';\nexport { I18nContext, composeInitialProps, getInitialProps } from './context.js';\nexport const date = () => '';\nexport const time = () => '';\nexport const number = () => '';\nexport const select = () => '';\nexport const plural = () => '';\nexport const selectOrdinal = () => '';","/******************************************************************************\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 */\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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\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","import { useState, useCallback, useLayoutEffect, useEffect, useRef, useMemo } from 'react';\nimport debounce from 'lodash.debounce';\n\n// src/useBoolean/useBoolean.ts\nfunction useBoolean(defaultValue = false) {\n if (typeof defaultValue !== \"boolean\") {\n throw new Error(\"defaultValue must be `true` or `false`\");\n }\n const [value, setValue] = useState(defaultValue);\n const setTrue = useCallback(() => {\n setValue(true);\n }, []);\n const setFalse = useCallback(() => {\n setValue(false);\n }, []);\n const toggle = useCallback(() => {\n setValue((x) => !x);\n }, []);\n return { value, setValue, setTrue, setFalse, toggle };\n}\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// src/useEventListener/useEventListener.ts\nfunction useEventListener(eventName, handler, element, options) {\n const savedHandler = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n useEffect(() => {\n const targetElement = (element == null ? void 0 : element.current) ?? window;\n if (!(targetElement && targetElement.addEventListener))\n return;\n const listener = (event) => {\n savedHandler.current(event);\n };\n targetElement.addEventListener(eventName, listener, options);\n return () => {\n targetElement.removeEventListener(eventName, listener, options);\n };\n }, [eventName, element, options]);\n}\n\n// src/useClickAnyWhere/useClickAnyWhere.ts\nfunction useClickAnyWhere(handler) {\n useEventListener(\"click\", (event) => {\n handler(event);\n });\n}\nfunction useCopyToClipboard() {\n const [copiedText, setCopiedText] = useState(null);\n const copy = useCallback(async (text) => {\n if (!(navigator == null ? void 0 : navigator.clipboard)) {\n console.warn(\"Clipboard not supported\");\n return false;\n }\n try {\n await navigator.clipboard.writeText(text);\n setCopiedText(text);\n return true;\n } catch (error) {\n console.warn(\"Copy failed\", error);\n setCopiedText(null);\n return false;\n }\n }, []);\n return [copiedText, copy];\n}\nfunction useCounter(initialValue) {\n const [count, setCount] = useState(initialValue ?? 0);\n const increment = useCallback(() => {\n setCount((x) => x + 1);\n }, []);\n const decrement = useCallback(() => {\n setCount((x) => x - 1);\n }, []);\n const reset = useCallback(() => {\n setCount(initialValue ?? 0);\n }, [initialValue]);\n return {\n count,\n increment,\n decrement,\n reset,\n setCount\n };\n}\nfunction useInterval(callback, delay) {\n const savedCallback = useRef(callback);\n useIsomorphicLayoutEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n useEffect(() => {\n if (delay === null) {\n return;\n }\n const id = setInterval(() => {\n savedCallback.current();\n }, delay);\n return () => {\n clearInterval(id);\n };\n }, [delay]);\n}\n\n// src/useCountdown/useCountdown.ts\nfunction useCountdown({\n countStart,\n countStop = 0,\n intervalMs = 1e3,\n isIncrement = false\n}) {\n const {\n count,\n increment,\n decrement,\n reset: resetCounter\n } = useCounter(countStart);\n const {\n value: isCountdownRunning,\n setTrue: startCountdown,\n setFalse: stopCountdown\n } = useBoolean(false);\n const resetCountdown = useCallback(() => {\n stopCountdown();\n resetCounter();\n }, [stopCountdown, resetCounter]);\n const countdownCallback = useCallback(() => {\n if (count === countStop) {\n stopCountdown();\n return;\n }\n if (isIncrement) {\n increment();\n } else {\n decrement();\n }\n }, [count, countStop, decrement, increment, isIncrement, stopCountdown]);\n useInterval(countdownCallback, isCountdownRunning ? intervalMs : null);\n return [count, { startCountdown, stopCountdown, resetCountdown }];\n}\nfunction useEventCallback(fn) {\n const ref = useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n useIsomorphicLayoutEffect(() => {\n ref.current = fn;\n }, [fn]);\n return useCallback((...args) => {\n var _a;\n return (_a = ref.current) == null ? void 0 : _a.call(ref, ...args);\n }, [ref]);\n}\n\n// src/useLocalStorage/useLocalStorage.ts\nvar IS_SERVER = typeof window === \"undefined\";\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { initializeWithValue = true } = options;\n const serializer = useCallback(\n (value) => {\n if (options.serializer) {\n return options.serializer(value);\n }\n return JSON.stringify(value);\n },\n [options]\n );\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return defaultValue;\n }\n return parsed;\n },\n [options, initialValue]\n );\n const readValue = useCallback(() => {\n const initialValueToUse = initialValue instanceof Function ? initialValue() : initialValue;\n if (IS_SERVER) {\n return initialValueToUse;\n }\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? deserializer(raw) : initialValueToUse;\n } catch (error) {\n console.warn(`Error reading localStorage key \\u201C${key}\\u201D:`, error);\n return initialValueToUse;\n }\n }, [initialValue, key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return initialValue instanceof Function ? initialValue() : initialValue;\n });\n const setValue = useEventCallback((value) => {\n if (IS_SERVER) {\n console.warn(\n `Tried setting localStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n try {\n const newValue = value instanceof Function ? value(readValue()) : value;\n window.localStorage.setItem(key, serializer(newValue));\n setStoredValue(newValue);\n window.dispatchEvent(new StorageEvent(\"local-storage\", { key }));\n } catch (error) {\n console.warn(`Error setting localStorage key \\u201C${key}\\u201D:`, error);\n }\n });\n const removeValue = useEventCallback(() => {\n if (IS_SERVER) {\n console.warn(\n `Tried removing localStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n window.localStorage.removeItem(key);\n setStoredValue(defaultValue);\n window.dispatchEvent(new StorageEvent(\"local-storage\", { key }));\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if (event.key && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"local-storage\", handleStorageChange);\n return [storedValue, setValue, removeValue];\n}\nvar IS_SERVER2 = typeof window === \"undefined\";\nfunction useMediaQuery(query, {\n defaultValue = false,\n initializeWithValue = true\n} = {}) {\n const getMatches = (query2) => {\n if (IS_SERVER2) {\n return defaultValue;\n }\n return window.matchMedia(query2).matches;\n };\n const [matches, setMatches] = useState(() => {\n if (initializeWithValue) {\n return getMatches(query);\n }\n return defaultValue;\n });\n function handleChange() {\n setMatches(getMatches(query));\n }\n useIsomorphicLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n handleChange();\n if (matchMedia.addListener) {\n matchMedia.addListener(handleChange);\n } else {\n matchMedia.addEventListener(\"change\", handleChange);\n }\n return () => {\n if (matchMedia.removeListener) {\n matchMedia.removeListener(handleChange);\n } else {\n matchMedia.removeEventListener(\"change\", handleChange);\n }\n };\n }, [query]);\n return matches;\n}\n\n// src/useDarkMode/useDarkMode.ts\nvar COLOR_SCHEME_QUERY = \"(prefers-color-scheme: dark)\";\nvar LOCAL_STORAGE_KEY = \"usehooks-ts-dark-mode\";\nfunction useDarkMode(options = {}) {\n const {\n defaultValue,\n localStorageKey = LOCAL_STORAGE_KEY,\n initializeWithValue = true\n } = options;\n const isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY, {\n initializeWithValue,\n defaultValue\n });\n const [isDarkMode, setDarkMode] = useLocalStorage(\n localStorageKey,\n defaultValue ?? isDarkOS ?? false,\n { initializeWithValue }\n );\n useIsomorphicLayoutEffect(() => {\n if (isDarkOS !== isDarkMode) {\n setDarkMode(isDarkOS);\n }\n }, [isDarkOS]);\n return {\n isDarkMode,\n toggle: () => {\n setDarkMode((prev) => !prev);\n },\n enable: () => {\n setDarkMode(true);\n },\n disable: () => {\n setDarkMode(false);\n },\n set: (value) => {\n setDarkMode(value);\n }\n };\n}\nfunction useUnmount(func) {\n const funcRef = useRef(func);\n funcRef.current = func;\n useEffect(\n () => () => {\n funcRef.current();\n },\n []\n );\n}\n\n// src/useDebounceCallback/useDebounceCallback.ts\nfunction useDebounceCallback(func, delay = 500, options) {\n const debouncedFunc = useRef();\n useUnmount(() => {\n if (debouncedFunc.current) {\n debouncedFunc.current.cancel();\n }\n });\n const debounced = useMemo(() => {\n const debouncedFuncInstance = debounce(func, delay, options);\n const wrappedFunc = (...args) => {\n return debouncedFuncInstance(...args);\n };\n wrappedFunc.cancel = () => {\n debouncedFuncInstance.cancel();\n };\n wrappedFunc.isPending = () => {\n return !!debouncedFunc.current;\n };\n wrappedFunc.flush = () => {\n return debouncedFuncInstance.flush();\n };\n return wrappedFunc;\n }, [func, delay, options]);\n useEffect(() => {\n debouncedFunc.current = debounce(func, delay, options);\n }, [func, delay, options]);\n return debounced;\n}\nfunction useDebounceValue(initialValue, delay, options) {\n const eq = (options == null ? void 0 : options.equalityFn) ?? ((left, right) => left === right);\n const unwrappedInitialValue = initialValue instanceof Function ? initialValue() : initialValue;\n const [debouncedValue, setDebouncedValue] = useState(unwrappedInitialValue);\n const previousValueRef = useRef(unwrappedInitialValue);\n const updateDebouncedValue = useDebounceCallback(\n setDebouncedValue,\n delay,\n options\n );\n if (!eq(previousValueRef.current, unwrappedInitialValue)) {\n updateDebouncedValue(unwrappedInitialValue);\n previousValueRef.current = unwrappedInitialValue;\n }\n return [debouncedValue, updateDebouncedValue];\n}\nfunction useDocumentTitle(title, options = {}) {\n const { preserveTitleOnUnmount = true } = options;\n const defaultTitle = useRef(null);\n useIsomorphicLayoutEffect(() => {\n defaultTitle.current = window.document.title;\n }, []);\n useIsomorphicLayoutEffect(() => {\n window.document.title = title;\n }, [title]);\n useUnmount(() => {\n if (!preserveTitleOnUnmount && defaultTitle.current) {\n window.document.title = defaultTitle.current;\n }\n });\n}\nfunction useHover(elementRef) {\n const [value, setValue] = useState(false);\n const handleMouseEnter = () => {\n setValue(true);\n };\n const handleMouseLeave = () => {\n setValue(false);\n };\n useEventListener(\"mouseenter\", handleMouseEnter, elementRef);\n useEventListener(\"mouseleave\", handleMouseLeave, elementRef);\n return value;\n}\nfunction useIntersectionObserver({\n threshold = 0,\n root = null,\n rootMargin = \"0%\",\n freezeOnceVisible = false,\n initialIsIntersecting = false,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = useState(null);\n const [state, setState] = useState(() => ({\n isIntersecting: initialIsIntersecting,\n entry: void 0\n }));\n const callbackRef = useRef();\n callbackRef.current = onChange;\n const frozen = ((_a = state.entry) == null ? void 0 : _a.isIntersecting) && freezeOnceVisible;\n useEffect(() => {\n if (!ref)\n return;\n if (!(\"IntersectionObserver\" in window))\n return;\n if (frozen)\n return;\n let unobserve;\n const observer = new IntersectionObserver(\n (entries) => {\n const thresholds = Array.isArray(observer.thresholds) ? observer.thresholds : [observer.thresholds];\n entries.forEach((entry) => {\n const isIntersecting = entry.isIntersecting && thresholds.some((threshold2) => entry.intersectionRatio >= threshold2);\n setState({ isIntersecting, entry });\n if (callbackRef.current) {\n callbackRef.current(isIntersecting, entry);\n }\n if (isIntersecting && freezeOnceVisible && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n });\n },\n { threshold, root, rootMargin }\n );\n observer.observe(ref);\n return () => {\n observer.disconnect();\n };\n }, [\n ref,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n root,\n rootMargin,\n frozen,\n freezeOnceVisible\n ]);\n const prevRef = useRef(null);\n useEffect(() => {\n var _a2;\n if (!ref && ((_a2 = state.entry) == null ? void 0 : _a2.target) && !freezeOnceVisible && !frozen && prevRef.current !== state.entry.target) {\n prevRef.current = state.entry.target;\n setState({ isIntersecting: initialIsIntersecting, entry: void 0 });\n }\n }, [ref, state.entry, freezeOnceVisible, frozen, initialIsIntersecting]);\n const result = [\n setRef,\n !!state.isIntersecting,\n state.entry\n ];\n result.ref = result[0];\n result.isIntersecting = result[1];\n result.entry = result[2];\n return result;\n}\nfunction useIsClient() {\n const [isClient, setClient] = useState(false);\n useEffect(() => {\n setClient(true);\n }, []);\n return isClient;\n}\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return useCallback(() => isMounted.current, []);\n}\nfunction useMap(initialState = /* @__PURE__ */ new Map()) {\n const [map, setMap] = useState(new Map(initialState));\n const actions = {\n set: useCallback((key, value) => {\n setMap((prev) => {\n const copy = new Map(prev);\n copy.set(key, value);\n return copy;\n });\n }, []),\n setAll: useCallback((entries) => {\n setMap(() => new Map(entries));\n }, []),\n remove: useCallback((key) => {\n setMap((prev) => {\n const copy = new Map(prev);\n copy.delete(key);\n return copy;\n });\n }, []),\n reset: useCallback(() => {\n setMap(() => /* @__PURE__ */ new Map());\n }, [])\n };\n return [map, actions];\n}\n\n// src/useOnClickOutside/useOnClickOutside.ts\nfunction useOnClickOutside(ref, handler, eventType = \"mousedown\", eventListenerOptions = {}) {\n useEventListener(\n eventType,\n (event) => {\n const target = event.target;\n if (!target || !target.isConnected) {\n return;\n }\n const isOutside = Array.isArray(ref) ? ref.filter((r) => Boolean(r.current)).every((r) => r.current && !r.current.contains(target)) : ref.current && !ref.current.contains(target);\n if (isOutside) {\n handler(event);\n }\n },\n void 0,\n eventListenerOptions\n );\n}\nvar IS_SERVER3 = typeof window === \"undefined\";\nfunction useReadLocalStorage(key, options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER3) {\n initializeWithValue = false;\n }\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return null;\n }\n return parsed;\n },\n [options]\n );\n const readValue = useCallback(() => {\n if (IS_SERVER3) {\n return null;\n }\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? deserializer(raw) : null;\n } catch (error) {\n console.warn(`Error reading localStorage key \\u201C${key}\\u201D:`, error);\n return null;\n }\n }, [key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return void 0;\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if (event.key && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"local-storage\", handleStorageChange);\n return storedValue;\n}\nvar initialSize = {\n width: void 0,\n height: void 0\n};\nfunction useResizeObserver(options) {\n const { ref, box = \"content-box\" } = options;\n const [{ width, height }, setSize] = useState(initialSize);\n const isMounted = useIsMounted();\n const previousSize = useRef({ ...initialSize });\n const onResize = useRef(void 0);\n onResize.current = options.onResize;\n useEffect(() => {\n if (!ref.current)\n return;\n if (typeof window === \"undefined\" || !(\"ResizeObserver\" in window))\n return;\n const observer = new ResizeObserver(([entry]) => {\n const boxProp = box === \"border-box\" ? \"borderBoxSize\" : box === \"device-pixel-content-box\" ? \"devicePixelContentBoxSize\" : \"contentBoxSize\";\n const newWidth = extractSize(entry, boxProp, \"inlineSize\");\n const newHeight = extractSize(entry, boxProp, \"blockSize\");\n const hasChanged = previousSize.current.width !== newWidth || previousSize.current.height !== newHeight;\n if (hasChanged) {\n const newSize = { width: newWidth, height: newHeight };\n previousSize.current.width = newWidth;\n previousSize.current.height = newHeight;\n if (onResize.current) {\n onResize.current(newSize);\n } else {\n if (isMounted()) {\n setSize(newSize);\n }\n }\n }\n });\n observer.observe(ref.current, { box });\n return () => {\n observer.disconnect();\n };\n }, [box, ref, isMounted]);\n return { width, height };\n}\nfunction extractSize(entry, box, sizeType) {\n if (!entry[box]) {\n if (box === \"contentBoxSize\") {\n return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n }\n return void 0;\n }\n return Array.isArray(entry[box]) ? entry[box][0][sizeType] : (\n // @ts-ignore Support Firefox's non-standard behavior\n entry[box][sizeType]\n );\n}\nvar IS_SERVER4 = typeof window === \"undefined\";\nfunction useScreen(options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER4) {\n initializeWithValue = false;\n }\n const readScreen = () => {\n if (IS_SERVER4) {\n return void 0;\n }\n return window.screen;\n };\n const [screen, setScreen] = useState(() => {\n if (initializeWithValue) {\n return readScreen();\n }\n return void 0;\n });\n const debouncedSetScreen = useDebounceCallback(\n setScreen,\n options.debounceDelay\n );\n function handleSize() {\n const newScreen = readScreen();\n const setSize = options.debounceDelay ? debouncedSetScreen : setScreen;\n if (newScreen) {\n const {\n width,\n height,\n availHeight,\n availWidth,\n colorDepth,\n orientation,\n pixelDepth\n } = newScreen;\n setSize({\n width,\n height,\n availHeight,\n availWidth,\n colorDepth,\n orientation,\n pixelDepth\n });\n }\n }\n useEventListener(\"resize\", handleSize);\n useIsomorphicLayoutEffect(() => {\n handleSize();\n }, []);\n return screen;\n}\nvar cachedScriptStatuses = /* @__PURE__ */ new Map();\nfunction getScriptNode(src) {\n const node = document.querySelector(\n `script[src=\"${src}\"]`\n );\n const status = node == null ? void 0 : node.getAttribute(\"data-status\");\n return {\n node,\n status\n };\n}\nfunction useScript(src, options) {\n const [status, setStatus] = useState(() => {\n if (!src || (options == null ? void 0 : options.shouldPreventLoad)) {\n return \"idle\";\n }\n if (typeof window === \"undefined\") {\n return \"loading\";\n }\n return cachedScriptStatuses.get(src) ?? \"loading\";\n });\n useEffect(() => {\n if (!src || (options == null ? void 0 : options.shouldPreventLoad)) {\n return;\n }\n const cachedScriptStatus = cachedScriptStatuses.get(src);\n if (cachedScriptStatus === \"ready\" || cachedScriptStatus === \"error\") {\n setStatus(cachedScriptStatus);\n return;\n }\n const script = getScriptNode(src);\n let scriptNode = script.node;\n if (!scriptNode) {\n scriptNode = document.createElement(\"script\");\n scriptNode.src = src;\n scriptNode.async = true;\n if (options == null ? void 0 : options.id) {\n scriptNode.id = options.id;\n }\n scriptNode.setAttribute(\"data-status\", \"loading\");\n document.body.appendChild(scriptNode);\n const setAttributeFromEvent = (event) => {\n const scriptStatus = event.type === \"load\" ? \"ready\" : \"error\";\n scriptNode == null ? void 0 : scriptNode.setAttribute(\"data-status\", scriptStatus);\n };\n scriptNode.addEventListener(\"load\", setAttributeFromEvent);\n scriptNode.addEventListener(\"error\", setAttributeFromEvent);\n } else {\n setStatus(script.status ?? cachedScriptStatus ?? \"loading\");\n }\n const setStateFromEvent = (event) => {\n const newStatus = event.type === \"load\" ? \"ready\" : \"error\";\n setStatus(newStatus);\n cachedScriptStatuses.set(src, newStatus);\n };\n scriptNode.addEventListener(\"load\", setStateFromEvent);\n scriptNode.addEventListener(\"error\", setStateFromEvent);\n return () => {\n if (scriptNode) {\n scriptNode.removeEventListener(\"load\", setStateFromEvent);\n scriptNode.removeEventListener(\"error\", setStateFromEvent);\n }\n if (scriptNode && (options == null ? void 0 : options.removeOnUnmount)) {\n scriptNode.remove();\n cachedScriptStatuses.delete(src);\n }\n };\n }, [src, options == null ? void 0 : options.shouldPreventLoad, options == null ? void 0 : options.removeOnUnmount, options == null ? void 0 : options.id]);\n return status;\n}\nvar IS_SERVER5 = typeof window === \"undefined\";\nfunction useScrollLock(options = {}) {\n const { autoLock = true, lockTarget, widthReflow = true } = options;\n const [isLocked, setIsLocked] = useState(false);\n const target = useRef(null);\n const originalStyle = useRef(null);\n const lock = () => {\n if (target.current) {\n const { overflow, paddingRight } = target.current.style;\n originalStyle.current = { overflow, paddingRight };\n if (widthReflow) {\n const offsetWidth = target.current === document.body ? window.innerWidth : target.current.offsetWidth;\n const currentPaddingRight = parseInt(window.getComputedStyle(target.current).paddingRight, 10) || 0;\n const scrollbarWidth = offsetWidth - target.current.scrollWidth;\n target.current.style.paddingRight = `${scrollbarWidth + currentPaddingRight}px`;\n }\n target.current.style.overflow = \"hidden\";\n setIsLocked(true);\n }\n };\n const unlock = () => {\n if (target.current && originalStyle.current) {\n target.current.style.overflow = originalStyle.current.overflow;\n if (widthReflow) {\n target.current.style.paddingRight = originalStyle.current.paddingRight;\n }\n }\n setIsLocked(false);\n };\n useIsomorphicLayoutEffect(() => {\n if (IS_SERVER5)\n return;\n if (lockTarget) {\n target.current = typeof lockTarget === \"string\" ? document.querySelector(lockTarget) : lockTarget;\n }\n if (!target.current) {\n target.current = document.body;\n }\n if (autoLock) {\n lock();\n }\n return () => {\n unlock();\n };\n }, [autoLock, lockTarget, widthReflow]);\n return { isLocked, lock, unlock };\n}\nvar IS_SERVER6 = typeof window === \"undefined\";\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { initializeWithValue = true } = options;\n const serializer = useCallback(\n (value) => {\n if (options.serializer) {\n return options.serializer(value);\n }\n return JSON.stringify(value);\n },\n [options]\n );\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return defaultValue;\n }\n return parsed;\n },\n [options, initialValue]\n );\n const readValue = useCallback(() => {\n const initialValueToUse = initialValue instanceof Function ? initialValue() : initialValue;\n if (IS_SERVER6) {\n return initialValueToUse;\n }\n try {\n const raw = window.sessionStorage.getItem(key);\n return raw ? deserializer(raw) : initialValueToUse;\n } catch (error) {\n console.warn(`Error reading sessionStorage key \\u201C${key}\\u201D:`, error);\n return initialValueToUse;\n }\n }, [initialValue, key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return initialValue instanceof Function ? initialValue() : initialValue;\n });\n const setValue = useEventCallback((value) => {\n if (IS_SERVER6) {\n console.warn(\n `Tried setting sessionStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n try {\n const newValue = value instanceof Function ? value(readValue()) : value;\n window.sessionStorage.setItem(key, serializer(newValue));\n setStoredValue(newValue);\n window.dispatchEvent(new StorageEvent(\"session-storage\", { key }));\n } catch (error) {\n console.warn(`Error setting sessionStorage key \\u201C${key}\\u201D:`, error);\n }\n });\n const removeValue = useEventCallback(() => {\n if (IS_SERVER6) {\n console.warn(\n `Tried removing sessionStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n window.sessionStorage.removeItem(key);\n setStoredValue(defaultValue);\n window.dispatchEvent(new StorageEvent(\"session-storage\", { key }));\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if (event.key && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"session-storage\", handleStorageChange);\n return [storedValue, setValue, removeValue];\n}\nfunction useStep(maxStep) {\n const [currentStep, setCurrentStep] = useState(1);\n const canGoToNextStep = currentStep + 1 <= maxStep;\n const canGoToPrevStep = currentStep - 1 > 0;\n const setStep = useCallback(\n (step) => {\n const newStep = step instanceof Function ? step(currentStep) : step;\n if (newStep >= 1 && newStep <= maxStep) {\n setCurrentStep(newStep);\n return;\n }\n throw new Error(\"Step not valid\");\n },\n [maxStep, currentStep]\n );\n const goToNextStep = useCallback(() => {\n if (canGoToNextStep) {\n setCurrentStep((step) => step + 1);\n }\n }, [canGoToNextStep]);\n const goToPrevStep = useCallback(() => {\n if (canGoToPrevStep) {\n setCurrentStep((step) => step - 1);\n }\n }, [canGoToPrevStep]);\n const reset = useCallback(() => {\n setCurrentStep(1);\n }, []);\n return [\n currentStep,\n {\n goToNextStep,\n goToPrevStep,\n canGoToNextStep,\n canGoToPrevStep,\n setStep,\n reset\n }\n ];\n}\n\n// src/useTernaryDarkMode/useTernaryDarkMode.ts\nvar COLOR_SCHEME_QUERY2 = \"(prefers-color-scheme: dark)\";\nvar LOCAL_STORAGE_KEY2 = \"usehooks-ts-ternary-dark-mode\";\nfunction useTernaryDarkMode({\n defaultValue = \"system\",\n localStorageKey = LOCAL_STORAGE_KEY2,\n initializeWithValue = true\n} = {}) {\n const isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY2, { initializeWithValue });\n const [mode, setMode] = useLocalStorage(localStorageKey, defaultValue, {\n initializeWithValue\n });\n const isDarkMode = mode === \"dark\" || mode === \"system\" && isDarkOS;\n const toggleTernaryDarkMode = () => {\n const modes = [\"light\", \"system\", \"dark\"];\n setMode((prevMode) => {\n const nextIndex = (modes.indexOf(prevMode) + 1) % modes.length;\n return modes[nextIndex];\n });\n };\n return {\n isDarkMode,\n ternaryDarkMode: mode,\n setTernaryDarkMode: setMode,\n toggleTernaryDarkMode\n };\n}\nfunction useTimeout(callback, delay) {\n const savedCallback = useRef(callback);\n useIsomorphicLayoutEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n useEffect(() => {\n if (!delay && delay !== 0) {\n return;\n }\n const id = setTimeout(() => {\n savedCallback.current();\n }, delay);\n return () => {\n clearTimeout(id);\n };\n }, [delay]);\n}\nfunction useToggle(defaultValue) {\n const [value, setValue] = useState(!!defaultValue);\n const toggle = useCallback(() => {\n setValue((x) => !x);\n }, []);\n return [value, toggle, setValue];\n}\nvar IS_SERVER7 = typeof window === \"undefined\";\nfunction useWindowSize(options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER7) {\n initializeWithValue = false;\n }\n const [windowSize, setWindowSize] = useState(() => {\n if (initializeWithValue) {\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n }\n return {\n width: void 0,\n height: void 0\n };\n });\n const debouncedSetWindowSize = useDebounceCallback(\n setWindowSize,\n options.debounceDelay\n );\n function handleSize() {\n const setSize = options.debounceDelay ? debouncedSetWindowSize : setWindowSize;\n setSize({\n width: window.innerWidth,\n height: window.innerHeight\n });\n }\n useEventListener(\"resize\", handleSize);\n useIsomorphicLayoutEffect(() => {\n handleSize();\n }, []);\n return windowSize;\n}\n\nexport { useBoolean, useClickAnyWhere, useCopyToClipboard, useCountdown, useCounter, useDarkMode, useDebounceCallback, useDebounceValue, useDocumentTitle, useEventCallback, useEventListener, useHover, useIntersectionObserver, useInterval, useIsClient, useIsMounted, useIsomorphicLayoutEffect, useLocalStorage, useMap, useMediaQuery, useOnClickOutside, useReadLocalStorage, useResizeObserver, useScreen, useScript, useScrollLock, useSessionStorage, useStep, useTernaryDarkMode, useTimeout, useToggle, useUnmount, useWindowSize };\n"],"names":["digitalData","event","user","profile","profileInfo","profileID","pointsBalance","rewardsTier","attributes","loginStatus","goUserType","page","siteExperience","category","siteType","pageInfo","global","userType","brandCode","brandName","exp","expType","pageName","primaryCategory","subSection","subSubSection","isCmsPage","ExtendedAdobeTagManager","setDefaultPageData","mergedProps","defaultPageData","props","language","pageType","pageDetail","_set","document","title","getAppVersion","location","origin","pathname","capitalize","getCmsPageName","getPageName","setGuestPageData","setPageInfo","value","key","Array","isArray","join","setPageName","setProperty","setPageDetails","details","detailIdx","setEventAction","eventAction","eventDetails","eventIdx","setFormErrors","errors","formErrors","clearMetrics","setFormErrorMessages","messages","trackEvent","params","resetEvents","_track","eventName","_resetEvents","trackGridItemClick","formatLabel","label","trackPageDetails","trackLoginError","type","source","track","trackPageView","trackFormErrors","setErrorPageData","errorCode","errorMessage","errorName","unsetProperty","_unset","path","reset","AdobeTagManager","createMetrics","metricsConfig","debug","Boolean","env","test","Interface","seedFile","server","MetricsContext","createContext","metrics","api","hgvUserTypes","smbUserTypes","getGuestUserType","guestInfo","userTypeArray","hhonors","packages","find","pack","includes","packageName","getSMBGuestUserType","filter","MetricsProvider","children","trackingData","pageData","useLanguage","router","useRouter","useAuth","isAuthenticated","isLoading","useEffect","goGuestType","goUserTypes","hgvMaxGuestType","smbGuestType","length","map","hhonorsNumber","summary","totalPoints","tierName","pageView","handleTrackedRouteChange","url","getQueryParameters","events","on","off","Provider","config","REACT_QUERY_CONFIG","Object","freeze","appId","appName","gqlEndpoints","browser","process","DX_GRAPHQL_SERVER_URI","authEndpoints","DX_AUTH_API_SERVER_URI","cookies","Cookies","getSegmentCookie","cookie","get","SEGMENTATION_COOKIE_NAME_DEV","SEGMENTATION_COOKIE_NAME","set","domain","sameSite","secure","encode","useSegments","isClient","useIsClient","useMemo","tms","segments","split","entry","toLowerCase","startsWith","defaultOptions","preventListeners","attachToWindow","useScrolled","ref","options","mergeOptions","useState","scrollTop","scrollLeft","setScrolled","handleScroll","scrollTopVal","scrollLeftVal","window","pageYOffset","pageXOffset","element","current","useIsomorphicLayoutEffect","addEventListener","removeEventListener","useQueryLanguage","client","useQueryClient","getQueryData","QUERY_LANGUAGE_KEY","useStaticUrls","host","URL","ohwPortfolioUrlBuilder","UriBuilder","ohwHonorsUrlBuilder","brand","attendeeWebsiteUrl","build","honorsForgotInfoUrl","personalDataRequestsUrl","privacyStatementUrl","useNaaActivityBanner","useConductrics","useConductricsSelection","isLoaded","selection","NAA_ActivityOfferBanner","choice","getCookie","name","TMS_DEV_COOKIE_NAME","TMS_LIVE_COOKIE_NAME","getConductricsTraits","knownGuest","isTeamMember","isOwner","isOwnerHGV","isLongTenure10","isLongTenure20","tier","traits","push","visitorTraits","initConductrics","useInitConductrics","loaded","useRef","userSegments","useUserSegments","val","guestTraits","locale","useMetrics","useContext","module","exports","i18n","defaultLocale","locales","returnNull","lowerCaseLng","defaultNS","fallbackLng","localePath","appPublicLocales","APP_ENV","publicLocales","Alert","data","useBrand_AlertQuery","error","alerts","getAlerts","SharedAlerts","headline","link","content","SharedAlert","status","isTruncated","className","Link","adaDescription","isNewWindow","AlertDialog","div","Markdown","logError","generateError","Footer","React","forwardedRef","customerSupportLink","isFluid","legalLinks","footerLinks","links","contactPhoneLink","socialLinks","theme","rest","teConsentRef","useTranslation","t","id","footerNavLength","footerNavHalfPoint","Math","ceil","footerNavFirstHalf","slice","footerNavSecondHalf","isDark","observer","MutationObserver","mutationList","mutation","parentElement","removeAttribute","observe","childList","subtree","disconnect","footer","cx","data-testid","container","h2","data-osc-product","underline","span","p","ul","channel","li","a","href","target","rel","aria-label","img","alt","src","experimentationConfiguration","handleTeconsentParentProps","anchorClassName","data-conductrics-goal","goal","data-conductrics-value","suppressHydrationWarning","Date","getFullYear","displayName","globalFooterLinks","GlobalFooter","handleClick","useSpeedbump","onShow","onHide","isVisible","onContinue","Speedbump","isShowing","onClose","OSCFooter","onClick","handleShowSpeedbump","GlobalFooterLinks","returnObjects","webAccessibility","customerSupport","globalPrivacy","creditCards","careers","development","media","usageAgreement","partnerAccommodations","modernSlavery","discountTermsAndConditions","termsAndConditions","tourismMediator","adChoices","GetLanguageSelectorOneLinkConfigDocument","operationName","operationString","originalOpName","LANGUAGE_CODE_NAMES","GetLanguageSelectorHotelDataDocument","ar","bg","cs","da","de","en","es","fi","fr","it","ja","ko","nl","no","pl","pt","ro","ru","sv","th","tr","vi","filterLanguagesWithLabel","languages","lang","logWarning","getI18nSafeLangCode","code","safeLangCode","makeLanguageUrl","newLocale","removeUrlParams","languageUrl","isBrowser","replace","RegExp","sortRtlFirst","rtlLangs","isRtl","ltrLangs","LanguageSelector","featureConfigsData","oneLinkLanguagesConfig","hotelData","urlOverrides","ENOverride","isFetching","variables","useGetLanguageSelectorHotelDataQuery","appWhitelist","conditions","supportedLanguages","ruleEngine","supportsRuleEngineConfig","cmsLanguages","cmsFullSiteLanguages","cmsResOnlyLanguages","fullSiteLanguages","resOnlyLanguages","netNewFullSiteLanguages","supportedResOnlyLanguages","sortedFullSiteLanguages","sortedResOnlyLanguages","linksContainerRef","buttonOptions","ctyhocn","labelOptions","popupOptions","wrapperClassName","onLanguageSelection","selectedLanguage","setSelectedLanguage","buttonHover","setButtonHover","popupButtonRef","useLanguageSelectorLanguages","useGetLanguageSelectorOneLinkConfigQuery","useQuery","queryKey","toUpperCase","enabled","featureConfigs","fc","oneLinkLanguages","whitelist","languagesObj","languagesToExclude","keys","entries","appsArray","RuleEngine","run","hotel","localization","languageSupport","reduce","acc","bookingUrl","fullSite","opensNewTab","override","siteUrl","resOnly","supportedFullSiteLanguages","netNewResOnlyLanguages","sort","b","localeCompare","allLanguages","loading","featureConfigsLoading","hotelDataLoading","getSafeLanguage","getSelectedLanguage","focusFirstLink","querySelector","focus","handleLinkKeyDown","getKeyDownNavigation","elements","from","querySelectorAll","initiatingRef","trackLinkClick","_satellite","console","warn","classnames","Popup","PopupContextState","isOpen","style","styles","aria-hidden","PopupButton","sendReward","onArrowDownWhenOpen","hoverStyles","onMouseEnter","onMouseLeave","DownArrowIcon","PopupContent","popupStyles","maxHeight","overflowY","includeTitles","ListItem","linkProps","onKeyDown","bdi","context","usePopup","svg","viewBox","version","g","stroke","strokeWidth","fill","fillRule","transform","polyline","strokeLinecap","points","DrawerPanel","alignment","appWrapperId","interactiveElementWrapperId","panelProps","returnFocus","isRightPanelVisible","setIsRightPanelVisible","body","overflow","nonInteractiveElems","forEach","nonInteractiveElement","setAttribute","drawerWrapper","els","navParentElement","nonInteractiveElements","FocusLock","disabled","onAnimationEnd","hidden","getIsReducedMotion","sendInteractionReward","trackNavClickBasedOnLabel","dropdownLabel","trackNavClick","str","replaceLang","stringValue","Logo","altText","HeaderLogoLink","heading","Wrapper","undefined","NavItem","listItemProps","spacedChild","NavItemVisual","icon","indicator","hasRotatedIndicator","section","Icon","wrapper","variant","NavItemWithLink","namedIcon","isWide","buttonLabel","buttonIcon","onLoginAttempt","showDialog","setShowDialog","close","handleLogin","response","arrayChildren","toArray","button","open","Dialog","onDismiss","size","child","LoginIFrame","rotateOnOpen","left","NavigationPopupContents","subMenu","MenuList","MenuListItem","subMenuLabel","UserPopupContents","userLinks","shouldOpenAccountLinksInNewWindow","shouldSuppressHonorsAccountLinks","onSignOut","formattedHonorsPointsTotal","getLocaleFormattedNumber","honorsPoints","username","honorsTier","honorsPointsTotal","accountLink","MegaUserLink","honorsActivityLink","honorsPointsLink","honorsProfileLink","goHiltonLink","friendsAndFamilyLink","hgvMaxLink","smbMemberLink","listProps","UserNav","loginOptions","onSignInAttempt","languageSelectorOptions","shouldSuppressFindStay","shouldSuppressJoinAndSignIn","SignUpComponent","frameSrc","signInLink","userButtonLinkRef","nav","findStayLink","showNewWindowIcon","NavItemWithPopup","signUpLink","loggedInButtonRef","signUpComponent","NavItemWithModal","data-e2e","MainNav","mainNavLinks","MegaMenu","suppressLogo","headingLevelProps","role","DrawerList","selectedItem","menuItems","nextItem","setNextItem","nextItemIndex","setNextItemIndex","setSelectedItem","selectedItemIndex","setSelectedItemIndex","backButtonRef","isFadingOut","setIsFadingOut","lastSelectedButton","focusOnBack","setTimeout","itemSelected","menuItem","index","goBack","aria-expanded","signInUrl","asPath","navLinks","getBaseNavLinksFromEnv","signUpUrl","DEFAULT_OCODE","environmentBaseUrl","isB2BMember","isHGVMax","isOwnerHGVNew","isTMTPTeamMember","isTMTPNonTeamMember","isTeamMemberSpouse","isFamilyAndFriends","activeUserLinks","wrapperId","isMenuOpen","setIsMenuOpen","isAccountOpen","setIsAccountOpen","userLoggedInButtonRef","useActiveUserLinks","closeMenus","handleKeyDown","e","addEscapeKeyListener","removeEscapeKeyListener","accountPressed","joinButtonClasses","menuPressed","Login","hideIcon","onOpen","buttonClassName","visible","invisible","getElementById","closeMainMenu","AccountSection","closeAccount","AccountUserLink","JoinModalButton","loginIFrameSrc","oCode","onSuccessfulLogin","onSuccessfulJoin","isModalOpen","setIsModalOpen","showJoinFormContent","setShowJoinFormContent","showLoginIframe","setShowLoginIframe","newHonorsNumber","setNewHonorsNumber","login","buttonRef","successMessageRef","useOrigin","setOrigin","protocol","hostname","port","handleOpenLoginIframe","handleCloseModal","dialogTrigger","handleOpenModal","JoinForm","h1","onSuccess","honorsNumber","createGuest","result","then","catch","HeaderMenuLink","asChild","joinModalConductricsTestAgent","onSignInLinkClick","setConductricsSelectionOK","Header","megaNavLinks","showNewHeader","commonHeaderBodyProps","joinFromModal","useJoinFromModalTest","Status","PENDING","onMouseDown","header","BrandHeaderBody","NewHeaderBody","OldHeaderBody","tabIndex","DropdownMenu","dir","modal","align","count","additionalLinks","navRef","isBeforeVisible","setBeforeVisible","isAfterVisible","setAfterVisible","onChange","rect","widthDiff","scrollWidth","navWidth","width","newBefore","newAfter","navRect","useRect","onResize","onNavScroll","onScroll","allEnv","APP_NAME","OHW_BASE_URL","getCreditCardUrl","showNewJACobrandLink","useActiveNavLinks","useNavigationQuery","useFeatureTogglesQuery","flags","featureFlags","isFeatureEnabled","featureToggleData","featureToggles","ENABLE_JAPANESE_CO_BRAND_PAGE_LINK","handleCreditCardClick","sections","secondaryLinks","secondaryLink","flatMap","setUser","query","forwardPageURI","logout","navItems","selections","useConsistentConductricsSelection","useFilterMegaNavExperiments","isSingleAgent","agents","isConductricsSingleSelection","agentId","findAgentsToFetch","Set","item","add","subMenuItem","filterMegaNavExperiments","experimentationAgents","shouldRenderExperiment","secondary","drawerItem","brandLink","getGuestFirstName","honorsPointsFmt","totalPointsFmt","resp","makeAnchorEventTarget","assign","hgvRedirectUrl","goHiltonRedirectUrl","redirectUrl","getLoginRedirectUrl","OSCHeader","showCreatePassword","forgetInfoLink","secureInfoLink","joinLink","onFormSubmit","route","isUrlFromSpeedbump","sendConductricsReward","Goals","FindAHotel","FindAHotelMCLP","SearchWidget","removeFlexibleDatesSelection","shouldSuppressHalfSearchWidget","useLocation","coordinate","guestId","enableRemoveFlexibleDatesTest","setEnableRemoveFlexibleDatesTest","OK","isRemoveFlexibleDatesDefault","isRemoveFlexibleDatesTestLoaded","isRemoveFlexibleDatesVariant","searchDefaultValues","isSMBMember","searchFormKey","btoa","encodeURI","JSON","stringify","ShopForm","onSubmit","handleFormSubmit","formData","EditSearchWidget","targetOHWPage","defaultValues","enableDatesFlexDreamRouting","shouldDisplayGeocodeErrorModal","hasErrorBanner","ShopFormLocation","required","sessionId","toString","autocompleteUri","ShopFormDates","hasTodayAsDefault","hideFlexDates","onFlexibleDates","MY_FLEXIBLE_DATES_CLICK_GOAL","onResetDates","RESET_DATES","ShopFormRooms","ageRange","min","max","occupancyLimitMessage","ShopFormSpecialRates","defaultLayout","isHomepage","hasAlert","hasHeader","hasGoHiltonHeader","hasFixedHeader","hasFooter","hasSearchWidget","hasMinimalHeader","Layout","forwardUrlPath","forwardUrl","setForwardUrl","queryClient","layout","useForwardUrl","processForwardUrl","isHiltonHonorsHomePage","hiltonHonorsLocale","fullForwardUrl","supportsInLanguageHiltonHonorsFlow","isTranslatedUrl","rule","getExternalUrl","useMCLPSearchSuppress","isMobile","useMediaQuery","suppressHalfSearchWidgetForMobile","getHeaderContent","main","ConductricsInit","appWithTranslation","MyApp","Component","pageProps","hasCustomCanonicalUrl","useManualPageLogger","routerLocale","authClient","auth","reactQueryClient","makeQueryClient","ssrMode","oneLinkConfig","handleStart","shallow","regexFilter","sanitizedUrl","getUrlHost","delete","useIdleTimer","timeout","IDLE_TIMEOUT","eventsThrottle","onIdle","log","now","onActive","onAction","handleLogout","Head","meta","hrefLang","AuthProvider","onLogout","QueryClientProvider","HydrationBoundary","state","dehydratedState","LocationProvider","userAgent","ReactQueryDevtools","initialIsOpen","buttonPosition","CreditCardApplyNow","HonorsApplyNow","SurpassApplyNow","AspireApplyNow","BusinessApplyNow","CreditCardTermsAndConditions","SuccessfulHonorsEnrollment","LearnMoreCtaClick","TierTabSelection","BookYourNextGetaway","PopUpCloseClick","ExploreMoreRatesCTATile1","ExploreMoreRatesCTATile2","ExploreMoreRatesCTATile3","ExploreMoreRatesCTATile4","ExploreMoreRatesCTA","JoinHiltonHonorsCTAClick","CombinedClickOnAllTiles","HeadLinerLinkClick","req","initialAuthState","AuthClient","authEndpoint","gqlEndpoint","request","restore","callReservationLogin","confNumber","lastName","arrivalDate","Error","method","credentials","headers","app_id","fetch","ok","statusText","json","NHCGUEST_506","NHCGUEST_1217","ENABLE_COVID_POLICY_UPDATE","HIDE_SECURITI_AI","ENABLE_STANDALONE_POINTS_COM","ENABLE_MARKETABILITY_CCS_CONTENT","ENTERPRISE_THEME_REFRESH_TOGGLE_NAME","CONFIG_RULE_PATH","toggles","toggleName","GoalByCardName","goalID","sendRewardAsync","s","charAt","pageCategory","outputCategory","pageDetails","detail","parts","StayTransactionFragmentDoc","StayRoomDetailsFragmentDoc","RotatingTilesFragmentDoc","FullWidthImageFragmentDoc","MosaicGridFragmentDoc","FourXGridFragmentDoc","EligiblePromotionFragmentDoc","ActivePromotionFragmentDoc","coreServerSideProps","dehydratedOriginalOpNames","authClientProp","namespaces","queryClientProp","includeConfigRules","originalLocale","appNameConfig","oneLinkProps","translations","configRules","featureTogglesData","makeServerQueryClient","serverResponse","res","getServerSideSafeLanguage","serverSideOneLinkConfig","Promise","all","serverSideTranslations","getOneLinkProps","resolvedUrl","sstLocale","nextI18nextConfig","getSupportedLanguages","serverSideFeatureTogglesQuery","getSpeedBumpFeatureConfig","setQueryData","getBrandRefreshProps","getDehydratedQueryState","getAssetUrl","getLoginUrl","loginUrl","refererUrl","searchParams","search","redirectSearchQuery","URLSearchParams","encodeURIComponent","queryString","param","doesUrlHaveQueryParameters","PAGE_VIEW","ActionTypes","TRACK","EXCLUDES","concat","getOwnPropertyNames","getPrototypeOf","aggregateApisByType","obj","total","arr","filterKeysByType","indexOf","hasOwnProperty","noop","isService","functionProps","defaultService","isPromise","elem","attr2obj","prefix","attrs","dataAttrs","rdashAlpha","fcamelCase","letter","nodeType","i","camelName","getAttribute","TrackBindingPlugin","attributePrefix","traverseParent","_attributePrefix","_traverseParent","listen","rootElement","callback","_clickHandler","remove","_rootElement","EventListener","_handleClick","bind","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","isLeftClickEvent","srcElement","dataset","_getData","parentNode","mergePagedefaults","canUseDOM","qs","fromEntries","defaults","pageViewEvent","pageDefaults","requestTimeout","Transaction","pvTransactions","transactionId","create","tId","Metrics","vendors","metrics_debug","customParams","cancelOnNext","services","vendor","createService","inst","instance","instantiate","apis","apiList","extractApis","service","constructor","transaction","routeState","apiImpl","impl","args","_prepareTrack","removeListener","setRouteState","_cancelPreviousPromiseIfPending","useTrackBinding","_removeTrackBindingListener","invariant","_trackBindingListener","useTrackBindingPlugin","destroy","_removeListeners","_callServices","promise","clearTimer","timer","clearTimeout","results","resolve","isTimeout","apiExists","warning","requestPromise","shouldCancel","_createTransaction","_clearTransaction","_doTrack","dispatchEvent","eventFacade","emit","every","_getDefaultData","_mergeWith","_addCancelHook","reject","_addEventNameToPromise","shouldMerge","unshift","_inspectArguments","removeAllListeners","EventEmitter","setItem","String","setEventInfo","_addEventInfo","shouldAddEvent","_load","satellite","isEmpty","_cleanAndSetData","_promise","dispatchReady","seedScript","createElement","onload","onerror","head","appendChild","names","eventInfo","_value","unset","propertySearchLocationPath","propertySearchDateInfoPath","productIDPath","productInfo","productId","CustomEvent","ImageClickID","Scroll","Img","NoValue","Modal","Dynamic","Carousel","Collage","Full","Half","Headliner","Hero","Filmstrip","Patchwork","Offset","Gallery","Masthead","Sticky","clearImageAnalyticsData","ANALYTICS_GLOBAL_CLICK_EVENT","isAnalyticsImageTrackingEnabled","existingValue","AuthContext","initialContext","refreshGuestInfo","isCorpUser","reducer","action","loggedIn","authInfo","initialState","useReducer","getIsLoggedIn","dispatch","mounted","safeDispatch","useCallback","v","logoutCb","info","loginFaliureCb","loginSuccessCb","flushSync","getGuestInfo","guest","getGuestId","VALID_SAME_SITES","setCookie","expires","escape","getDefaultDomain","today","expires_date","getTime","cookieValue","toUTCString","minExpiresTTL","ssr","webGuestMetadataCookie","authenticationCookie","userRefreshTokenPromise","requestTimeoutMs","appTokenPromise","guestInfoPromise","attemptsToGetGuestInfo","getAll","getTokensFromCookie","getRequestHeaders","webGuestTokenType","fetchAppToken","fetchGuestInfo","shouldRefreshToken","refreshLoggedInUserToken","getGqlEndpoint","getAuthEndpoint","extract","tokenType","refreshToken","getAuthenticationCookie","getAuthorizationHeader","token","apptoken","accessToken","rawHeaders","array","userRealm","getAppNameParam","currentToken","cache","Accept","Authorization","UserClaims","invalidateSession","setUserSessionData","userInfo","tokenInfo","access_token","expiresIn","expires_in","token_type","timestamp","updateAccessToken","currentAuthenticationCookie","updatedWso2AuthTokenCookie","setwso2AuthTokenCookie","authResponseToAuthCookie","redirectToLoginPage","logoutUrl","authorization","localStorage","removeItem","setWso2Cookie","wso2Cookie","Buffer","endpoint","userAuth","authHeader","requestInit","controller","abortTimeout","requestUrl","AbortController","abort","GuestDocument","signal","logInfo","isQueryIncomplete","triggerInCompleteEvent","requestBody","mergeCacheControl","guestNameObj","ignoreLocalizedName","personalinfo","firstName","nameLocalizations","nameFmt","getApi","conductricsClient","getConductricsSelection","agent","conductricsApi","normalizeAgents","exec","reward","message","getInitKey","queryKeys","initKey","agentKey","defaultClientState","isInitialized","reduceAgents","stateOrTransformer","useConductricsClientQuery","initialData","gcTime","Infinity","staleTime","useSelection","useConductricsSelectionQuery","queryFn","clientState","isSuccess","sels","filteredParts","conductricsSels","part","queryError","queryIsLoading","defaultState","getSelection","items","md","selectedAgentsState","agentsState","firstAgent","conductricsSelsPath","Conductrics","ClientApi","variation","defaultPublicVars","getClientEnv","__ENV","getServerEnv","__NEXT_DATA__","buildId","defaultValue","WrappedComponent","hoistNonReactStatics","I18nFrameworkAppWithTranslation","_nextI18Next","isOneLink","userConfig","appPath","appPaths","browserLocalePath","use","backend","loadPath","addPath","nextI18NextAppWithTranslation","weekStartsOnLocale","Intl","NumberFormat","getIntlNumberLocale","useGrouping","format","FeatureConfigsDocument","shouldIncludeLanguageParam","configLocale","match","pathName","urlObj","ruleEngineResult","CONFIG_NAME","engine","facts","isTranslated","fetchQuery","dxCompleteness","isSSR","sessionKey","initialUserSession","continent","country","region","zipCode","clear","saveToSession","object","ttl","expireDate","sessionStorage","getItem","parse","getCoordinateBias","biasDegrees","calcBias","point","floor","latitude","longitude","LocationContext","Consumer","CLIENT_LOCATION_URI","userLocation","session","retrieveFromSession","err","searchBiasDegrees","searchBiasCoordinate","addressBiasDegrees","addressBiasCoordinate","marketingBiasDegrees","marketingBiasCoordinate","refreshTTL","dynatrace","dtrum","LOG_LEVELS","ERROR","INFO","WARN","hint","group","enableManualPageDetection","modifiedGroup","setPage","level","errorKey","markAsErrorPage","reportCustomError","normalizeError","buildHint","sendBeacon","customError","cause","fn","errorString","stringifyValue","firstLeftArrow","trim","serverResp","mergeHttpHeaders","splitLanguage","mappedLang","zhMapping","isExtractableFile","File","Blob","forwardHeaders","makeRequest","queryRequest","retries","undiciErrorSocketRetries","authenticatedOperationNames","handleAuthenticatedOperationError","handleRequestEndpoint","handleRequestHeaders","customHeaders","referrerArg","referrerPolicy","serverRequestArg","variablesToIncludeInParams","appVersion","serverRequest","authenticatedOperation","visitoridHeader","hltClientMessageIdHeader","bodyLanguage","browserUrl","includeLanguageParam","visitorId","requestId","hltClientMessageId","referrer","paramsFromVariables","extractFiles","clone","files","form","finalUrl","refreshAndRetry","jsonResult","responseText","isForbidden","referenceError","shouldRetry","isUnauthorized","cookingString","visitorid","hltclientmessageid","filterCookies","allowedCookies","getVisitorId","serverCookies","setVisitorId","uuid","crypto","randomUUID","addDays","startOfToday","generateReferrer","isServer","variable","bl","defaultIsExtractableFile","Map","clones","recurse","recursed","filePaths","isList","FileList","isObject","hasClone","has","pathPrefix","recursedDeeper","itemClone","propertyClone","FormData","append","paths","_","file","formDataAppendFile","fieldName","text","er","ServerAuthError","handleResultErrors","Response","__info__","GraphError","causedByUnauthorized","statusCode","graphQLErrors","some","causedByForbidden","CDN_STALE_TIME","retry","failureCount","reactQueryClientOverrideOptions","makeDefaultFnArgs","QueryClient","queries","makeDefaultQueryFn","refetchOnWindowFocus","cacheTime","mutationFn","makeDefaultMutationFn","DEPRECATED_BRAND_CODES","DEFAULT_BRAND_CODE","isBrandRefresh","getThemeClassName","defaultArguments","base","getSupportedBrandCode","refresh","schema","CH","DT","ES","EY","GI","GU","GV","HH","HI","HP","HT","HW","LX","ND","OL","OU","PE","PO","PY","QQ","RU","SA","UA","UP","WA","WW","aarp","corporateAccount","employeeRate","friendsAndFamilyRate","fromId","government","groupCode","offerId","ownerHGVRate","ownerVIPRate","pnd","promoCode","requestedRatesOnly","senior","smbRate","spec_plan","travelAgentId","travelAgents","tripleA","usePoints","buildRatesParams","rates","rateKey","RatePlanParamKeys","numRooms","rooms","normalizedRooms","mapRoomsArrayToCBPFormat","accum","curr","adults","age","c","room","currentRoom","dates","departureDate","flexibleDates","groupsPath","numAttendees","transientPath","urlParams","relative","baseUrl","brandSlug","primarySlug","adjoiningRoomStay","availableHotelsOnly","displayCurrency","f_amenityIds","f_attributeIds","f_brandCodes","f_price","f_tripAdvisorRatings","maxPoints","placeId","programAccountId","sessionToken","sortBy","specialRateTokens","cid","isDateless","basePath","getGroupOrTransientSubpath","brandCodeToBrandNameMapper","filteredSpecialRateTokens","specialRate","buildDatesParams","buildRoomsParams","redeemPts","placeUri","geocodeType","bounds","fullPath","endsWith","isBrandCodeMatchedWithFilter","southwest","northeast","queryParams","bookUriBuilder","additionalQS","nonEmptyAdditionalQS","querystringObj","urlparts","bookParamBuilder","formatDate","roomsToQS","prev","roomNumber","adultAges","childAges","room1NumAdults","mapParams","isFinite","date","propertyUriBuilder","useCycle","active","hasSlides","cycleProps","truncate","ariaLabel","hasChildrenWithTitle","setOpen","commonProps","cycleId","aria-live","AlertsControls","hideLabel","loop","onNextClick","onPreviousClick","Pagination","controls","Alerts","onChangeIndex","validSlides","slides","Cycle","AlertsContent","STATUS_ROLE_MAPPER","success","normal","BannerNotification","customIcon","aria-atomic","ControlBack","ControlClose","ControlNext","CycleContext","fallbackId","setActive","onSetActive","DatePickerDatesButton","day","dayTextColorClassName","isReducedSize","useLocale","kanji","isKanji","dateFormatParts","useDateFormat","weekday","reducedSubTextSize","month","numeric","startOfMonth","_date","toDate","in","setDate","setHours","isSameMonth","laterDate","earlierDate","normalizeDates","laterDate_","earlierDate_","getMonth","isSameDay","dateLeft_","dateRight_","startOfDay","isAfter","dateToCompare","isBefore","CalendarDay","inRange","isToday","selected","highlighted","FORMAT","CalendarMonth","endDay","maxDays","allowPrevious","onDayChange","onFocusedDayChange","isVisibleMonth","dayLabel","passedHighlightedDates","highlightedDates","passedEnabledDates","enabledDates","passedMonth","dateToString","d","parsedDate","isDate","parseInt","weeks","getDaysSplitByWeeks","week","useDaysOfWeek","formattedDate","monthName","yearText","isVietnamese","year","monthId","table","aria-labelledby","thead","scope","tbody","w","startTime","tab0","isFirstDayOfMonth","getDate","interval","start","isWithinInterval","end","time","endTime","selectDay","td","flag","subDays","startOfWeek","lastDayOfWeek","getDefaultOptions","weekStartsOn","diff","preventDefault","evt","clientX","clientY","onFocus","toLocaleDateString","DEFAULT_LANGUAGE","INPUT_FORMAT","Calendar","allowSameDay","onEndDayChange","instructions","formId","dayId","endDayId","MonthDateSelectorComponent","month0Ref","month1Ref","focusedDay","setFocusedDay","previousMonthRef","nextMonthRef","setMonth","nextDay","prevDisabled","selectedDateRef","onChangeDay","getDayLabel","dateStyle","onMonthChange","newD","monthNumber","addMonths","monthInFocus","offsetParent","subMonths","input","selectedCalendarDate","onMonthUpdate","amount","dayFieldName","isDayUse","endDayFieldName","setMessage","useFormContext","setValue","shouldDirty","shouldValidate","fromDate","DatePicker","afterCalendarContent","SearchDatesIndicator","hasFlexDatesDisabled","dateFieldNamePrefix","onConfirm","flexDatesLabel","openProp","getValues","useWatch","initialValues","setInitialValues","isDateOptional","dayDefault","endDayDefault","endDayLabel","formatDay","formatEndDay","dismissAndResetToOriginalDates","keepDefaultValues","resetDateA11y","setResetDateA11y","resetButtonCTA","isEnabled","resetA11Y","whenLabel","FormLabel","requiredDates","ActionDialog","contentDataAttribute","onCancel","confirmAndCloseModal","onReset","resetDates","datesFlex","openModal","cloneDeep","DatePickerCalendar","checkin","FormInput","DateRangeScreenReaderText","fromDateString","toDateString","nights","differenceInDays","DialogTitle","DialogBase","closeButtonClassName","dialogClassName","dialogOverlayClassName","dialogTitleClassName","bottomContent","stickyHeader","innerRef","dialogRef","aria-describedby","onInteractOutside","onEscapeKeyDown","CloseButton","Button","forwardRef","ActionButtons","confirm","cancel","shouldStackButtons","resetBtnEnabled","buttons","dialogProps","handleCancel","handleConfirm","FormErrorIcon","height","circle","cy","r","FormError","types","values","hasError","Form","useFormProps","mode","criteriaMode","memoizedFormProps","methods","useForm","formState","isSubmitted","hasErrors","FormProvider","noValidate","handleSubmit","FormHelpMessage","Spinner","FormLabelHelper","optional","requiredText","optionalText","registerOptions","labelClassName","helpMessage","containerClassName","errorId","helperId","register","fieldError","inputClassName","labelClass","aria-invalid","formatCardNumber","cardNumber","cardValidator","cardData","number","isPotentiallyValid","card","cardNumberArray","validGapIndices","gaps","gapIndex","gap","splice","FormCardNumberInput","cardType","setCardType","autoComplete","inputMode","setValueAs","validate","isValid","MAX_NUMBER_OF_DIGITS","MAX_NUMBER_OF_GAPS","FormSelect","select","multiple","FormTextarea","maxLength","watch","inputValue","inputName","percent","remaining","textarea","IconSetNames","EYIconSetNames","ESIconSetNames","ESIconNames","HPIconSetNames","sizeToPixelValue","xs","sm","lg","xl","brandIconPath","sizeInPixels","ReactSVG","beforeInjection","classList","afterInjection","wrapperDiv","AmenityIcons","adjoiningRooms","adventureStays","airportShuttle","allInclusive","beach","boutique","businessCenter","casino","concierge","connectedRoom","digitalKey","dining","evCharging","eveningReception","eveningSocial","executiveLounge","familyFriendly","fitnessCenter","freeBreakfast","freeParking","freeWifi","golf","hotelResidence","indoorPool","inRoomKitchen","luxury","meetingRooms","newHotel","nonSmoking","outdoorPool","petsAllowed","petsNotAllowed","resort","roomService","ski","spa","streamingTv","tennisCourt","InfoPopupContent","testId","side","closePopup","infoIconRef","labelProp","InfoPopup","Countries_AddressOptionsDocument","ADDRESSLINE1","ADDRESSLINE2","CITY","COUNTRY","EMAIL","FAMILYNAME","GIVENNAME","NEWPASSWORD","POSTALCODE","STATE","TEL","AutoComplete","Modes","Add","Edit","AddressFields","getFieldState","addressFieldData","groupName","componentState","setLoadingGeocode","setError","clearErrors","touchedFields","isZipInvalid","setIsZipInvalid","shouldHideCityAndStateFields","getFieldKey","field","isPostalCodeTouched","isTouched","city","useCountries_AddressOptionsQuery","states","countries","useGeocodeQuery","postalCode","GeocodeDocument","geoLocationData","geocode","address","fields","addressOptions","option","getAutoComplete","FormInputPassword","passwordCriteriaClassName","useId","touchedField","passRequirements","mustBe","containUpper","containLower","containOneNumber","hasRequirementError","strokeLinejoin","classname","personalInformationPage","addDefaultOption","isDisabled","phoneCountryError","helperPhoneId","phoneNumberFieldError","phoneCountryFieldError","getOptions","callingCode","pattern","phone","Paragraph","WrappedLink","CustomerExternalParagraph","MarketingContent","selectedCountry","setMarketingOptinsSelected","marketingOptin","rules","marketingOptinRules","optIns","optIn","autoOptIn","termsAndConditionsJoin","handleMarketingOptinChange","prevSelected","isChecked","checked","customerTextExternal","forceBlock","overrides","component","_id","isUSA","isChina","isMarketingOffersModalOpen","setIsMarketingOffersModalOpen","marketingOptIn","marketingOptInForHGV","Trans","i18nKey","sendErrorAnalytics","formErrorsMessages","GRAPH_ERRORS","CONFLICT_WITH_RESOURCE","SUCCESSFULL_REGISRATION_DELAYED_CONFIRMATION","EmailSubscription","PERSONALIZED_OFFERS","HILTON_MARKETING","GRAND_VACATIONS","HHONORS_EMAIL","USMarketingOptIn","hhonorsSubscriptions","optOuts","FORM_ERRORS_TO_FILTER","oCodes","defaultCountryCodeData","isMarketabilityCCSEnabled","bannerContent","setBannerContent","marketingOptinsSelected","useLanguages_DefaultCountryCodeQuery","Languages_DefaultCountryCodeDocument","isJapanesePage","defaultCountryCode","phoneCountry","marketingOffersValue","hasPasswordFields","loadingGeocode","useBrand_CountriesQuery","getMarketing","getCCSMarketing","countryFilter","prohibited","Brand_CountriesDocument","useCreateGuestMutation","useMutation","Collator","compare","marketingOptIns","updateCreateGuestMutation","email","password","marketingGrandVacations","marketingOffers","marketingConsent","marketgOptinsAutoEnrolled","optin","subscriptionCodes","codes","list","addressType","enrollSourceCode","phoneNumber","phoneType","preferredLanguage","privacyRequested","subscriptions","_resolve","mutate","CreateGuestDocument","notifications","hHonorsNumber","encodedName","encodedNum","encodedEmail","emailAddress","encodedEnroll","onError","innerKey","innerValue","handleInvalidForm","fieldErrors","tForm","minLength","FormInputPhone","isLoadingCountries","shouldMatch","MarketingContentCCS","isPending","LinkAdChoices","LinkNewWindow","cidParams","campaignId","componentName","hasNextLinkSupport","isAdChoices","isTargetBlank","canUseNextLink","urlProp","ddPageType","ddPrimaryCategory","ddPageDetail1","ddPageDetail2","getCIDParam","pageDetail1","pageDetail2","classNames","linkContent","NextLink","T","l","n","o","queueMicrotask","requestAnimationFrame","cancelAnimationFrame","nextFrame","microTask","getPropertyValue","dispose","f","u","captureStackTrace","O","None","RenderStrategy","Static","A","Unmount","Hidden","L","U","k","x","C","ourProps","theirProps","slot","defaultTag","features","mergeRefs","$","P","F","y","static","unmount","M","display","h","as","refName","m","R","N","j","E","Event","nativeEvent","defaultPrevented","call","K","S","Focusable","position","top","padding","margin","clip","whiteSpace","borderWidth","H","W","setForm","toISOString","readOnly","closest","defineProperty","enumerable","configurable","writable","detect","handoffState","currentId","nextId","handoff","isHandoffComplete","Symbol","D","I","inherit","htmlFor","passive","B","currentTarget","HTMLLabelElement","HTMLInputElement","click","preventScroll","Node","ownerDocument","getBoundingClientRect","ResizeObserver","getSnapshot","subscribe","factory","ADD","REMOVE","inert","First","Previous","Next","Last","WrapAround","NoScroll","AutoFocus","Overflow","Success","Underflow","Strict","Loose","Keyboard","Mouse","navigator","platform","maxTouchPoints","selectionStart","selectionEnd","activeElement","isConnected","setSelectionRange","documentElement","headlessuiFocusVisible","PUSH","doc","POP","SCROLL_PREVENT","before","containers","contains","getComputedStyle","scrollBehavior","scrollY","HTMLElement","hash","tagName","headlessuiPortal","scrollHeight","clientHeight","clientWidth","scrollTo","scrollIntoView","block","defaultView","innerWidth","after","offsetWidth","SCROLL_ALLOW","TEARDOWN","screenX","screenY","globalThis","Element","prototype","getAnimations","Closed","Enter","Leave","setReference","setFloating","getReferenceProps","getFloatingProps","Me","ue","parseFloat","isNaN","attributeFilter","ce","V","offset","to","inner","oe","placement","strategy","middleware","ne","mainAxis","crossAxis","le","ee","te","overflowRef","minItemsVisible","q","referenceOverflowThreshold","onFallbackChange","floating","scrollPaddingBottom","childElementCount","childNodes","offsetTop","re","apply","availableWidth","availableHeight","maxWidth","whileElementsMounted","Z","refs","floatingStyles","G","anchor","se","Y","z","Q","X","fe","J","marginTop","removeChild","Open","Closing","Opening","readyState","capture","Specific","Nothing","resolveItems","resolveActiveIndex","resolveDisabled","resolveId","Space","Escape","Backspace","Delete","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Home","End","PageUp","PageDown","Tab","Left","Right","useSyncExternalStore","Group","Ct","Et","Single","Multi","St","Pointer","Focus","Other","It","OpenCombobox","CloseCombobox","GoToOption","SetTyping","RegisterOption","UnregisterOption","SetActivationTrigger","UpdateVirtualConfiguration","SetInputElement","SetButtonElement","SetOptionsElement","ve","activeOptionIndex","dataRef","order","Tt","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","domRef","Pt","comboboxState","isTyping","activationTrigger","__demoMode","calculateIndex","optionsElement","optionsPropsRef","virtual","idx","Ve","findIndex","trigger","payload","isSelected","inputElement","buttonElement","ye","Te","Ne","At","paddingBlockStart","paddingTop","paddingBlockEnd","paddingBottom","He","scrollPaddingStart","scrollPaddingEnd","estimateSize","getScrollElement","overscan","Ae","getVirtualItems","getTotalSize","scrollToIndex","Pe","overflowAnchor","ae","Rt","_t","Bt","Be","Ht","ht","Oe","Ce","rt","by","immediate","nullable","We","je","Ge","Ue","hold","Ke","Ee","isActive","closeCombobox","getRootNode","composed","composedPath","matches","touches","changedTouches","abs","HTMLIFrameElement","activeIndex","activeOption","setIsTyping","goToOption","pe","registerOption","openCombobox","setActivationTrigger","selectActiveOption","setInputElement","setButtonElement","setOptionsElement","yt","ke","ie","mt","me","st","Ut","Vt","be","autoFocus","he","stopPropagation","ft","HTMLFieldSetElement","HTMLLegendElement","previousElementSibling","we","ge","Se","isFocusVisible","focusProps","Ie","isHovered","hoverProps","ze","right","bottom","pressed","pressProps","onPointerDown","onPointerUp","hover","xe","Qe","hasAttribute","Ft","Gt","zt","Dt","bt","displayValue","_e","$e","selectionDirection","relatedTarget","Fe","gt","isFocused","autofocus","onCompositionStart","onCompositionEnd","onBlur","Mt","Kt","wt","removeFlag","accept","portal","transition","lt","Re","outerHTML","at","ct","ot","hasFlag","setFlag","addFlag","toggleFlag","prepare","inFlight","done","offsetHeight","CSSTransition","allSettled","finished","closed","enter","leave","IntersectionObserver","Ze","allowed","disallowed","nt","NodeFilter","FILTER_REJECT","FILTER_SKIP","FILTER_ACCEPT","walk","acceptNode","createTreeWalker","SHOW_ELEMENT","nextNode","currentNode","onWheel","De","Ot","dt","Lt","jt","kt","Je","measureElement","Le","xt","et","wasMoved","update","onPointerEnter","onPointerMove","onMouseMove","onPointerLeave","Nt","Ho","Input","Label","vt","Options","Option","mapParamToString","Number","getPredictions","uri","urlSearchParams","autocompleteResults","applyExclusions","sendSessionProperties","shortString","searchdrawbridge","usePlacesAutocomplete","serviceOptions","hasSearchTerms","placeholderData","keepPreviousData","predictions","autocompleteResponse","suggestions","setSuggestions","place_id","description","formattedSuggestion","mainText","formatting","structured_formatting","main_text","secondaryText","secondary_text","matchedSubstrings","matched_substrings","terms","geocodeData","LocationHotelsNearMeOption","userCity","stateCountry","stateName","ComboboxOption","aria-setsize","aria-posinset","useRecentSearches","useLocalStorage","initializeWithValue","serializer","REFRESH_TTL_2WEEK","deserializer","DISPLAY_COUNT","LocationIcons","airport","pointOfInterest","property","PlacesAutoCompleteSuggestionOptions","suggestion","AutoCompleteSuggestionOptionsWrapper","iconType","locationIconName","isNearByEnabled","LocationPopularDestinationsOption","popularDestinations","popularDestinationsCount","showRecentDestinations","cachedRecentSearches","popularDestinationsOptions","displayCount","recentSearchOptions","recentSearches","GetTranslateAutocompleteConfigDocument","LocationInput","enableHotelsNearMe","enableRecentSearches","autoCompleteLength","placeIdFieldName","checkAutocompleteStatus","popularDestinationOptions","control","currentSuggestion","setCurrentSuggestion","setRecentSearches","useFormState","isSubmitting","knownDescriptions","sanitizePlacesAutocompleteSuggestions","places","place","showAriaLabel","setShowAriaLabel","useSuggestions","hasSearchTerm","hasSuggestions","autoCompleteSelectionRequired","useGeocodeCoordinateQuery","GeocodeCoordinateDocument","enablePopularDestinations","isPlacesAutocompleteSuggestions","showSuggestions","setShowSuggestions","onKeyUp","hideSuggestions","showHotelsNearMe","showPopularDestinations","showRecentSearches","showAutoCompleteSuggestions","showSuggestionsPopover","showSuggestionOptions","onSelect","selectValue","selectedSuggestion","getSelectedSuggestion","locationFieldState","isComposing","isMobileIME","isHandheld","handleCompositionEnd","handleCompositionStart","openOnFocus","comboboxInputValue","Controller","isValidPrediction","validatePredictions","render","Field","Combobox","ComboboxInput","autoCorrect","autoCapitalize","spellCheck","ComboboxOptions","isGeoCodeFetching","HotelsNearMeOption","PopularDestinationsOptions","RecentSearchesOptions","delay","getAriaText","drawBridgeNotification","ariaSuggestions","Location","debouncedInputValue","useDebounceValue","enablePlacesAutoComplete","useGetTranslateAutocompleteConfigQuery","isFetched","configLanguages","isSupportedLanguage","IsTranslateAutocompleteResolved","LoginFormEventType","DIGITALDATA","LOGIN","CLOSE","HEIGHT","onLogin","onLoginError","readyCount","iframeRef","noOptions","frameHeight","setFrameHeight","handleMessage","handler","sendMessageToIframe","contentWindow","postMessage","iframe","onLoad","AccountIcon","buttonName","MarkdownLink","getUrlConfig","speedbump","mergedOptions","merge","MarkdownToJsx","groupId","pageNumbers","nextDisabled","paginationLabel","aria-controls","PopupContext","getCollisions","targetRect","popoverRect","offsetLeft","offsetBottom","collisions","innerHeight","directionRight","directionLeft","directionUp","directionDown","directionX","directionY","getPopupStyles","popupOnLeft","yPosition","getXStyles","xPosition","getYStyles","overflowX","visibility","popupOnTop","isInitiallyOpen","triggerRef","triggerClickedRef","popoverRef","popupId","useForkedRef","which","popoverRefCurrent","DEFAULT_FORM_VALUES","attendee_count","numNights","specialRates","aaaRate","aarpRate","corporateCode","governmentOrMilitaryRate","searchedRatePlanDescription","seniorRate","useOfferId","usePnd","useRequestedRatesOnly","travelAgentRate","useSMBContextLocalStorage","smbContext","setSMBContext","isSMBContextSet","shouldDisablePoints","shouldEnableSMBContextAwareRates","shouldDisableAARP","isOfferIdSelected","isPndSelected","requestedRatesOnlySelected","isOnBusinessProfile","isSMBRatesEnabled","oneCode","showSMBCheckbox","isSmbMember","isCorpFieldDisabled","isFriendsAndFamily","xmlns","focusable","FeatureTogglesDocument","NHCSEARCH_4807","USE_POINTS","DISABLE_AARP_SPECIAL_RATES","isTMTPRateSelected","isTMTPProgramMember","isHGVMaxRateSelected","generateShopFormUrl","additionalQSParameters","disableAARPSpecialRates","flexDatesDreamRouting","brandCodeParam","enableDreamRouting","generateFlexDatesDreamRedirectURL","searchUriBuilder","getSearchPath","specPlan","RatePlanCodes","specialRatesTokens","srpName","governmentRate","promotionCode","travelAgent","getNumRooms","generateSanitizedDefaultValues","isDateLess","noSpecialRatesOrOnlyUsePointsApplied","shouldAddLocationCoordParams","locationCoordParams","geometry","locationUriBuilder","GetSpeedBumpFeatureConfigsDocument","useShopFormSummaryText","ready","showChildAges","useFormattedStayDates","Locale","localeOptions","formattedStayDates","formatDates","adaFormattedStayDates","stayDuration","textReady","numAdults","numChildren","childrenAges","updatedChildrenAges","childAge","roomsText","adultsText","hasKids","kidsText","kidsAgesText","firstKidsAge","lastKidAge","kidAge","noDatesStayDuration","adaDates","occupancy","kids","sameYear","isSameYear","isTurkish","optionsWithYear","arrivalDateString","departureDateString","localeToLanguage","isLocale","baseName","calendar","numberingSystem","ShopFormSummary","editButtonRef","isExpanded","onEditClick","summaryType","hideRoomSummary","isLargeView","titleText","editText","locationAnywhere","adaEditSummary","isLoadingProp","editStayButton","SkeletonLoader","isSmallAndMediumView","GeocodeFailModal","isGeocodeError","setIsGeoCodeError","useAarpToggle","getIsFeatureToggleEnabled","toggle","wrapperClassNameDefault","speedBumpData","closeSpeedBump","shouldShowLanguageSpeedBump","closeShopForm","setIsExpanded","cta","excludeProvider","shouldDirtyToSubmit","onSubmitClick","canAlwaysSubmit","submitOpensNewTab","summaryOptions","renderAfterUpdateButton","formContentRef","getElementState","hasLocationInput","hasRoomsButton","hasSpecialRatesButton","hasNumRoomsButton","hasNumAttendeesButton","setElementState","initiallyExpanded","expanded","useShopFormSpeedBump","setSpeedBumpData","speedBumpType","setSpeedBumpType","useTranslationsConfig","translateRules","isSpeedBumpVisible","handleSpeedBumpClose","handleSpeedBumpContinue","shouldShowSpeedBump","isGMELessThanTenRoomsAndNoAttendees","getSpeedBumpOptions","confirmButtonLabel","cancelButtonLabel","defaultValuesWithDefaults","internalSummaryState","setInternalSummaryState","summaryState","hasGeoCodeInput","hasFlexDates","shouldAttemptToGeocode","formContent","FormConnector","isDirty","canSubmit","summaryWrapperClassName","suppressHeader","speedbumpOptions","formContentElement","placeholder","useShopFormContext","ShopFormButton","product","InfoCircle","Stepper","inputId","onMinusClick","onPlusClick","valueLabel","minusLabel","minusTestId","plusLabel","plusTestId","iconColor","iconColorDisabled","minusDisabled","plusDisabled","ellipse","rx","ry","adultAge","isAdultsOnly","agesRequired","onRemoveRoom","maxOccupants","useAgeBasedPricing","adultsId","childrenId","adultAgeProp","useFieldArray","roomsValue","roomNum","roomTestId","getChildAgesFieldsAndValidate","num","shouldFocus","Tooltip","ageId","valueAsNumber","__","newRoom","Rooms","maxRooms","reachedMaxOccupants","handleRemoveRoom","RoomsRoom","canOnlyBookSingleRoom","hideGroupLink","tenPlusLinkProps","numGuests","dismissAndResetToOriginalFormRooms","attendeeCount","tenPlusUrl","SearchButton","omit","InputGroup","isIndependent","ratesValue","isSMBSelected","selectedRates","resetRatesToOriginalFormRates","SpecialRates","TRANSLATE_RULES_CONFIG_NAME","ONELINK_CONFIG_NAME","useGetSpeedBumpFeatureConfigsQuery","absoluteUrl","bypassOneLink","translateRuleEngine","targetLanguage","setIsVisible","eventTarget","setEventTarget","urlConfig","shouldShowSpeedbump","enUri","titleOptions","onCloseProp","onContinueProp","handleDismiss","showSpinner","setShowSpinner","popupClassName","tipId","currentCause","setCurrentCause","setVisible","hide","show","onMouseOver","onMouseOut","StayActivitySummaryFragmentDoc","Guest_MissingStaysDocument","useGuest_MissingStaysQuery","HotelDocument","useHotelQuery","Guest_GuestActivitySummaryOptions_HotelDocument","useGuest_GuestActivitySummaryOptions_HotelQuery","Brand_CmsTextHeadlinerDocument","useBrand_CmsTextHeadlinerQuery","BrandDocument","useBrandQuery","Brand_HiltonForBusinessDocument","useBrand_HotelBenefitsQuery","Brand_HotelBenefitsDocument","BrandRewardProgramDocument","useBrandRewardProgramQuery","Brand_ThreeSixNineGridDocument","useBrand_ThreeSixNineGridQuery","Brand_UsePointsDocument","useBrand_UsePointsQuery","Brand_AlertDocument","Brand_CmsAlertDocument","useBrand_CmsAlertQuery","Brand_CmsImageHeadlinerDocument","useBrand_CmsImageHeadlinerQuery","CmsBrandMemberDataDocument","useCmsBrandMemberDataQuery","CmsFaqDocument","useCmsFaqQuery","CmsPolicyDocument","useCmsPolicyQuery","Countries_SubscriptionsDocument","useCountries_SubscriptionsQuery","CountriesDocument","useCountriesQuery","CreateGuest2FaDocument","useCreateGuest2FaMutation","CreateGuestCombineAccountsDocument","useCreateGuestCombineAccountsMutation","CreateGuestGdprDocument","useCreateGuestGdprMutation","CreateGuestMissingStayDocument","useCreateGuestMissingStayMutation","CreateGuestPointsRedemptionDocument","useCreateGuestPointsRedemptionMutation","CreateGuestPriceMatchGuaranteeDocument","useCreateGuestPriceMatchGuaranteeMutation","CreateGuestPromoRegistrationDocument","useCreateGuestPromoRegistrationMutation","CreateGuestSharePersonalInfoOptOutDocument","useCreateGuestSharePersonalInfoOptOutMutation","CreditCardOffersDocument","useCreditCardOffersQuery","CreditCardTypesDocument","useCreditCardTypesQuery","CurrenciesDocument","useCurrenciesQuery","useDeleteGuest2FaMutation","DeleteGuestAccountDocument","useDeleteGuestAccountMutation","DeleteGuestAddressDocument","useDeleteGuestAddressMutation","DeleteGuestEmailDocument","useDeleteGuestEmailMutation","DeleteGuestPaymentMethodDocument","useDeleteGuestPaymentMethodMutation","DeleteGuestPhoneDocument","useDeleteGuestPhoneMutation","Guest_SubscriptionsDocument","useGuest_SubscriptionsQuery","useFeatureConfigsQuery","Geocode_AddressDocument","GuestHiltonHonorsNumberDocument","useGuestHiltonHonorsNumberQuery","GuestHonorsCardDocument","useGuestHonorsCardQuery","GuestHotelBenefitsPageDocument","useGuestHotelBenefitsPageQuery","Guest_Hotel_MyAccountDocument","useGuest_Hotel_MyAccountQuery","GuestHotelStaysDocument","StaysFieldsFragmentFragmentDoc","useGuestHotelStaysQuery","Guest_OffersDocument","useGuest_OffersQuery","Guest_PartnersDocument","useGuest_PartnersQuery","Guest_PersonalInfoPageDocument","useGuest_PersonalInfoPageQuery","Guest_PreferencesPageDocument","useGuest_PreferencesPageQuery","Guest_RatesDocument","useGuest_RatesQuery","Guest_GetHHonorsNumberDocument","useGuest_OfferQuery","Guest_OfferDocument","Brand_CmsHgvMaxDocument","useBrand_CmsHgvMaxQuery","GuestHgvMaxDocument","useGuestHgvMaxQuery","HonorsTierBenefitsDocument","useHonorsTierBenefitsQuery","HotelSummaryOptionsDocument","useHotelSummaryOptionsQuery","LanguagesDocument","useLanguagesQuery","NavigationDocument","BrandPointsExplorerPageDocument","useBrandPointsExplorerPageQuery","PointsExplorerFaqDocument","usePointsExplorerFaqQuery","ProgramAccountDashboardSummaryDocument","useResendTotpMutation","Reservation_Hotel_DetailsDocument","useReservation_Hotel_DetailsQuery","FaqDocument","useTravelPartnersQuery","TravelPartnersDocument","UpdateGuestAccountPreferencesDocument","useUpdateGuestAccountPreferencesMutation","UpdateGuestAddressesDocument","useUpdateGuestAddressesMutation","UpdateGuestBenefitPreferencesDocument","useUpdateGuestBenefitPreferencesMutation","UpdateGuestEmailsDocument","useUpdateGuestEmailsMutation","UpdateGuestPasswordDocument","useUpdateGuestPasswordMutation","UpdateGuestPaymentMethodsDocument","useUpdateGuestPaymentMethodsMutation","UpdateGuestPhoneNumbersDocument","useUpdateGuestPhoneNumbersMutation","UpdateGuestPreferredLanguageDocument","useUpdateGuestPreferredLanguageMutation","UpdateGuestTravelAccountsDocument","useUpdateGuestTravelAccountsMutation","UpdateGuestUsernameDocument","useUpdateGuestUsernameMutation","UpdateGuestMarketingSubscriptionOptOutDocument","useUpdateGuestMarketingSubscriptionOptOutMutation","UpdateSubscriptionsDocument","useUpdateSubscriptionsMutation","getHasUserModifiedFontDefaults","maxSize","fontSize","wordSpacing","letterSpacing","hasModifiedFontSize","hasModifiedWordSpacing","useHasUserModifiedFontDefaults","hasModifiedLetterSpacing","hasUserModifiedFonts","setHasUserModifiedFonts","matchMedia","onPreviousFocus","onNextFocus","el","currentIndex","isArrowUp","isArrowDown","isArrowLeft","isArrowRight","getDay","script","toLocaleLowerCase","startDay","differenceInCalendarDays","days","eachDayOfInterval","normalizeInterval","reversed","step","constructFrom","reverse","endOfMonth","getDaysInMonth","monthIndex","lastDayOfMonth","setFullYear","isArabic","FORMAT_SHORT_OVERRIDES","startDate","DEFAULT_FORMAT_OPTIONS","formatDateAndText","DEFAULT_LOCALE_OPTIONS","LOCALE_OPTIONS","formatter","DateTimeFormat","formatToParts","isNumeric","daysOfWeek","dayIndex","weekStart","monthConfig","arg","UNKNOWN_ERROR_MSG","RTL_LANGUAGES","getLanguageDirection","HOST_REGEX","tranlateUrlsRuleEngine","ENGLISH","appBasePaths","appUrl","redirect","parsedURL","originalPath","isOHWUrl","SLASH","DOUBLE_SLASH","ruleUrl","ruleFacts","finalPath","appBasePath","matcher","setRefs","localRef","rafId","rectChanged","prop","observedNodes","changedStates","node","newRect","callbacks","cb","setElement","initialRefIsSet","useRectBase","nodeRef","initialRectIsSet","setRect","onChangeRef","observeRect","wasEmpty","hasRectChanged","unobserve","getDateMillisecondsPart","MILLISECONDS_IN_MINUTE","getTimezoneOffsetInMilliseconds","dirtyDate","baseTimezoneOffset","getTimezoneOffset","setSeconds","millisecondsPartOfTimezoneOffset","hasNegativeUTCOffset","requiredArgs","toInteger","dirtyNumber","NaN","compareAsc","dirtyDateLeft","dirtyDateRight","arguments","dateLeft","dateRight","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","dirtyOptions","defaultWidth","formats","formatLong","dateFormats","long","medium","short","full","dateTime","formatRelativeLocale","lastWeek","yesterday","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","dirtyString","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","predicate","findKey","valueCallback","formatDistance","addSuffix","comparison","formatRelative","_baseDate","localize","ordinalNumber","_dirtyOptions","rem100","era","narrow","abbreviated","wide","quarter","quarterValues","monthValues","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchPatternFn","parseResult","parsePattern","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","any","matchDayPatterns","parseDayPatterns","parseDayPeriodPatterns","firstWeekContainsDate","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","longFormatters","dateTimeFormat","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCWeekYear","getUTCFullYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","setUTCFullYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","setUTCDay","dirtyDay","currentDay","remainder","startOfUTCISOWeek","numericPatterns","dayOfYear","hour23h","hour24h","hour11h","hour12h","minute","second","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","basicOptionalMinutes","basic","basicOptionalSeconds","extended","extendedOptionalSeconds","parseNumericPattern","parseTimezonePattern","sign","hours","MILLISECONDS_IN_HOUR","minutes","MILLISECONDS_IN_SECOND","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","priority","parsers","_options","incompatibleTokens","isTwoDigitYear","unit","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","setUTCMonth","setUTCWeek","dirtyWeek","getUTCWeek","round","MILLISECONDS_IN_WEEK","startOfUTCWeekYear","firstWeek","setUTCISOWeek","dirtyISOWeek","isoWeek","getUTCISOWeek","startOfUTCISOWeekYear","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","fourthOfJanuary","isLeapYear","getUTCMonth","wholeWeekDays","setUTCISODay","isPM","getUTCHours","setUTCMinutes","setUTCSeconds","pow","setUTCMilliseconds","timestampIsSet","_token","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","dateString","formatString","subFnOptions","setters","TIMEZONE_UNIT_PRIORITY","dateToSystemTimezone","tokens","substring","firstCharacter","longFormatter","usedTokens","useAdditionalWeekYearTokens","isProtectedWeekYearToken","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","parser","incompatibleToken","_i","usedToken","fullToken","cleanEscapedString","uniquePrioritySetters","setter","setterArray","utcDate","subMilliseconds","dirtyObject","TypeError","convertedDate","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","dirtyMonth","dateWithDesiredMonth","daysInMonth","setMinutes","seconds","milliseconds","setMilliseconds","dirtyAmount","addMilliseconds","argument","argStr","stack","getDomainLocale","domainLocales","normalizeLocalePath","require","detectedLocale","detectDomainLocale","proto","http","finalLocale","normalizePathTrailingSlash","prefetched","prefetch","isLocalURL","bypassPrefetchedCheck","prefetchedKey","formatStringOrUrl","urlObjOrString","formatUrl","LinkComponent","hrefProp","asProp","childrenProp","prefetchProp","onTouchStartProp","restProps","passHref","scroll","onTouchStart","legacyBehavior","RouterContext","prefetchEnabled","resolvedHref","resolveHref","resolvedAs","previousHref","previousAs","only","childRef","useIntersection","rootMargin","setIntersectionRef","resetVisible","setIntersectionWithResetRef","setRef","useMergedRef","childProps","nodeName","routerScroll","onMouseEnterProp","isAbsoluteUrl","curLocale","localeDomain","isLocaleDomain","addBasePath","addLocale","cloneElement","hasIntersectionObserver","observers","idList","rootRef","elementRef","createObserver","root","existing","isIntersecting","intersectionRatio","idleCallback","requestIdleCallback","cancelIdleCallback","refA","refB","cleanupA","cleanupB","applyRef","cleanup","normalize","dayOfMonth","endOfDesiredMonth","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","constructFromSymbol","for","UTC","getHours","getMinutes","getSeconds","getMilliseconds","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","compareLocalAsc","difference","isLastDayNotFull","dateTimeFormats","enUS","tokenValue","dayValues","dayPeriodValues","formattingDayPeriodValues","startOfISOWeek","getISOWeekYear","getWeekYear","targetLength","output","padStart","lightFormatters","signedYear","addLeadingZeros","numberOfDigits","trunc","fractionalSeconds","formatters","signedWeekYear","weekYear","getWeek","startOfWeekYear","getISOWeek","startOfISOWeekYear","date_","startOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriodEnum","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","delimiter","absOffset","weekYearTokenRE","throwTokens","formatStr","originalDate","isToken","matched","RangeError","preprocessor","formatterOptions","dayOfYearTokenRE","warnOrThrowProtectedError","_message","subject"],"sourceRoot":"","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,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,176,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,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,302,303,304,305,306,337,338,339,384,385,386,456,457,458,459,460,461,462,463,464,473,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,639,688,689,690,691,692,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,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,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167]}