{"version":3,"file":"static/js/main.19016652.js","mappings":"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AC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,KAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,MAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAAQ,OAC3Bk4D,EAAUjB,SAASj3D,EAA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Zb,MAAO,YAET,CAEE7iE,QAAS,iBACT0jE,YAAY,EACZb,MAAO,aAIX,sBAAuB,CACrB,CAEE7iE,QAAS,iBACT0jE,YAAY,EACZb,MAAO,YAET,CAEE7iE,QAAS,iBACT0jE,YAAY,EACZb,MAAO,aAGX,cAAe,CACb7iE,QAAS,0BACT0jE,YAAY,GAiBd5/E,OAAQ,CACNkc,QAAS,qBACT+jE,QAAQ,EACRC,OAAQwO,IAGRvS,EAAS,SAAU51F,GACrB,OAAQA,EAAM,IAAI4C,QAAQ,4BAA6B,OACzD,EACI0lG,EAAmB,SAAUt9F,GAC/B,OAAO,IAAIid,OAAO,aAAejd,EAAI0iB,IAAIkoE,GAAQrzF,KAAK,KAAO,aAC/D,EACIgmG,EAAW,CACb,iBAAkB,CAChB,KACA,QACA,QACA,OACA,UACA,MACA,WACA,kBACA,MACA,OACA,YACA,aACA,OACA,WACA,OACA,OACA,QACA,WACA,OACA,QACA,OACA,MACA,IACA,IACA,QACA,QACA,QACA,OACA,kBACA,MACA,SACA,MACA,QACA,OACA,QACA,SACA,OACA,UACA,UACA,OACA,UACA,MACA,gBACA,WACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QACA,UACA,YACA,OACA,QACA,OACA,SACA,gBACA,SACA,QACA,YACA,WACA,oBACA,kBACA,OACA,YACA,MACA,QACA,MACA,QACA,MACA,iBACA,WAEF,uBAAwB,CAEtB,UACA,YACA,YACA,KACA,SACA,MACA,IACA,WACA,KACA,SACA,QACA,SACA,YACA,aACA,WACA,SACA,UACA,gBACA,oBACA,YACA,UACA,mBACA,KACA,WACA,IACA,KACA,MAEF,oBAAqB,CACnB,aACA,WACA,SACA,mBACA,SACA,aACA,aACA,YACA,mBACA,kBACA,WACA,aACA,OACA,WACA,UACA,aACA,YACA,WACA,OACA,OACA,MACA,WACA,UACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,oBACA,aACA,cACA,OACA,SACA,gBACA,oBACA,gCACA,iCACA,YACA,UACA,WACA,SACA,aACA,aACA,UACA,SACA,OACA,eACA,eACA,QACA,OACA,SACA,YACA,UACA,QACA,WACA,cACA,WACA,QACA,YACA,aACA,aACA,qBACA,SACA,SACA,WACA,eACA,UACA,aACA,OACA,UACA,QACA,SACA,SACA,OACA,aACA,WACA,YACA,MACA,aACA,UACA,aACA,SACA,cACA,YACA,OACA,YACA,SACA,YACA,iBACA,UACA,eACA,UACA,gBACA,eACA,YACA,mBACA,UACA,SACA,WACA,OACA,aACA,oBACA,YACA,UACA,UACA,YACA,WACA,WACA,aACA,OACA,cACA,iBACA,QACA,UACA,YACA,gBACA,cACA,oBACA,MACA,UACA,OACA,SACA,OACA,sBACA,aACA,aACA,mBACA,UACA,cACA,SACA,aACA,WACA,kBACA,OACA,OACA,QACA,QACA,QACA,YACA,SACA,eACA,eACA,WACA,WACA,MACA,aACA,YACA,WACA,QACA,oBACA,eACA,OACA,cACA,QACA,UACA,UACA,OACA,cACA,SACA,OACA,gBACA,YACA,eAEF,eAAgB,CACd,UACA,kBACA,MACA,cACA,iBACA,aACA,UACA,eACA,UACA,WACA,cACA,MACA,IACA,IACA,cACA,IACA,MACA,IACA,KACA,SACA,cACA,wBACA,OACA,IACA,OACA,IACA,WACA,SACA,cACA,KACA,QACA,aACA,SACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,UACA,WACA,KACA,iBACA,KACA,MACA,UACA,aACA,KACA,KACA,MACA,QACA,WACA,SACA,KACA,UACA,UACA,MACA,SACA,KACA,SACA,QACA,OACA,WACA,aACA,UACA,WACA,OACA,YACA,cACA,QACA,MACA,iBACA,YACA,yBACA,aACA,QACA,aACA,QACA,UACA,MACA,SACA,wBACA,MACA,OACA,KACA,OACA,WACA,QACA,YACA,cAGJ9oG,OAAOgW,KAAK8yF,GAAUnqG,SAAQ,SAAU+uB,GACtC86E,EAAO96E,GAAGwI,QAAU2yE,EAAiBC,EAASp7E,GAChD,IAyNA86E,EAAOI,YAAY1yE,QAAU2yE,EAxNX,CAEhB,MACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,KACA,UACA,YACA,MACA,OACA,YACA,QACA,OACA,QACA,OACA,QACA,UACA,KACA,QACA,OACA,SACA,aACA,aACA,WACA,QACA,UACA,OACA,KACA,OACA,SACA,QACA,OACA,SACA,MACA,OACA,SACA,MACA,WACA,YACA,iBACA,kBACA,SACA,YACA,QACA,YACA,YACA,WACA,cACA,UACA,YACA,gBACA,mBACA,SACA,MACA,UACA,cACA,aACA,SACA,cACA,OACA,eACA,YACA,UACA,eACA,eACA,aACA,kBACA,QACA,aACA,SACA,eACA,YACA,eACA,WACA,SACA,WACA,aACA,OACA,YACA,gBACA,eACA,OACA,UACA,UACA,YACA,gBACA,iBACA,kBACA,gBACA,UACA,OACA,YACA,cACA,UACA,cACA,aACA,OACA,aACA,iBACA,aACA,OACA,eACA,cACA,WACA,gBACA,YACA,UACA,QACA,aACA,QACA,OACA,aACA,UACA,aACA,aACA,QACA,OACA,YACA,iBACA,YACA,UACA,eACA,cACA,iBACA,YACA,oBACA,kBACA,QACA,iBACA,eACA,gBACA,kBACA,cACA,gBACA,gBACA,kBACA,cACA,OACA,UACA,YACA,YACA,UACA,eACA,iBACA,aACA,OACA,SACA,cACA,qBACA,SACA,mBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,gBACA,cACA,iBACA,cACA,eACA,aACA,cACA,WACA,iBACA,oBACA,cACA,qBACA,WACA,eACA,mBACA,oBACA,iBACA,UACA,iBACA,iBACA,cACA,SACA,gBACA,eACA,eACA,aACA,aACA,UACA,oBACA,eACA,YACA,cACA,wBACA,oBAGF9Q,EAAMY,UAAU6P,OAASA,CAC1B,CAr5BA,CAq5BEzQ,EACL,CA15BAh4F,EAA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,YAET,CAGE7iE,QACE,qGACF0jE,YAAY,EACZb,MAAO,YAET,CAEE7iE,QACE,mEACF0jE,YAAY,EACZb,MAAO,YAET,CAEE7iE,QACE,uFACF0jE,YAAY,EACZb,MAAO,aAGX/yF,MAAO,CACLkwB,QAAS,0CACT0jE,YAAY,EACZK,QAAQ,EACRlB,MAAO,YAET7qE,KAAM,CACJgI,QAAS,gEACT6iE,MAAO,UAET/+E,OAAQ,CACNkc,QAAS,cACT+jE,QAAQ,GAEVW,WAAY,CACV1kE,QACE,gGACF6iE,MAAO,aAET5oF,QAAS,CAEP,CACE+lB,QACE,yOACF0jE,YAAY,EACZK,QAAQ,GAEV,CACE/jE,QACE,2KACF0jE,YAAY,EACZK,QAAQ,IAGZ2C,OAAQ,cACRrN,SAAU,CACRr5D,QAAS,gCACT0jE,YAAY,GAEdC,YAAa,UAEjB,CApHA95F,EAAOD,QAAU85G,EACjBA,EAAQv2E,YAAc,UACtBu2E,EAAQ9f,QAAU,0BCClB,SAAS+f,EAAM9hB,GACbA,EAAMY,UAAUkhB,MAAQ,CACtBh5E,QAAS,OACT1wB,QACE,s0BACFwuF,UAAW,CACTzoE,QAAS,cACT6iE,MAAO,YAETwB,SAAU,aACV1gF,OAAQ,gBACR01E,SAAU,mBACVsK,YAAa,wBAEjB,CAjBA95F,EAAOD,QAAU+5G,EACjBA,EAAMx2E,YAAc,QACpBw2E,EAAM/f,QAAU,0BCChB,SAASggB,EAAQ/hB,IACd,SAAWA,GACV,IAAIgiB,EAAY,CAEd,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,UACA,QACA,QACA,cACA,OACA,SACA,QACA,SACA,iBACA,aACA,QACA,cACA,OACA,aACA,QACA,gBACA,cACA,gBACA,cACA,WACA,aACA,QACA,SACA,eACA,OACA,OACA,OACA,OACA,UACA,OACA,eACA,SACA,YACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,OACA,aACA,UACA,cACA,aACA,SACA,aACA,SACA,WACA,eACA,SACA,cACA,SACA,qBACA,gBACA,UACA,SACA,SACA,OACA,kBACA,WACA,UACA,eACA,eACA,UACA,OACA,QACA,QACA,eACA,aACA,SACA,UACA,mBACA,OACA,eACA,QACA,SACA,OACA,YACA,mBACA,OACA,kBACA,eACA,iBACA,QACA,SACA,QACA,SACA,SACA,OACA,cACA,YACA,QACA,OACA,UACA,gBACA,QACA,WACA,OACA,iBACA,eACA,kBACA,gBACA,cACA,aACA,aACA,oBACA,UACA,MACA,OACA,UACA,SACA,SACA,YACA,MACA,OACA,QACA,UACA,MACA,gBACA,gBACA,aACA,WACA,YACA,gBACA,WACA,eACA,QACA,QACA,OACA,WACA,MACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,gBACA,QACA,OACA,eACA,UACA,OACA,SACA,YACA,MACA,OACA,iBACA,MACA,OACA,QACA,oBACA,SACA,UACA,aACA,gBACA,cACA,cACA,cACA,gBACA,SACA,SACA,UACA,iBACA,aACA,mBACA,eACA,YACA,QACA,OACA,SACA,SACA,QACA,aACA,cACA,cACA,eACA,YACA,UACA,eACA,YACA,YACA,OACA,UACA,OACA,UACA,UACA,aACA,YACA,SACA,UACA,cACA,YACA,WACA,WACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,WACA,YACA,gBACA,aACA,YACA,QACA,cACA,YACA,cACA,WACA,WACA,QACA,OACA,aACA,OACA,WACA,SACA,aACA,eACA,YAmBEC,EAAkB,OAHtBD,EAAYA,EAAU9rF,KAAI,SAAUshE,GAClC,OAAOA,EAASpsF,QAAQ,IAAK,MAC/B,KACwCL,KAAK,KAAO,OACpDi1F,EAAMY,UAAUmhB,QAAU/hB,EAAMY,UAAU56D,OAAO,aAAc,CAAC,GAChEg6D,EAAMY,UAAUpb,aAAa,UAAW,SAAU,CAChDxvE,SAAU,CACRmoB,QACE,oHACF+jE,QAAQ,EACRC,OAAQ,CACN/pF,QAASqY,OAAO,YAAcwxF,EAAkB,iBAItDjiB,EAAMY,UAAUmhB,QAAQ9/F,OAAOkgF,OAAS,CACtCz6B,IAAK,CAEHvpC,QACE,yEACF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B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,IAAK,GAAGo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,GAAI,KAAKo3B,OAAOp3B,EAAI,UAHzuH,CAKF,CASiC+kL,CAAqB1hD,IAG7CqhD,GAAsB3sL,EAC/B,CAQ+BitL,CAHJ3hD,EAAWhxH,QAAO,SAAUmhB,GACnD,MAAqB,UAAdA,CACT,KAE8Bp9B,QAAO,SAAU2/B,EAAavC,GAC1D,OAAOixJ,GAAcA,GAAc,CAAC,EAAG1uJ,GAAc8uJ,EAAWrxJ,GAClE,GAAGoxJ,EACL,CACO,SAASK,GAAsB5hD,GACpC,OAAOA,EAAW9rI,KAAK,IACzB,CAee,SAASk4C,GAAc9qC,GACpC,IAAIjF,EAAOiF,EAAKjF,KACZmlL,EAAalgL,EAAKkgL,WAClBK,EAAavgL,EAAKyvB,MAClBA,OAAuB,IAAf8wJ,EAAwB,CAAC,EAAIA,EACrCC,EAAkBxgL,EAAKwgL,gBACvBptL,EAAM4M,EAAK5M,IACXyc,EAAa9U,EAAK8U,WAClBjG,EAAO7O,EAAK6O,KACZ62K,EAAU1lL,EAAKqsB,QACfp3B,EAAQ+K,EAAK/K,MAEjB,GAAa,SAAT4Z,EACF,OAAO5Z,EACF,GAAIywL,EAAS,CAClB,IACI97K,EADA+7K,EA7BD,SAAwBR,EAAYM,GACzC,IAAIG,EAAgB,EACpB,OAAO,SAAU7xJ,GAEf,OADA6xJ,GAAiB,EACV7xJ,EAAS/Q,KAAI,SAAUuyB,EAAOz+C,GACnC,OAAOi5C,GAAc,CACnB/vC,KAAMu1C,EACN4vI,WAAYA,EACZM,gBAAiBA,EACjBptL,IAAK,gBAAgBq/B,OAAOkuJ,EAAe,KAAKluJ,OAAO5gC,IAE3D,GACF,CACF,CAgB0Bm1J,CAAek5B,EAAYM,GAGjD,GAAKA,EAIE,CACL,IAAII,EAAyB9wL,OAAOgW,KAAKo6K,GAAYzuL,QAAO,SAAU23F,EAAS/6D,GAI7E,OAHAA,EAAS5nB,MAAM,KAAKhY,SAAQ,SAAUogC,GAC/Bu6D,EAAQ97E,SAASuhB,IAAYu6D,EAAQp3F,KAAK68B,EACjD,IACOu6D,CACT,GAAG,IAECy3F,EAAoBhxK,EAAWgf,WAAahf,EAAWgf,UAAUvhB,SAAS,SAAW,CAAC,SAAW,GACjGuhB,EAAYhf,EAAWgf,WAAagyJ,EAAkBpuJ,OAAO5iB,EAAWgf,UAAUnhB,QAAO,SAAUmhB,GACrG,OAAQ+xJ,EAAuBtzK,SAASuhB,EAC1C,KACAlqB,EAAQm7K,GAAcA,GAAc,CAAC,EAAGjwK,GAAa,CAAC,EAAG,CACvDgf,UAAWyxJ,GAAsBzxJ,SAAcl/B,EAC/C8/B,MAAOuwJ,GAAkBnwK,EAAWgf,UAAW/+B,OAAOqK,OAAO,CAAC,EAAG0V,EAAW4f,MAAOA,GAAQywJ,IAE/F,MAnBEv7K,EAAQm7K,GAAcA,GAAc,CAAC,EAAGjwK,GAAa,CAAC,EAAG,CACvDgf,UAAWyxJ,GAAsBzwK,EAAWgf,aAoBhD,IAAIC,EAAW4xJ,EAAgB3lL,EAAK+zB,UACpC,OAAoBsjB,EAAAA,cAAoBquI,EAASK,GAAS,CACxD1tL,IAAKA,GACJuR,GAAQmqB,EACb,CACF,CCtHA,kBAA0BiyJ,EAAc5kJ,GAEtC,OAAoC,IADxB4kJ,EAAah4F,gBACZz1D,QAAQ6I,EACtB,ECAD,IAAI6kJ,GAAY,CAAC,WAAY,WAAY,QAAS,cAAe,eAAgB,kBAAmB,kBAAmB,wBAAyB,qBAAsB,2BAA4B,kBAAmB,YAAa,gBAAiB,YAAa,WAAY,SAAU,UAAW,OAAQ,gBAEzS,SAAStB,GAAQtlL,EAAQulL,GAAkB,IAAI75K,EAAOhW,OAAOgW,KAAK1L,GAAS,GAAItK,OAAOsvL,sBAAuB,CAAE,IAAIQ,EAAU9vL,OAAOsvL,sBAAsBhlL,GAASulL,IAAmBC,EAAUA,EAAQlyK,QAAO,SAAUmyK,GAAO,OAAO/vL,OAAOs9B,yBAAyBhzB,EAAQylL,GAAK5vL,UAAY,KAAK6V,EAAK9T,KAAKw2C,MAAM1iC,EAAM85K,EAAU,CAAE,OAAO95K,CAAM,CAEpV,SAASg6K,GAAcryJ,GAAU,IAAK,IAAI57B,EAAI,EAAGA,EAAIq8B,UAAU58B,OAAQO,IAAK,CAAE,IAAIiS,EAAS,MAAQoqB,UAAUr8B,GAAKq8B,UAAUr8B,GAAK,CAAC,EAAGA,EAAI,EAAI6tL,GAAQ5vL,OAAOgU,IAAS,GAAIrV,SAAQ,SAAU2E,GAAOqsL,GAAgBhyJ,EAAQr6B,EAAK0Q,EAAO1Q,GAAO,IAAKtD,OAAOqyI,0BAA4BryI,OAAO84G,iBAAiBn7E,EAAQ39B,OAAOqyI,0BAA0Br+H,IAAW47K,GAAQ5vL,OAAOgU,IAASrV,SAAQ,SAAU2E,GAAOtD,OAAOC,eAAe09B,EAAQr6B,EAAKtD,OAAOs9B,yBAAyBtpB,EAAQ1Q,GAAO,GAAI,CAAE,OAAOq6B,CAAQ,CAKzf,IAAIwzJ,GAAe,MAoBnB,SAASC,GAAehhL,GACtB,IAAIihL,EAAajhL,EAAMihL,WACnBC,EAAYlhL,EAAMkhL,UAClBC,EAAuBnhL,EAAMohL,eAC7BA,OAA0C,IAAzBD,EAAkC,CACrD,MAAS,OACTE,aAAc,QACZF,EACAG,EAAoBthL,EAAMuhL,YAC1BA,OAAoC,IAAtBD,EAA+B,CAAC,EAAIA,EAClDE,EAAqBxhL,EAAMwhL,mBAC/B,OAAoBtvI,EAAAA,cAAoB,OAAQ,CAC9C3iB,MAAO3/B,OAAOqK,OAAO,CAAC,EAAGinL,EAAWE,IA1BxC,SAA2BthL,GACzB,IAAItH,EAAQsH,EAAKtH,MACbgpL,EAAqB1hL,EAAK0hL,mBAC1BjyJ,EAAQzvB,EAAKyvB,MACjB,OAAO/2B,EAAMqlB,KAAI,SAAU3tB,EAAGyB,GAC5B,IAAI8X,EAAS9X,EAAI6vL,EACjB,OAAoBtvI,EAAAA,cAAoB,OAAQ,CAC9Ch/C,IAAK,QAAQq/B,OAAO5gC,GACpBg9B,UAAW,uCACXY,MAAwB,oBAAVA,EAAuBA,EAAM9lB,GAAU8lB,GACpD,GAAGgD,OAAO9oB,EAAQ,MACvB,GACF,CAeKg4K,CAAkB,CACnBjpL,MAAOyoL,EAAWluL,QAAQ,MAAO,IAAIwT,MAAM,MAC3CgpB,MAAOgyJ,EACPC,mBAAoBA,IAExB,CAMA,SAASE,GAAoB/7C,EAAYg8C,GACvC,MAAO,CACLj4K,KAAM,UACNwd,QAAS,OACTvX,WAAY,CACVzc,IAAK,gBAAgBq/B,OAAOozG,GAC5Bh3G,UAAW,CAAC,UAAW,aAAc,wCACrCY,MAAOoyJ,GAET/yJ,SAAU,CAAC,CACTllB,KAAM,OACN5Z,MAAO61I,IAGb,CAEA,SAASi8C,GAAyBC,EAAiBl8C,EAAYm8C,GAE7D,IAtB0BC,EAsBtBC,EAAyB,CAC3B9wG,QAAS,eACT+wG,UAxBwBF,EAwBKD,EAvBxB,GAAGvvJ,OAAOwvJ,EAAIjxL,WAAWM,OAAQ,UAwBtCiwL,aAAc,MACda,UAAW,QACXC,WAAY,QAGVC,EAAmD,oBAApBP,EAAiCA,EAAgBl8C,GAAck8C,EAIlG,OAFqBjC,GAAcA,GAAc,CAAC,EAAGoC,GAAyBI,EAGhF,CAEA,SAASC,GAAkBnzK,GACzB,IAAI0f,EAAW1f,EAAM0f,SACjB+2G,EAAaz2H,EAAMy2H,WACnBk8C,EAAkB3yK,EAAM2yK,gBACxBC,EAAoB5yK,EAAM4yK,kBAC1BQ,EAAwBpzK,EAAMozK,sBAC9BC,EAAkBrzK,EAAMszK,UACxBA,OAAgC,IAApBD,EAA6B,CAAC,EAAIA,EAC9CE,EAAkBvzK,EAAMyf,UACxBA,OAAgC,IAApB8zJ,EAA6B,GAAKA,EAC9CC,EAAkBxzK,EAAMwzK,gBACxBC,EAAgBzzK,EAAMyzK,cACtBhzK,EAAkC,oBAAd6yK,EAA2BA,EAAU78C,GAAc68C,EAG3E,GAFA7yK,EAAsB,UAAIgf,EAEtBg3G,GAAc28C,EAAuB,CACvC,IAAIX,EAAwBC,GAAyBC,EAAiBl8C,EAAYm8C,GAClFlzJ,EAASoD,QAAQ0vJ,GAAoB/7C,EAAYg8C,GACnD,CAQA,OANIgB,EAAgBD,IAClB/yK,EAAW4f,MAAQqwJ,GAAcA,GAAc,CAAC,EAAGjwK,EAAW4f,OAAQ,CAAC,EAAG,CACxE2hD,QAAS,UAIN,CACLxnE,KAAM,UACNwd,QAAS,OACTvX,WAAYA,EACZif,SAAUA,EAEd,CAEA,SAASg0J,GAAgBl9B,GAIvB,IAHA,IAAI/2H,EAAYX,UAAU58B,OAAS,QAAsB3B,IAAjBu+B,UAAU,GAAmBA,UAAU,GAAK,GAChF60J,EAAU70J,UAAU58B,OAAS,QAAsB3B,IAAjBu+B,UAAU,GAAmBA,UAAU,GAAK,GAEzEr8B,EAAI,EAAGA,EAAI+zJ,EAAKt0J,OAAQO,IAAK,CACpC,IAAIkJ,EAAO6qJ,EAAK/zJ,GAEhB,GAAkB,SAAdkJ,EAAK6O,KACPm5K,EAAQ/wL,KAAKuwL,GAAkB,CAC7BzzJ,SAAU,CAAC/zB,GACX8zB,UAAW0wJ,GAAmB,IAAInmL,IAAIy1B,YAEnC,GAAI9zB,EAAK+zB,SAAU,CACxB,IAAI4vG,EAAa7vG,EAAU4D,OAAO13B,EAAK8U,WAAWgf,WAClDi0J,GAAgB/nL,EAAK+zB,SAAU4vG,GAAYjwI,SAAQ,SAAUoD,GAC3D,OAAOkxL,EAAQ/wL,KAAKH,EACtB,GACF,CACF,CAEA,OAAOkxL,CACT,CAEA,SAASC,GAAaC,EAAUC,EAAWR,EAAWE,EAAiBJ,EAAuBd,EAAoBM,EAAmBD,EAAiBc,GACpJ,IAAIM,EAEAv9B,EAAOk9B,GAAgBG,EAASjzL,OAChC+yL,EAAU,GACVK,GAAsB,EACtB3lL,EAAQ,EA0BZ,SAAS4lL,EAAWv0J,EAAU+2G,GAC5B,IAAIh3G,EAAYX,UAAU58B,OAAS,QAAsB3B,IAAjBu+B,UAAU,GAAmBA,UAAU,GAAK,GACpF,OAAOg1J,GAAar0J,EAAUv9B,OAAS,EA1BzC,SAA2Bw9B,EAAU+2G,GAEnC,OAAO08C,GAAkB,CACvBzzJ,SAAUA,EACV+2G,WAAYA,EACZk8C,gBAAiBA,EACjBC,kBAAmBA,EACnBQ,sBAAuBA,EACvBE,UAAWA,EACX7zJ,UARcX,UAAU58B,OAAS,QAAsB3B,IAAjBu+B,UAAU,GAAmBA,UAAU,GAAK,GASlF00J,gBAAiBA,EACjBC,cAAeA,GAEnB,CAa6CS,CAAkBx0J,EAAU+2G,EAAYh3G,GAXrF,SAA6BC,EAAU+2G,GACrC,GAAI+8C,GAAmB/8C,GAAc28C,EAAuB,CAC1D,IAAIX,EAAwBC,GAAyBC,EAAiBl8C,EAAYm8C,GAClFlzJ,EAASoD,QAAQ0vJ,GAAoB/7C,EAAYg8C,GACnD,CAEA,OAAO/yJ,CACT,CAIkGy0J,CAAoBz0J,EAAU+2G,EAChI,CA4DA,IA1DA,IAAI29C,EAAQ,WACV,IAAIzoL,EAAO6qJ,EAAKnoJ,GACZzN,EAAQ+K,EAAK+zB,SAAS,GAAG9+B,MACzByzL,EA5KR,SAAqBpzL,GACnB,OAAOA,EAAIo+B,MAAMwyJ,GACnB,CA0KmByC,CAAY1zL,GAE3B,GAAIyzL,EAAU,CACZ,IAAIE,EAAa3zL,EAAMyW,MAAM,MAC7Bk9K,EAAWl1L,SAAQ,SAAUuvB,EAAMnsB,GACjC,IAAIg0I,EAAa+8C,GAAmBG,EAAQzxL,OAASowL,EACjDkC,EAAW,CACbh6K,KAAM,OACN5Z,MAAO,GAAGyiC,OAAOzU,EAAM,OAGzB,GAAU,IAANnsB,EAAS,CACX,IAKIgyL,EAAQR,EALIz9B,EAAK7yJ,MAAMqwL,EAAqB,EAAG3lL,GAAOg1B,OAAO8vJ,GAAkB,CACjFzzJ,SAAU,CAAC80J,GACX/0J,UAAW9zB,EAAK8U,WAAWgf,aAGKg3G,GAElCk9C,EAAQ/wL,KAAK6xL,EACf,MAAO,GAAIhyL,IAAM8xL,EAAWryL,OAAS,EAAG,CACtC,IAAIwyL,EAAcl+B,EAAKnoJ,EAAQ,IAAMmoJ,EAAKnoJ,EAAQ,GAAGqxB,UAAY82H,EAAKnoJ,EAAQ,GAAGqxB,SAAS,GACtFi1J,EAAyB,CAC3Bn6K,KAAM,OACN5Z,MAAO,GAAGyiC,OAAOzU,IAGnB,GAAI8lK,EAAa,CACf,IAAIE,EAAUzB,GAAkB,CAC9BzzJ,SAAU,CAACi1J,GACXl1J,UAAW9zB,EAAK8U,WAAWgf,YAE7B+2H,EAAKtzJ,OAAOmL,EAAQ,EAAG,EAAGumL,EAC5B,KAAO,CACL,IAEIC,EAASZ,EAFI,CAACU,GAEkBl+C,EAAY9qI,EAAK8U,WAAWgf,WAEhEk0J,EAAQ/wL,KAAKiyL,EACf,CAEF,KAAO,CACL,IAEIC,EAASb,EAFI,CAACO,GAEkB/9C,EAAY9qI,EAAK8U,WAAWgf,WAEhEk0J,EAAQ/wL,KAAKkyL,EACf,CACF,IACAd,EAAqB3lL,CACvB,CAEAA,GACF,EAEOA,EAAQmoJ,EAAKt0J,QAClBkyL,IAGF,GAAIJ,IAAuBx9B,EAAKt0J,OAAS,EAAG,CAC1C,IAAIw9B,EAAW82H,EAAK7yJ,MAAMqwL,EAAqB,EAAGx9B,EAAKt0J,QAEvD,GAAIw9B,GAAYA,EAASx9B,OAAQ,CAC/B,IACI0M,EAAOqlL,EAAWv0J,EADL8zJ,GAAmBG,EAAQzxL,OAASowL,GAErDqB,EAAQ/wL,KAAKgM,EACf,CACF,CAEA,OAAOklL,EAAYH,GAAWI,EAAQ,IAAI1wJ,OAAO+V,MAAM26I,EAAOJ,EAChE,CAEA,SAASoB,GAAgBC,GACvB,IAAIrhJ,EAAOqhJ,EAAMrhJ,KACbm9I,EAAakE,EAAMlE,WACnBM,EAAkB4D,EAAM5D,gBAC5B,OAAOz9I,EAAKhlB,KAAI,SAAUhjB,EAAMlJ,GAC9B,OAAOi5C,GAAc,CACnB/vC,KAAMA,EACNmlL,WAAYA,EACZM,gBAAiBA,EACjBptL,IAAK,gBAAgBq/B,OAAO5gC,IAEhC,GACF,CAGA,SAASwyL,GAActD,GACrB,OAAOA,GAAsD,qBAA/BA,EAAauD,aAC7C,gBC/QA,IDuTyBC,GAAqBC,GCvT1CC,IDuTqBF,UCvTG/6F,GDuTkBg7F,GE3T9C,CACE,2BAA8B,CAC5B,MAAS,QACT,WAAc,OACd,WAAc,cACd,WAAc,4DACd,SAAY,MACZ,UAAa,OACb,WAAc,MACd,YAAe,SACf,UAAa,SACb,SAAY,SACZ,WAAc,MACd,WAAc,IACd,SAAY,IACZ,QAAW,IACX,cAAiB,OACjB,WAAc,OACd,UAAa,OACb,QAAW,QAEb,0BAA6B,CAC3B,MAAS,QACT,WAAc,UACd,WAAc,cACd,WAAc,4DACd,SAAY,MACZ,UAAa,OACb,WAAc,MACd,YAAe,SACf,UAAa,SACb,SAAY,SACZ,WAAc,MACd,WAAc,IACd,SAAY,IACZ,QAAW,IACX,cAAiB,OACjB,WAAc,OACd,UAAa,OACb,QAAW,OACX,QAAW,MACX,OAAU,SACV,SAAY,QAEd,0CAA6C,CAC3C,WAAc,OACd,WAAc,WAEhB,2CAA8C,CAC5C,WAAc,OACd,WAAc,WAEhB,2CAA8C,CAC5C,WAAc,OACd,WAAc,WAEhB,4CAA+C,CAC7C,WAAc,OACd,WAAc,WAEhB,qCAAwC,CACtC,WAAc,OACd,WAAc,WAEhB,sCAAyC,CACvC,WAAc,OACd,WAAc,WAEhB,sCAAyC,CACvC,WAAc,OACd,WAAc,WAEhB,uCAA0C,CACxC,WAAc,OACd,WAAc,WAEhB,uCAA0C,CACxC,WAAc,UACd,QAAW,OACX,aAAgB,OAChB,WAAc,UAEhB,QAAW,CACT,MAAS,aAEX,OAAU,CACR,MAAS,aAEX,QAAW,CACT,MAAS,aAEX,MAAS,CACP,MAAS,aAEX,YAAe,CACb,MAAS,QAEX,UAAa,CACX,QAAW,MAEb,SAAY,CACV,MAAS,QAEX,IAAO,CACL,MAAS,QAEX,QAAW,CACT,MAAS,QAEX,OAAU,CACR,MAAS,QAEX,SAAY,CACV,MAAS,QAEX,OAAU,CACR,MAAS,QAEX,QAAW,CACT,MAAS,QAEX,SAAY,CACV,MAAS,QAEX,YAAa,CACX,MAAS,QAEX,OAAU,CACR,MAAS,QAEX,KAAQ,CACN,MAAS,QAEX,QAAW,CACT,MAAS,QAEX,SAAY,CACV,MAAS,QAEX,SAAY,CACV,MAAS,UACT,WAAc,yBAEhB,OAAU,CACR,MAAS,UACT,WAAc,wBACd,OAAU,QAEZ,IAAO,CACL,MAAS,UACT,WAAc,yBAEhB,8BAA+B,CAC7B,MAAS,UACT,WAAc,yBAEhB,uBAAwB,CACtB,MAAS,UACT,WAAc,yBAEhB,OAAU,CACR,MAAS,QAEX,aAAc,CACZ,MAAS,QAEX,QAAW,CACT,MAAS,QAEX,SAAY,CACV,MAAS,WAEX,aAAc,CACZ,MAAS,WAEX,MAAS,CACP,MAAS,QAEX,UAAa,CACX,MAAS,OACT,WAAc,QAEhB,SAAY,CACV,MAAS,QAEX,KAAQ,CACN,WAAc,QAEhB,OAAU,CACR,UAAa,WF+HR,SAA2BE,GAChC,IAAIvoJ,EAAWuoJ,EAAMvoJ,SACjBrN,EAAW41J,EAAM51J,SACjB61J,EAAcD,EAAMj1J,MACpBA,OAAwB,IAAhBk1J,EAAyBH,GAAeG,EAChDC,EAAoBF,EAAMG,YAC1BA,OAAoC,IAAtBD,EAA+B,CAAC,EAAIA,EAClDE,EAAqBJ,EAAMK,aAC3BA,OAAsC,IAAvBD,EAAgC,CACjDj2J,UAAWsN,EAAW,YAAY1J,OAAO0J,QAAYxsC,EACrD8/B,MAAOqwJ,GAAcA,GAAc,CAAC,EAAGrwJ,EAAM,6BAA8BA,EAAM,yBAA0BgD,OAAO0J,EAAU,SAC1H2oJ,EACAE,EAAwBN,EAAMlE,gBAC9BA,OAA4C,IAA1BwE,GAA0CA,EAC5DC,EAAwBP,EAAM9B,gBAC9BA,OAA4C,IAA1BqC,GAA2CA,EAC7DC,EAAwBR,EAAMlC,sBAC9BA,OAAkD,IAA1B0C,GAA0CA,EAClEC,EAAwBT,EAAMhD,mBAC9BA,OAA+C,IAA1ByD,EAAmC,EAAIA,EAC5DC,EAA2BV,EAAMU,yBACjCC,EAAwBX,EAAM3C,gBAC9BA,OAA4C,IAA1BsD,EAAmC,CAAC,EAAIA,EAC1DnC,EAAYwB,EAAMxB,UAClBoC,EAAsBZ,EAAM7B,cAC5BA,OAAwC,IAAxByC,GAAyCA,EACzDC,EAAkBb,EAAMhC,UACxBA,OAAgC,IAApB6C,EAA6B,CAAC,EAAIA,EAC9CC,EAAWd,EAAMc,SACjBC,EAAef,EAAMgB,OACrBA,OAA0B,IAAjBD,EAA0B,MAAQA,EAC3CE,EAAgBjB,EAAMkB,QACtBA,OAA4B,IAAlBD,EAA2B,OAASA,EAC9CE,EAAanB,EAAMtzL,KACnBA,OAAsB,IAAfy0L,GAAyBnzL,MAAMC,QAAQm8B,GAAYA,EAAS,GAAKA,IAAa,GAAK+2J,EAC1F9E,EAAe2D,EAAM3D,aACrBn0F,EAAOqyF,GAAyByF,EAAO1D,IAE3CD,EAAeA,GAAgBwD,GAC/B,IAAIuB,EAAiBlD,EAA+BxwI,EAAAA,cAAoB8uI,GAAgB,CACtFI,eAAgB8D,EAChBhE,UAAW2D,EAAat1J,OAAS,CAAC,EAClCgyJ,YAAaM,EACbL,mBAAoBA,EACpBP,WAAY/vL,IACT,KACD20L,EAAkBt2J,EAAMu2J,MAAQv2J,EAAM,4BAA8B,CACtEqmG,gBAAiB,QAEfmwD,EAAqB5B,GAActD,GAAgB,OAAS,UAC5DmF,EAAW1F,EAAkB1wL,OAAOqK,OAAO,CAAC,EAAGyyF,EAAM,CACvDn9D,MAAO3/B,OAAOqK,OAAO,CAAC,EAAG4rL,EAAiBlB,KACvC/0L,OAAOqK,OAAO,CAAC,EAAGyyF,EAAM,CAC3B/9D,UAAW+9D,EAAK/9D,UAAY,GAAG4D,OAAOwzJ,EAAoB,KAAKxzJ,OAAOm6D,EAAK/9D,WAAao3J,EACxFx2J,MAAO3/B,OAAOqK,OAAO,CAAC,EAAG0qL,KAa3B,GATEE,EAAat1J,MAAQqwJ,GAAcA,GAAc,CAAC,EAAGiF,EAAat1J,OAAQ,CAAC,EADzEozJ,EAC4E,CAC5Er5I,WAAY,YAGgE,CAC5EA,WAAY,SAIXu3I,EACH,OAAoB3uI,EAAAA,cAAoBszI,EAAQQ,EAAUJ,EAA6B1zI,EAAAA,cAAoBwzI,EAASb,EAAc3zL,UAQlHzB,IAAduzL,GAA2BsC,GAAY3C,KAAeK,GAAY,GACtEsC,EAAWA,GAAYrB,GACvB,IAAIgC,EAAmB,CAAC,CACtBv8K,KAAM,OACN5Z,MAAOoB,IAEL6xL,EAzHR,SAAqBmD,GACnB,IAAIrF,EAAeqF,EAAMrF,aACrB5kJ,EAAWiqJ,EAAMjqJ,SACjB/qC,EAAOg1L,EAAMh1L,KACb+0L,EAAmBC,EAAMD,iBAK7B,GAAI9B,GAActD,GAAe,CAC/B,IAAIsF,EAAcC,GAAuBvF,EAAc5kJ,GAEvD,MAAiB,SAAbA,EACK,CACLnsC,MAAOm2L,EACPhqJ,SAAU,QAEHkqJ,EACFtF,EAAar4F,UAAUvsD,EAAU/qC,GAEjC2vL,EAAauD,cAAclzL,EAEtC,CAGA,IACE,OAAO+qC,GAAyB,SAAbA,EAAsB,CACvCnsC,MAAO+wL,EAAar4F,UAAUt3F,EAAM+qC,IAClC,CACFnsC,MAAOm2L,EAEX,CAAE,MAAOpvL,IACP,MAAO,CACL/G,MAAOm2L,EAEX,CACF,CAqFmBI,CAAY,CACzBxF,aAAcA,EACd5kJ,SAAUA,EACV/qC,KAAMA,EACN+0L,iBAAkBA,IAGM,OAAtBlD,EAAS9mJ,WACX8mJ,EAASjzL,MAAQm2L,GAInB,IACIpjJ,EAAOigJ,GAAaC,EAAUC,EAAWR,EAAWE,EAAiBJ,EAAuBd,EADxEuB,EAASjzL,MAAMsB,OAASowL,EACuFK,EAAiBc,GACxJ,OAAoBzwI,EAAAA,cAAoBszI,EAAQQ,EAAuB9zI,EAAAA,cAAoBwzI,EAASb,GAAevC,GAAyBsD,EAAgBN,EAAS,CACnKziJ,KAAMA,EACNm9I,WAAYzwJ,EACZ+wJ,gBAAiBA,KAErB,GC5ZFiE,GAAYtiF,mBEFZ,CAAgB,OAAQ,OAAQ,eAAgB,MAAO,OAAQ,KAAM,SAAU,aAAc,OAAQ,MAAO,cAAe,MAAO,UAAW,OAAQ,WAAY,UAAW,WAAY,SAAU,aAAc,SAAU,WAAY,WAAY,OAAQ,QAAS,QAAS,SAAU,QAAS,OAAQ,QAAS,MAAO,YAAa,eAAgB,MAAO,MAAO,IAAK,WAAY,aAAc,MAAO,QAAS,UAAW,QAAS,QAAS,eAAgB,YAAa,MAAO,MAAO,UAAW,SAAU,SAAU,MAAO,aAAc,MAAO,MAAO,SAAU,IAAK,OAAQ,YAAa,MAAO,QAAS,OAAQ,SAAU,gBAAiB,SAAU,MAAO,OAAQ,eAAgB,SAAU,MAAO,SAAU,MAAO,MAAO,SAAU,QAAS,gBAAiB,SAAU,QAAS,2BAA4B,OAAQ,UAAW,SAAU,MAAO,MAAO,QAAS,WAAY,SAAU,UAAW,MAAO,OAAQ,MAAO,KAAM,YAAa,KAAM,UAAW,SAAU,OAAQ,aAAc,UAAW,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,YAAa,OAAQ,qBAAsB,QAAS,QAAS,SAAU,UAAW,MAAO,KAAM,IAAK,OAAQ,UAAW,cAAe,aAAc,iBAAkB,OAAQ,QAAS,KAAM,YAAa,eAAgB,QAAS,OAAQ,QAAS,QAAS,eAAgB,MAAO,QAAS,aAAc,SAAU,SAAU,QAAS,QAAS,QAAS,QAAS,OAAQ,WAAY,SAAU,OAAQ,aAAc,OAAQ,MAAO,UAAW,MAAO,QAAS,WAAY,WAAY,oBAAqB,SAAU,SAAU,YAAa,MAAO,UAAW,QAAS,UAAW,SAAU,aAAc,OAAQ,OAAQ,kBAAmB,aAAc,OAAQ,OAAQ,QAAS,QAAS,MAAO,MAAO,OAAQ,aAAc,QAAS,SAAU,WAAY,KAAM,SAAU,SAAU,SAAU,YAAa,SAAU,aAAc,OAAQ,aAAc,MAAO,SAAU,QAAS,aAAc,aAAc,aAAc,SAAU,SAAU,aAAc,WAAY,MAAO,MAAO,SAAU,OAAQ,YAAa,aAAc,SAAU,IAAK,MAAO,OAAQ,SAAU,IAAK,SAAU,SAAU,QAAS,OAAQ,QAAS,OAAQ,MAAO,WAAY,iBAAkB,OAAQ,OAAQ,MAAO,OAAQ,QAAS,SAAU,OAAQ,gBAAiB,QAAS,YAAa,SAAU,MAAO,WAAY,gBAAiB,MAAO,SAAU,aAAc,MAAO,MAAO,WAAY,OAAQ,SAAU,QAAS,UAAW,QAAS,gBAAiB,QAAS,MAAO,MAAO,UAAW,OAAQ,SAAU,MAAO,MAAO,SAAU,OAAQ,aAAc,aAAc,eAAgB,UAAW,MAAO,IAAK,OAAQ,QAAS,WAAY,UAAW,OAAQ,MAAO,eAAgB,aAAc,OAAQ,UAAW,OAAQ,UAAW,OAAQ,QAAS,UAAW,OAAQ,SAAU,OAAQ,OAAQ,OFGvtF,YGNA,IACE,2BAA8B,CAC5B,MAAS,UACT,WAAc,4DACd,UAAa,OACb,WAAc,MACd,YAAe,SACf,UAAa,SACb,SAAY,SACZ,WAAc,MACd,SAAY,MACZ,WAAc,IACd,SAAY,IACZ,QAAW,IACX,cAAiB,OACjB,WAAc,OACd,UAAa,OACb,QAAW,QAEb,0BAA6B,CAC3B,MAAS,QACT,WAAc,4DACd,UAAa,OACb,WAAc,MACd,YAAe,SACf,UAAa,SACb,SAAY,SACZ,WAAc,MACd,SAAY,MACZ,WAAc,IACd,SAAY,IACZ,QAAW,IACX,cAAiB,OACjB,WAAc,OACd,UAAa,OACb,QAAW,OACX,QAAW,MACX,OAAU,UACV,SAAY,OACZ,WAAc,WAEhB,0CAA6C,CAC3C,WAAc,OACd,WAAc,0BAEhB,2CAA8C,CAC5C,WAAc,OACd,WAAc,0BAEhB,2CAA8C,CAC5C,WAAc,OACd,WAAc,0BAEhB,4CAA+C,CAC7C,WAAc,OACd,WAAc,0BAEhB,qCAAwC,CACtC,WAAc,OACd,WAAc,0BAEhB,sCAAyC,CACvC,WAAc,OACd,WAAc,0BAEhB,sCAAyC,CACvC,WAAc,OACd,WAAc,0BAEhB,uCAA0C,CACxC,WAAc,OACd,WAAc,0BAEhB,uCAA0C,CACxC,MAAS,QACT,WAAc,UACd,QAAW,QACX,aAAgB,QAChB,WAAc,UAEhB,QAAW,CACT,MAAS,oBACT,UAAa,UAEf,OAAU,CACR,MAAS,oBACT,UAAa,UAEf,MAAS,CACP,MAAS,oBACT,UAAa,UAEf,YAAe,CACb,MAAS,sBAEX,aAAc,CACZ,MAAS,sBAEX,QAAW,CACT,MAAS,0BACT,UAAa,UAEf,OAAU,CACR,MAAS,sBAEX,SAAY,CACV,MAAS,sBAEX,IAAO,CACL,MAAS,sBAEX,SAAY,CACV,MAAS,sBAEX,QAAW,CACT,MAAS,sBAEX,QAAW,CACT,MAAS,qBAEX,OAAU,CACR,MAAS,sBAEX,SAAY,CACV,MAAS,sBAEX,SAAY,CACV,MAAS,sBAEX,QAAW,CACT,MAAS,sBAEX,KAAQ,CACN,MAAS,sBAEX,SAAY,CACV,MAAS,qBACT,UAAa,UAEf,QAAW,CACT,MAAS,qBACT,UAAa,UAEf,YAAa,CACX,MAAS,qBACT,UAAa,UAEf,SAAY,CACV,MAAS,qBACT,UAAa,UAEf,OAAU,CACR,MAAS,sBAEX,IAAO,CACL,MAAS,sBAEX,OAAU,CACR,MAAS,sBAEX,8BAA+B,CAC7B,MAAS,sBAEX,uBAAwB,CACtB,MAAS,sBAEX,aAAc,CACZ,MAAS,sBAEX,OAAU,CACR,MAAS,sBAEX,aAAc,CACZ,MAAS,sBAEX,MAAS,CACP,MAAS,sBAEX,UAAa,CACX,MAAS,qBACT,WAAc,QAEhB,SAAY,CACV,MAAS,sBAEX,KAAQ,CACN,WAAc,QAEhB,OAAU,CACR,UAAa,WC7LV,ICCIqkF,GAAiB,CAC1BlhJ,WAAO31C,EACP2zC,UAAM3zC,EACNk/B,eAAWl/B,EACX8/B,WAAO9/B,EACPojG,UAAMpjG,GAEG82L,GAAcr0I,EAAAA,eAAoCA,EAAAA,cAAoBo0I,ICR7ExF,GAAY,CAAC,OAAQ,OAAQ,SACjC,SAAS/B,GAAyBn7K,EAAQo7K,GAAY,GAAc,MAAVp7K,EAAgB,MAAO,CAAC,EAAG,IAAkE1Q,EAAKvB,EAAnE47B,EACzF,SAAuC3pB,EAAQo7K,GAAY,GAAc,MAAVp7K,EAAgB,MAAO,CAAC,EAAG,IAAI2pB,EAAS,CAAC,EAAG,IAAK,IAAIr6B,KAAO0Q,EAAU,GAAIhU,OAAO4nB,UAAUC,eAAe3U,KAAKc,EAAQ1Q,GAAM,CAAE,GAAI8rL,EAAS5rJ,QAAQlgC,IAAQ,EAAG,SAAUq6B,EAAOr6B,GAAO0Q,EAAO1Q,EAAM,CAAI,OAAOq6B,CAAQ,CADpLi5J,CAA8B5iL,EAAQo7K,GAAuB,GAAIpvL,OAAOsvL,sBAAuB,CAAE,IAAIC,EAAmBvvL,OAAOsvL,sBAAsBt7K,GAAS,IAAKjS,EAAI,EAAGA,EAAIwtL,EAAiB/tL,OAAQO,IAAOuB,EAAMisL,EAAiBxtL,GAAQqtL,EAAS5rJ,QAAQlgC,IAAQ,GAAkBtD,OAAO4nB,UAAU4nK,qBAAqBt8K,KAAKc,EAAQ1Q,KAAgBq6B,EAAOr6B,GAAO0Q,EAAO1Q,GAAQ,CAAE,OAAOq6B,CAAQ,CAE3e,SAASqzJ,KAAiS,OAApRA,GAAWhxL,OAAOqK,OAASrK,OAAOqK,OAAOq7D,OAAS,SAAU/nC,GAAU,IAAK,IAAI57B,EAAI,EAAGA,EAAIq8B,UAAU58B,OAAQO,IAAK,CAAE,IAAIiS,EAASoqB,UAAUr8B,GAAI,IAAK,IAAIuB,KAAO0Q,EAAchU,OAAO4nB,UAAUC,eAAe3U,KAAKc,EAAQ1Q,KAAQq6B,EAAOr6B,GAAO0Q,EAAO1Q,GAAU,CAAE,OAAOq6B,CAAQ,EAAUqzJ,GAASt4I,MAAM75C,KAAMu/B,UAAY,CAClV,SAASwxJ,GAAQ3oL,EAAG4+D,GAAK,IAAIhoD,EAAI7d,OAAOgW,KAAK/O,GAAI,GAAIjH,OAAOsvL,sBAAuB,CAAE,IAAI3lK,EAAI3pB,OAAOsvL,sBAAsBroL,GAAI4+D,IAAMl8C,EAAIA,EAAE/L,QAAO,SAAUioD,GAAK,OAAO7lE,OAAOs9B,yBAAyBr2B,EAAG4+D,GAAG1lE,UAAY,KAAK0d,EAAE3b,KAAKw2C,MAAM76B,EAAG8L,EAAI,CAAE,OAAO9L,CAAG,CAC9P,SAASmyK,GAAc/oL,GAAK,IAAK,IAAI4+D,EAAI,EAAGA,EAAIznC,UAAU58B,OAAQqkE,IAAK,CAAE,IAAIhoD,EAAI,MAAQugB,UAAUynC,GAAKznC,UAAUynC,GAAK,CAAC,EAAGA,EAAI,EAAI+pH,GAAQ5vL,OAAO6d,IAAI,GAAIlf,SAAQ,SAAUknE,GAAK8pH,GAAgB1oL,EAAG4+D,EAAGhoD,EAAEgoD,GAAK,IAAK7lE,OAAOqyI,0BAA4BryI,OAAO84G,iBAAiB7xG,EAAGjH,OAAOqyI,0BAA0Bx0H,IAAM+xK,GAAQ5vL,OAAO6d,IAAIlf,SAAQ,SAAUknE,GAAK7lE,OAAOC,eAAegH,EAAG4+D,EAAG7lE,OAAOs9B,yBAAyBzf,EAAGgoD,GAAK,GAAI,CAAE,OAAO5+D,CAAG,CACtb,SAAS0oL,GAAgBlkL,EAAKnI,EAAKpD,GAA4L,OAAnLoD,EAC5C,SAAwBua,GAAK,IAAI9b,EACjC,SAAsB8b,EAAGgoD,GAAK,GAAI,iBAAmBhoD,IAAMA,EAAG,OAAOA,EAAG,IAAI5W,EAAI4W,EAAE6oC,OAAOmwI,aAAc,QAAI,IAAW5vL,EAAG,CAAE,IAAIlF,EAAIkF,EAAEiM,KAAK2K,EAAGgoD,GAAK,WAAY,GAAI,iBAAmB9jE,EAAG,OAAOA,EAAG,MAAM,IAAI69B,UAAU,+CAAiD,CAAE,OAAQ,WAAaimC,EAAI/iC,OAASG,QAAQplB,EAAI,CADlRi5K,CAAaj5K,EAAG,UAAW,MAAO,iBAAmB9b,EAAIA,EAAIA,EAAI,EAAI,CADxDg1L,CAAezzL,GAAUA,KAAOmI,EAAOzL,OAAOC,eAAewL,EAAKnI,EAAK,CAAEpD,MAAOA,EAAOC,YAAY,EAAMy9B,cAAc,EAAME,UAAU,IAAkBryB,EAAInI,GAAOpD,EAAgBuL,CAAK,CAK3O,SAASurL,GAAalhC,GACpB,OAAOA,GAAQA,EAAK7nI,KAAI,CAAChjB,EAAMlJ,IAAmBugD,EAAAA,cAAoBr3C,EAAKwsB,IAAKu4J,GAAc,CAC5F1sL,IAAKvB,GACJkJ,EAAKg4F,MAAO+zF,GAAa/rL,EAAKu1C,SACnC,CACO,SAASy2I,GAAQnmL,GACtB,OAAO+D,GAAsBytC,EAAAA,cAAoB40I,GAAUlG,GAAS,CAClE/tF,KAAM+sF,GAAc,CAAC,EAAGl/K,EAAKmyF,OAC5BpuF,GAAQmiL,GAAalmL,EAAK0vC,OAC/B,CACO,SAAS02I,GAASriL,GACvB,IAAIqoB,EAAOi6J,IACT,IAOIp4J,GAPA,KACAkkE,EAAI,KACJzvD,EAAI,MACJU,GACEr/B,EACJuiL,EAAWjI,GAAyBt6K,EAAOq8K,IACzCmG,EAAe7jJ,GAAQ2jJ,EAAK3jJ,MAAQ,MAIxC,OAFI2jJ,EAAKp4J,YAAWA,EAAYo4J,EAAKp4J,WACjClqB,EAAMkqB,YAAWA,GAAaA,EAAYA,EAAY,IAAM,IAAMlqB,EAAMkqB,WACxDujB,EAAAA,cAAoB,MAAO0uI,GAAS,CACtDx+F,OAAQ,eACRxG,KAAM,eACNp+B,YAAa,KACZupI,EAAKl0F,KAAMA,EAAMm0F,EAAU,CAC5Br4J,UAAWA,EACXY,MAAOqwJ,GAAcA,GAAc,CACjCx6I,MAAO3gC,EAAM2gC,OAAS2hJ,EAAK3hJ,OAC1B2hJ,EAAKx3J,OAAQ9qB,EAAM8qB,OACtBuL,OAAQmsJ,EACR/iJ,MAAO+iJ,EACP3yJ,MAAO,+BACLwP,GAAsBoO,EAAAA,cAAoB,QAAS,KAAMpO,GAAQr/B,EAAMmqB,SAAS,EAEtF,YAAuBn/B,IAAhB82L,GAAyCr0I,EAAAA,cAAoBq0I,GAAY1/F,SAAU,MAAMkgG,GAAQj6J,EAAKi6J,KAASj6J,EAAKw5J,GAC7H,CCuKO,SAASY,GAAQziL,GACtB,OAAOoiL,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,YAAY,KAAO,OAAO,OAAS,eAAe,YAAc,IAAI,cAAgB,QAAQ,eAAiB,SAAS,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,IAAI,EAAI,IAAI,MAAQ,KAAK,OAAS,KAAK,GAAK,IAAI,GAAK,KAAK,MAAQ,IAAI,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,2DAA2D,MAAQ,MAAnWA,CAA0WpiL,EACnX,CCzMO,MAAM0iL,WAAiB/qH,EAAAA,UAI5B1rE,WAAAA,CAAY+T,GACVpW,MAAMoW,GAAO,KAJf26I,WACE,sEAIA3wJ,KAAK2uE,MAAQ,CAAEntC,QAAS,GAAIkM,SAAS,EACvC,CAEAirJ,mBAAAA,CAAoBthL,GAClB,OAAO84I,GAAM5uJ,IAAI,GAAGvB,KAAK2wJ,cAAct5I,KAAMwc,MAAM2N,IACjDxhC,KAAKwhC,QAAUA,EAAQvvB,KACvBjS,KAAKo3F,SAAS,CAAE51D,QAASA,EAAQvvB,KAAMy7B,SAAS,GAAQ,GAE5D,CACArnC,MAAAA,GACE,MAAMgR,EAAKrX,KAAKgW,MAAMqB,GACtB,GAAIrX,KAAK2uE,MAAMjhC,QAEb,OADA1tC,KAAK24L,oBAAoBthL,IAtBtB+0H,EAAAA,GAAAA,KAAC0E,GAAO,IAwBN,CACL,IAAItvG,EAAUxhC,KAAK2uE,MAAMntC,QACzB,OACE2qG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,0FAAyFC,SAAA,EACtGisG,EAAAA,GAAAA,KAAA,UAAQp9F,QAASA,IAAMwM,OAAOsiB,SAAStxB,KAAO,QAAStM,UAAU,cAAaC,UAC5EisG,EAAAA,GAAAA,KAAA,OAAKvmG,MAAM,6BAA6BsnD,KAAK,OAAOqI,QAAQ,YAAY7B,OAAO,eAAel+C,MAAM,KAAKpJ,OAAO,KAAIlM,UAClHisG,EAAAA,GAAAA,KAAA,QAAMx4C,cAAc,QAAQC,eAAe,QAAQ9kC,YAAY,IAAI1O,EAAE,yBAGzE8rF,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,qBAAoBC,SAAA,EACjCisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,QAAOC,SAAEqB,EAAQ6T,SAC/B82F,EAAAA,GAAAA,MAAA,MAAIjsG,UAAU,WAAUC,SAAA,EAACisG,EAAAA,GAAAA,KAAA,QAAMlsG,UAAU,WAAUC,SAAEqB,EAAQo3J,UAAUxzJ,gBAAqB,IAAE5D,EAAQq3J,iBAExGzsD,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,uBAAsBC,UACnCisG,EAAAA,GAAAA,KAAC0sD,GAAgB,CAACt3J,QAASA,EAAQA,cAI3C,CACF,EAGF,MAAMs3J,GAAmBznL,IAAkB,IAAjB,QAAEmwB,GAASnwB,EACnC,OACE+6H,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,mBAAkBC,UAC/BisG,EAAAA,GAAAA,KAAC2sD,GAAa,CACZvY,cAAe,CAAC4O,IAChB/5D,WAAY,CACV5yH,IAAAA,CAAI8O,GAAmD,IAAlD,KAAEnF,EAAI,OAAEuxF,EAAM,UAAEz9D,EAAS,SAAEC,KAAanqB,GAAOzE,EAClD,MAAMuuB,EAAQ,iBAAiB5Y,KAAKgZ,GAAa,IACjD,OAAQy9D,GAAU79D,GAChBqsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,aAAYC,SAAA,EACzBisG,EAAAA,GAAAA,KAAA,UACElsG,UAAU,cACV8O,QAASA,KACP8jF,UAAUkmE,UAAUC,UAAU94J,EAAS,EACvCA,UAEFisG,EAAAA,GAAAA,KAACqsD,GAAM,OAETrsD,EAAAA,GAAAA,KAAC8sD,GAAiB,CAChBp4J,MAAOq4J,GACP3rJ,SAAU1N,EAAM,GAChBo2J,YAAa,CAAEkD,aAAc,QAC7BrC,OAAO,SACH/gL,EAAKmqB,SAER8D,OAAO9D,GAAU77B,QAAQ,MAAO,UAIrC8nI,EAAAA,GAAAA,KAAA,QAAMlsG,UAAWA,KAAelqB,EAAKmqB,SAClCA,GAGP,GACAA,SAEDqB,KAEC,EC5FH,MAAM63J,WAA0B1rH,EAAAA,UACrCtnE,MAAAA,GACE,MCNkCizL,EAACC,EAAUvqJ,KAE7Cm9F,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,2BAA0BC,SAAA,EACvCisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,eAAcC,UAC3BgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,0DAAyDC,SAAA,CACnEo5J,EAASX,WACZxsD,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,gBAAeC,SAAEo5J,EAASV,kBAG3C1sD,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,8BAA6BC,SAAA,EAC1CisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,OAAO8O,QAASA,EAAQ7O,UACnCisG,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,+DAA8DC,SACxEo5J,EAASlkJ,WAGhB+2F,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,gBAAeC,SAAEo5J,EAAS/3J,QAAQp9B,MAAM,EAAG,KAAO,SAC/DgoI,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAA,UAAQp9F,QAASA,EAAS9O,UAAU,oMAAmMC,SAAC,oBDXrOm5J,CAAuBt5L,KAAKgW,MAAMujL,SAAUv5L,KAAKgW,MAAMg5B,QAChE,EEDK,MAAMwqJ,WAAoB7rH,EAAAA,UAI/B1rE,WAAAA,CAAY+T,GACVpW,MAAMoW,GAAO,KAJf26I,WACE,sEAAsE,KAiBxE8oC,qBAAwB3iJ,IACtB92C,KAAKo3F,SAAS,CAAEsiG,iBAAkB5iJ,EAAMhY,OAAOz9B,OAAQ,EAdvDrB,KAAK2uE,MAAQ,CACXntC,QAAS,GACTkM,SAAS,EACTgsJ,iBAAkB,GAEtB,CAEAf,mBAAAA,GACE,OAAOxoC,GAAM5uJ,IAAIvB,KAAK2wJ,YAAY98H,MAAM2N,IACtCxhC,KAAKo3F,SAAS,CAAE51D,QAASA,EAAQvvB,KAAMy7B,SAAS,GAAQ,GAE5D,CAMArnC,MAAAA,GACE,GAAIrG,KAAK2uE,MAAMjhC,QAEb,OADA1tC,KAAK24L,sBACEgB,KACF,CACL,IAAIn4J,EAAUxhC,KAAK2uE,MAAMntC,QAGzB,MAAMo4J,EAAa,IACd,IAAInvL,IAAI+2B,EAAQpS,KAAK3T,GAASA,EAAKm9K,UAAUxzJ,kBAI5Cy0J,EAC4B,KAAhC75L,KAAK2uE,MAAM+qH,kBAA2D,QAAhC15L,KAAK2uE,MAAM+qH,iBAC7Cl4J,EACAA,EAAQziB,QACLtD,GACCA,EAAKm9K,UAAUxzJ,gBAAkBplC,KAAK2uE,MAAM+qH,mBAGtD,OACEvtD,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,iEAAgEC,SAAA,EAC7EisG,EAAAA,GAAAA,KAAA,OAAAjsG,UACEgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,mBAAkBC,SAAA,EAC/BisG,EAAAA,GAAAA,KAAA,SACE1/F,QAAQ,WACRxM,UAAU,8CAA6CC,SACxD,YAGDgsG,EAAAA,GAAAA,MAAA,UACE90H,GAAG,WACHlR,KAAK,WACL9E,MAAOrB,KAAK2uE,MAAM+qH,iBAClB3qJ,SAAU/uC,KAAKy5L,qBACfv5J,UAAU,6KAA4KC,SAAA,EAEtLisG,EAAAA,GAAAA,KAAA,UAAQ/qI,MAAM,MAAK8+B,SAAC,QACnBy5J,EAAWxqK,KAAKq5F,IACf2jB,EAAAA,GAAAA,KAAA,UAAQ/qI,MAAOonH,EAAStoF,SACrBsoF,GAD2BA,cAOtC2jB,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,mCAAkCC,SAC9C05J,EAAkBzqK,KAAKmqK,IACtBntD,EAAAA,GAAAA,KAACitD,GAAiB,CAChBE,SAAUA,EAEVvqJ,QAASA,KAAM8qJ,OAUVziL,EAVsBkiL,EAASliL,QAWlDmkC,OAAOsiB,SAAStxB,KAAO,SAASn1B,KADlC,IAAqBA,CAVmC,GADnCkiL,EAASliL,UAO1B,CACF,EAOK,MAAMsiL,GAA0BA,KAC9BvtD,EAAAA,GAAAA,KAAC0E,GAAO,IC3FV,SAASipD,GAAK/jL,GACnB,MAAM,GAACqB,GAAMquH,KACb,OAAGruH,ECYoBA,KAErB80H,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,UACnBsuE,EAAAA,GAAAA,KAACssD,GAAQ,CAACrhL,GAAIA,ODfTkiL,CAASliL,GCHI2iL,MACtB,IAAIC,EAAa,CAAC,kBAAmB,wBAEjC5kJ,EAAQ4kJ,EADMl9K,KAAK08F,MAAM18F,KAAK4pD,SAAWszH,EAAWt3L,SAExD,OACEwpI,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,UACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAOA,KACnB+2F,EAAAA,GAAAA,KAACotD,GAAW,MACR,EDJDQ,EACT,CEHA,IAAIrpC,GACA,sEAEG,MAAMupC,WAAavsH,EAAAA,UACxBtnE,MAAAA,GACE,OACE8lI,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,MACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,mBAClB+2F,EAAAA,GAAAA,KAAC+tD,GAAW,MAGlB,EAGF,MAAMA,WAAoBxsH,EAAAA,UAExB1rE,WAAAA,CAAY+T,GACVpW,MAAMoW,GACNhW,KAAK2uE,MAAQ,CAAEntC,QAAS,GAAIkM,SAAS,EAAM0sJ,WAAW,EACxD,CACAC,mBAAAA,GACE,OAAOlqC,GAAM5uJ,IAAIovJ,IAAY98H,MAAM2N,IACjCxhC,KAAKwhC,QAAUA,EAAQvvB,KACvBjS,KAAKo3F,SAAS,CAAE51D,QAASA,EAAQvvB,KAAMy7B,SAAS,GAAQ,GAE5D,CACArnC,MAAAA,GACE,OAAIrG,KAAK2uE,MAAMjhC,SACb1tC,KAAKq6L,uBCEFjuD,EAAAA,GAAAA,KAAC0E,GAAO,MDET1E,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,cAAaC,UAC1BisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,4FAA2FC,SACvGngC,KAAK2uE,MAAMntC,QAAQpS,KAAI,CAACwsB,EAAK9sC,KAC5Bq9H,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,6BAA4BC,SAAA,EACzCisG,EAAAA,GAAAA,KAAA,UAAQp9F,QAASA,KAAKhvC,KAAKo3F,SAAS,CAACgjG,WAAW,GAAM,EAAEj6J,SAAEyb,KAC1DwwF,EAAAA,GAAAA,KAACkuD,GAAS,CAACC,KAAMv6L,KAAK2uE,MAAMyrH,UAAW1+I,SAAUE,EAAKk+I,YAAaA,KAAK95L,KAAKo3F,SAAS,CAACgjG,WAAW,GAAO,YAOvH,EAGF,MAAME,WAAkB3sH,EAAAA,UAEtB1rE,WAAAA,CAAY+T,GACVpW,MAAMoW,GACNhW,KAAK2uE,MAAQ,CAAE+0D,OAAQ,OAAQ82D,WAAW,GAC5C,CAEAC,MAAAA,CAAO32C,EAAMpoG,GACXy0G,GAAM5uJ,IAAI,GAAGovJ,WAAmB7M,cAAiBhtB,UAAUp7E,MAAa7nB,MAAMijH,IAC5E,IAAIt1G,EAAUs1G,EAAS7kI,KACpBuvB,EAAQxY,eAAe,SACxBhpB,KAAKo3F,SAAS,CAACssC,OAAQ,YACvBloF,OAAOsiB,SAAStxB,KAAOhL,EAAQ4V,MAG/Bp3C,KAAKo3F,SAAS,CAACssC,OAAQ,SACzB,GAEJ,CAEAg3D,gBAAAA,CAAiB/pE,GACf,MAAMxuF,EAAMwuF,EAAI7xF,OAAOz9B,MACvBrB,KAAKo3F,SAAS,CACZojG,WAAYr4J,GAEhB,CACA97B,MAAAA,GACE,GAAGrG,KAAKgW,MAAMukL,KACd,OACEpuD,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,gBAAgB,kBAAgB,cAAcgJ,KAAK,SAAS,aAAW,OAAM/I,SAAA,EAC5FisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,gEAEfksG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,qCAAoCC,UACjDisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,kFAAiFC,UAC9FgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,0HAAyHC,SAAA,EACtIisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,yCAAwCC,UACrDgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,yBAAwBC,SAAA,EACrCisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,oHAAmHC,UAClIisG,EAAAA,GAAAA,KAAA,OAAKvmG,MAAM,6BAA6BsnD,KAAK,OAAOqI,QAAQ,YAAYzmC,YAAY,MAAM4kC,OAAO,eAAezzD,UAAU,UAASC,UACjIisG,EAAAA,GAAAA,KAAA,QAAMx4C,cAAc,QAAQC,eAAe,QAAQxzC,EAAE,ukBAGvD8rF,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,gDAA+CC,SAAA,EAC5DisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,kDAAkD7oB,GAAG,cAAa8oB,SAAC,sBAC1D,UAAtBngC,KAAK2uE,MAAM+0D,QAAqB0I,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,yBAAwBC,SAAC,mBAAoB,IAC3FgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,OAAMC,SAAA,EACrBisG,EAAAA,GAAAA,KAAA,SAAO7/H,IAAI,mBAAmB2zB,UAAU,UAASC,SAAC,oBAClDisG,EAAAA,GAAAA,KAAA,SAAO/0H,GAAG,mBAAmB03B,SAAU4hF,GAAO3wH,KAAK06L,iBAAiB/pE,GAAMxqH,KAAK,WAAW8U,KAAK,WAAW0/K,aAAa,WAAWrhK,UAAQ,EAAC4G,UAAU,qLAAqL0T,YAAY,oCAK5Vu4F,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,2DAA0DC,SAAA,EACvEisG,EAAAA,GAAAA,KAAA,UAAQnxH,KAAK,SAASilB,UAAU,mJAAmJ8O,QAASA,IAAIhvC,KAAKy6L,OAAOz6L,KAAK2uE,MAAM6rH,WAAYx6L,KAAKgW,MAAM0lC,UAAUvb,SAAC,cACzPisG,EAAAA,GAAAA,KAAA,UAAQnxH,KAAK,SAASilB,UAAU,wLAAwL8O,QAAShvC,KAAKgW,MAAM8jL,YAAY35J,SAAC,uBASrQ,EElHK,MAAMy6J,WAA4BjtH,EAAAA,UACvCtnE,MAAAA,GACE,OACE8lI,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,MACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,cAClB+2F,EAAAA,GAAAA,KAAC+tD,GAAW,MAGlB,EAGF,MAAMA,WAAoBxsH,EAAAA,UAE1BtnE,MAAAA,GACI,MAAMw0L,EAAc,IAAIjhD,gBAAgBp+F,OAAOsiB,SAAS99B,QAClDvtB,EAAS,CAAC,EAEhB,IAAK,MAAOtM,EAAM9E,KAAUw5L,EACxBpoL,EAAOtM,GAAQ9E,EAGnB,OACI+qI,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,cAAaC,UACxBisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,4FAA2FC,SACrGh/B,OAAOs5I,QAAQhoI,GAAQ2c,KAAI/d,IAAA,IAAElL,EAAM9E,GAAMgQ,EAAA,OACtC86H,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,gBAAeC,SAAA,CACzBh6B,EAAK,KAAG9E,IADuB8E,EAE9B,OAK1B,ECpCO,MAAM20L,WAAqBntH,EAAAA,UAAU1rE,WAAAA,GAAA,SAAAs9B,WAAA,KAC1Cw7J,MAAQ,CACN,CACI50L,KAAM,iBACNujF,KAAM,gCACNqiB,YAAa,iFACb30D,KAAM,yBAEV,CACIjxC,KAAM,iBACNujF,KAAM,gCACNqiB,YAAa,iFACb30D,KAAM,yBAEV,CACIjxC,KAAM,eACNujF,KAAM,8BACNqiB,YAAa,8EACb30D,KAAM,uBAEV,CACIjxC,KAAM,iBACNujF,KAAM,sBACNqiB,YAAa,2BACb30D,KAAM,yBAEV,CACIjxC,KAAM,wBACNujF,KAAM,uCACNqiB,YAAa,yFACb30D,KAAM,gCAEV,CACIjxC,KAAM,eACNujF,KAAM,8BACNqiB,YAAa,2DACb30D,KAAM,uBAEX,CACD/wC,MAAAA,GACE,OACA+lI,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,0FAAyFC,UACpGisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,2DAA0DC,SACtEngC,KAAK+6L,MAAM3rK,KAAI,CAAC4rK,EAAMlsL,KACrBs9H,EAAAA,GAAAA,KAAC6uD,GAAQ,CAAaD,KAAMA,GAAblsL,QAKzB,EAGF,MAAMmsL,WAAiBttH,EAAAA,UACrBtnE,MAAAA,GACE,OACE+lI,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,oCAAmCC,UAChDgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,6BAA4BC,SAAA,EACzCisG,EAAAA,GAAAA,KAAA,OAAKjtG,IAAKn/B,KAAKgW,MAAMglL,KAAKtxG,KAAMxpD,UAAU,YAAYiK,IAAKnqC,KAAKgW,MAAMglL,KAAK70L,QAC3EimI,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,6BAA4BC,SAAEngC,KAAKgW,MAAMglL,KAAK70L,QAC5DimI,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,6BAA4BC,SAAEngC,KAAKgW,MAAMglL,KAAKjvF,eAE3DqgC,EAAAA,GAAAA,KAAA,KAAG5/F,KAAMxsC,KAAKgW,MAAMglL,KAAK5jJ,KAAMlX,UAAU,iKAAgKC,SAAC,eAMlN,ECnEK,SAAS+6J,GAAcllL,GAC5B,MAAOyuB,EAAO02J,IAAYvjH,EAAAA,EAAAA,UAAS,KAC5B0gC,EAAQ8iF,IAAaxjH,EAAAA,EAAAA,UAAS,KAC9BtwE,EAAO+zL,IAAYzjH,EAAAA,EAAAA,UAAS,IAyBnC,OACEu0D,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,iEAAgEC,SAAA,EAC7EisG,EAAAA,GAAAA,KAAA,OAAK7iD,MAAM,0EAA0ErgD,KAAK,QAAO/I,UAC/FisG,EAAAA,GAAAA,KAAA,KAAAjsG,SAAG,6HAELisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,oBACJisG,EAAAA,GAAAA,KAAA,YACE/qI,MAAOojC,EACPsK,SAAW3mC,GAAM+yL,EAAS/yL,EAAE02B,OAAOz9B,OACnCuyC,YAAY,0BACZ9S,MAAOw6J,GAAOC,WAEfj0L,IAAS8kI,EAAAA,GAAAA,KAAA,KAAGtrG,MAAOw6J,GAAOh0L,MAAM64B,SAAE74B,KACnC8kI,EAAAA,GAAAA,KAAA,UAAQp9F,QApCSwsJ,KACnB,IAEE,IAAIC,EAAiBh3J,EAClBngC,QAAQ,KAAM,KACdA,QAAQ,aAAc,SACtBA,QAAQ,SAAU,KAErB,MAAMo3L,EAAgBr3L,KAAK1C,UAAU0C,KAAK2S,MAAMykL,GAAiB,KAAM,GACvEL,EAAUM,GACVL,EAAS,GACX,CAAE,MAAO5qL,GACP4qL,EAAS,iBAAiB5qL,EAAIW,WAC9BgqL,EAAU,GACZ,GAsBiCt6J,MAAOw6J,GAAOjgI,OAAOl7B,SAAC,iBACrDisG,EAAAA,GAAAA,KAAA,UAAQp9F,QApBQ2sJ,KAClBR,EAAS,IACTC,EAAU,IACVC,EAAS,GAAG,EAiBoBv6J,MAAOw6J,GAAOM,YAAYz7J,SAAC,WACzDisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,qBACJisG,EAAAA,GAAAA,KAAA,YACE/qI,MAAOi3G,EACPtkE,UAAQ,EACRJ,YAAY,qCACZ9S,MAAOw6J,GAAOC,aAItB,CAEA,MAAMD,GAAS,CACbnrE,UAAW,CAET0rE,OAAQ,SACR30D,QAAS,OACTz5C,WAAY,qBAEd8tG,SAAU,CACR9lJ,MAAO,OACPpJ,OAAQ,QACR66F,QAAS,OACT40D,aAAc,OACdpuG,SAAU,OACVz3C,OAAQ,iBACRmjJ,aAAc,QAEhB/9H,OAAQ,CACN8rE,gBAAiB,UACjBxwF,MAAO,OACPuwF,QAAS,YACTjxF,OAAQ,OACRmjJ,aAAc,OACdntG,OAAQ,UACR8vG,YAAa,QAEfH,YAAa,CACXz0D,gBAAiB,UACjBxwF,MAAO,UACPuwF,QAAS,YACTjxF,OAAQ,OACRmjJ,aAAc,OACdntG,OAAQ,WAEV3kF,MAAO,CACLqvC,MAAO,YCxFX,SAASqlJ,GAAUC,GACjB,MAA2B,qBAAZA,GAAyC,OAAZA,CAC9C,CAgDA,IAGIC,GAnBJ,SAAgB/gL,EAAQ/B,GACtB,IAAiB+iL,EAAb73K,EAAS,GAEb,IAAK63K,EAAQ,EAAGA,EAAQ/iL,EAAO+iL,GAAS,EACtC73K,GAAUnJ,EAGZ,OAAOmJ,CACT,EAYI83K,GATJ,SAAwBphL,GACtB,OAAmB,IAAXA,GAAkBopB,OAAOi4J,oBAAsB,EAAIrhL,CAC7D,EAQIshL,GArCJ,SAAgBx9J,EAAQ3pB,GACtB,IAAIrG,EAAOnM,EAAQ8B,EAAK+rL,EAExB,GAAIr7K,EAGF,IAAKrG,EAAQ,EAAGnM,GAFhB6tL,EAAarvL,OAAOgW,KAAKhC,IAEWxS,OAAQmM,EAAQnM,EAAQmM,GAAS,EAEnEgwB,EADAr6B,EAAM+rL,EAAW1hL,IACHqG,EAAO1Q,GAIzB,OAAOq6B,CACT,EA0BIs9G,GAAS,CACZ4/C,UARsBA,GAStB9pD,SAtDD,SAAkB+pD,GAChB,MAA2B,kBAAZA,GAAsC,OAAZA,CAC3C,EAqDCvkG,QAlDD,SAAiB8rE,GACf,OAAIz/J,MAAMC,QAAQw/J,GAAkBA,EAC3Bw4B,GAAUx4B,GAAkB,GAE9B,CAAEA,EACX,EA8CCzlG,OAAQm+H,GACRK,eAAgBH,GAChBl9J,OAAQo9J,IAMT,SAASE,GAAYvkF,EAAWrhE,GAC9B,IAAI6lJ,EAAQ,GAAIrrL,EAAU6mG,EAAUv2E,QAAU,mBAE9C,OAAKu2E,EAAUv+D,MAEXu+D,EAAUv+D,KAAKvzC,OACjBs2L,GAAS,OAASxkF,EAAUv+D,KAAKvzC,KAAO,MAG1Cs2L,GAAS,KAAOxkF,EAAUv+D,KAAKrqC,KAAO,GAAK,KAAO4oG,EAAUv+D,KAAKzY,OAAS,GAAK,KAE1E2V,GAAWqhE,EAAUv+D,KAAKgjJ,UAC7BD,GAAS,OAASxkF,EAAUv+D,KAAKgjJ,SAG5BtrL,EAAU,IAAMqrL,GAZKrrL,CAa9B,CAGA,SAASurL,GAAgBj7J,EAAQgY,GAE/Bt3C,MAAMiS,KAAKrU,MAEXA,KAAKmG,KAAO,gBACZnG,KAAK0hC,OAASA,EACd1hC,KAAK05C,KAAOA,EACZ15C,KAAKoR,QAAUorL,GAAYx8L,MAAM,GAG7BoC,MAAMuqI,kBAERvqI,MAAMuqI,kBAAkB3sI,KAAMA,KAAKiC,aAGnCjC,KAAK+oD,OAAS,IAAI3mD,OAAS2mD,OAAS,EAExC,CAIA4zI,GAAgB5zK,UAAY5nB,OAAO4kC,OAAO3jC,MAAM2mB,WAChD4zK,GAAgB5zK,UAAU9mB,YAAc06L,GAGxCA,GAAgB5zK,UAAU1mB,SAAW,SAAkBu0C,GACrD,OAAO52C,KAAKmG,KAAO,KAAOq2L,GAAYx8L,KAAM42C,EAC9C,EAGA,IAAIqhE,GAAY0kF,GAGhB,SAASC,GAAQ/jE,EAAQslC,EAAW0+B,EAASz7J,EAAU07J,GACrD,IAAI7rE,EAAO,GACPr3C,EAAO,GACPmjH,EAAgBhgL,KAAK08F,MAAMqjF,EAAgB,GAAK,EAYpD,OAVI17J,EAAW+8H,EAAY4+B,IAEzB5+B,EAAY/8H,EAAW27J,GADvB9rE,EAAO,SACqCtuH,QAG1Ck6L,EAAUz7J,EAAW27J,IAEvBF,EAAUz7J,EAAW27J,GADrBnjH,EAAO,QACmCj3E,QAGrC,CACLjB,IAAKuvH,EAAO4H,EAAOz0H,MAAM+5J,EAAW0+B,GAASv4L,QAAQ,MAAO,UAAOs1E,EACnE/oD,IAAKuQ,EAAW+8H,EAAYltC,EAAKtuH,OAErC,CAGA,SAASq6L,GAAS7hL,EAAQ6B,GACxB,OAAOo/H,GAAOr+E,OAAO,IAAK/gD,EAAM7B,EAAOxY,QAAUwY,CACnD,CAqEA,IAAIuhL,GAlEJ,SAAqBhjJ,EAAM3pB,GAGzB,GAFAA,EAAU5uB,OAAO4kC,OAAOhW,GAAW,OAE9B2pB,EAAKm/E,OAAQ,OAAO,KAEpB9oG,EAAQ8d,YAAW9d,EAAQ8d,UAAY,IACT,kBAAxB9d,EAAQi8F,SAA0Bj8F,EAAQi8F,OAAc,GAChC,kBAAxBj8F,EAAQktK,cAA0BltK,EAAQktK,YAAc,GAChC,kBAAxBltK,EAAQmtK,aAA0BntK,EAAQmtK,WAAc,GAQnE,IANA,IAGIp9J,EAHA+B,EAAK,eACLs7J,EAAa,CAAE,GACfC,EAAW,GAEXC,GAAe,EAEXv9J,EAAQ+B,EAAG3a,KAAKwyB,EAAKm/E,SAC3BukE,EAAS/5L,KAAKy8B,EAAMhxB,OACpBquL,EAAW95L,KAAKy8B,EAAMhxB,MAAQgxB,EAAM,GAAGn9B,QAEnC+2C,EAAKtY,UAAYtB,EAAMhxB,OAASuuL,EAAc,IAChDA,EAAcF,EAAWx6L,OAAS,GAIlC06L,EAAc,IAAGA,EAAcF,EAAWx6L,OAAS,GAEvD,IAAiBO,EAAGmM,EAAhBiV,EAAS,GACTg5K,EAAevgL,KAAKoV,IAAIunB,EAAKrqC,KAAO0gB,EAAQmtK,WAAYE,EAASz6L,QAAQN,WAAWM,OACpFm6L,EAAgB/sK,EAAQ8d,WAAa9d,EAAQi8F,OAASsxE,EAAe,GAEzE,IAAKp6L,EAAI,EAAGA,GAAK6sB,EAAQktK,eACnBI,EAAcn6L,EAAI,GADcA,IAEpCmM,EAAOutL,GACLljJ,EAAKm/E,OACLskE,EAAWE,EAAcn6L,GACzBk6L,EAASC,EAAcn6L,GACvBw2C,EAAKtY,UAAY+7J,EAAWE,GAAeF,EAAWE,EAAcn6L,IACpE45L,GAEFx4K,EAAS83H,GAAOr+E,OAAO,IAAKhuC,EAAQi8F,QAAUgxE,IAAUtjJ,EAAKrqC,KAAOnM,EAAI,GAAGb,WAAYi7L,GACrF,MAAQjuL,EAAK3N,IAAM,KAAO4iB,EAQ9B,IALAjV,EAAOutL,GAAQljJ,EAAKm/E,OAAQskE,EAAWE,GAAcD,EAASC,GAAc3jJ,EAAKtY,SAAU07J,GAC3Fx4K,GAAU83H,GAAOr+E,OAAO,IAAKhuC,EAAQi8F,QAAUgxE,IAAUtjJ,EAAKrqC,KAAO,GAAGhN,WAAYi7L,GAClF,MAAQjuL,EAAK3N,IAAM,KACrB4iB,GAAU83H,GAAOr+E,OAAO,IAAKhuC,EAAQi8F,OAASsxE,EAAe,EAAIjuL,EAAKwhB,KAA5DurH,MAELl5I,EAAI,EAAGA,GAAK6sB,EAAQmtK,cACnBG,EAAcn6L,GAAKk6L,EAASz6L,QADGO,IAEnCmM,EAAOutL,GACLljJ,EAAKm/E,OACLskE,EAAWE,EAAcn6L,GACzBk6L,EAASC,EAAcn6L,GACvBw2C,EAAKtY,UAAY+7J,EAAWE,GAAeF,EAAWE,EAAcn6L,IACpE45L,GAEFx4K,GAAU83H,GAAOr+E,OAAO,IAAKhuC,EAAQi8F,QAAUgxE,IAAUtjJ,EAAKrqC,KAAOnM,EAAI,GAAGb,WAAYi7L,GACtF,MAAQjuL,EAAK3N,IAAM,KAGvB,OAAO4iB,EAAOhgB,QAAQ,MAAO,GAC/B,EAKIi5L,GAA2B,CAC7B,OACA,QACA,UACA,YACA,aACA,YACA,YACA,gBACA,eACA,gBAGEC,GAAkB,CACpB,SACA,WACA,WA6CF,IAAIviL,GA5BJ,SAAgB2d,EAAK7I,GAuBnB,GAtBAA,EAAUA,GAAW,CAAC,EAEtB5uB,OAAOgW,KAAK4Y,GAASjwB,SAAQ,SAAUqG,GACrC,IAAgD,IAA5Co3L,GAAyB54J,QAAQx+B,GACnC,MAAM,IAAI8xG,GAAU,mBAAqB9xG,EAAO,8BAAgCyyB,EAAM,eAE1F,IAGA54B,KAAK+vB,QAAgBA,EACrB/vB,KAAK44B,IAAgBA,EACrB54B,KAAKkO,KAAgB6hB,EAAc,MAAc,KACjD/vB,KAAK4W,QAAgBmZ,EAAiB,SAAW,WAAc,OAAO,CAAM,EAC5E/vB,KAAKopD,UAAgBr5B,EAAmB,WAAS,SAAU9d,GAAQ,OAAOA,CAAM,EAChFjS,KAAKy9L,WAAgB1tK,EAAoB,YAAQ,KACjD/vB,KAAK09L,UAAgB3tK,EAAmB,WAAS,KACjD/vB,KAAK29L,UAAgB5tK,EAAmB,WAAS,KACjD/vB,KAAK49L,cAAgB7tK,EAAuB,eAAK,KACjD/vB,KAAK61L,aAAgB9lK,EAAsB,cAAM,KACjD/vB,KAAK69L,MAAgB9tK,EAAe,QAAa,EACjD/vB,KAAK89L,aAnCP,SAA6B1uK,GAC3B,IAAI9K,EAAS,CAAC,EAUd,OARY,OAAR8K,GACFjuB,OAAOgW,KAAKiY,GAAKtvB,SAAQ,SAAUghC,GACjC1R,EAAI0R,GAAOhhC,SAAQ,SAAUo6F,GAC3B51E,EAAO2f,OAAOi2D,IAAUp5D,CAC1B,GACF,IAGKxc,CACT,CAuBuBy5K,CAAoBhuK,EAAsB,cAAK,OAExB,IAAxCytK,GAAgB74J,QAAQ3kC,KAAKkO,MAC/B,MAAM,IAAI+pG,GAAU,iBAAmBj4G,KAAKkO,KAAO,uBAAyB0qB,EAAM,eAEtF,EAUA,SAASolK,GAAYrrL,EAAQxM,GAC3B,IAAIme,EAAS,GAiBb,OAfA3R,EAAOxM,GAAMrG,SAAQ,SAAUm+L,GAC7B,IAAIC,EAAW55K,EAAO3hB,OAEtB2hB,EAAOxkB,SAAQ,SAAUq+L,EAAcC,GACjCD,EAAavlK,MAAQqlK,EAAYrlK,KACjCulK,EAAajwL,OAAS+vL,EAAY/vL,MAClCiwL,EAAaN,QAAUI,EAAYJ,QAErCK,EAAWE,EAEf,IAEA95K,EAAO45K,GAAYD,CACrB,IAEO35K,CACT,CAiCA,SAAS+5K,GAASvgL,GAChB,OAAO9d,KAAKk/B,OAAOphB,EACrB,CAGAugL,GAASt1K,UAAUmW,OAAS,SAAgBphB,GAC1C,IAAIwgL,EAAW,GACXC,EAAW,GAEf,GAAIzgL,aAAsB7C,GAExBsjL,EAASl7L,KAAKya,QAET,GAAI/Z,MAAMC,QAAQ8Z,GAEvBygL,EAAWA,EAASz6J,OAAOhmB,OAEtB,KAAIA,IAAe/Z,MAAMC,QAAQ8Z,EAAWwgL,YAAav6L,MAAMC,QAAQ8Z,EAAWygL,UAMvF,MAAM,IAAItmF,GAAU,oHAJhBn6F,EAAWwgL,WAAUA,EAAWA,EAASx6J,OAAOhmB,EAAWwgL,WAC3DxgL,EAAWygL,WAAUA,EAAWA,EAASz6J,OAAOhmB,EAAWygL,UAKjE,CAEAD,EAASx+L,SAAQ,SAAU0+L,GACzB,KAAMA,aAAkBvjL,IACtB,MAAM,IAAIg9F,GAAU,sFAGtB,GAAIumF,EAAOC,UAAgC,WAApBD,EAAOC,SAC5B,MAAM,IAAIxmF,GAAU,mHAGtB,GAAIumF,EAAOX,MACT,MAAM,IAAI5lF,GAAU,qGAExB,IAEAsmF,EAASz+L,SAAQ,SAAU0+L,GACzB,KAAMA,aAAkBvjL,IACtB,MAAM,IAAIg9F,GAAU,qFAExB,IAEA,IAAI3zF,EAASnjB,OAAO4kC,OAAOs4J,GAASt1K,WASpC,OAPAzE,EAAOg6K,UAAYt+L,KAAKs+L,UAAY,IAAIx6J,OAAOw6J,GAC/Ch6K,EAAOi6K,UAAYv+L,KAAKu+L,UAAY,IAAIz6J,OAAOy6J,GAE/Cj6K,EAAOo6K,iBAAmBV,GAAY15K,EAAQ,YAC9CA,EAAOq6K,iBAAmBX,GAAY15K,EAAQ,YAC9CA,EAAOs6K,gBApFT,WACE,IAWO9vL,EAAOnM,EAXV2hB,EAAS,CACP2nF,OAAQ,CAAC,EACTu3D,SAAU,CAAC,EACX1qI,QAAS,CAAC,EACV0jD,SAAU,CAAC,EACXqhH,MAAO,CACL5xF,OAAQ,GACRu3D,SAAU,GACV1qI,QAAS,GACT0jD,SAAU,KAIlB,SAASqiH,EAAY5jL,GACfA,EAAK4iL,OACPv5K,EAAOu5K,MAAM5iL,EAAK/M,MAAM7K,KAAK4X,GAC7BqJ,EAAOu5K,MAAgB,SAAEx6L,KAAK4X,IAE9BqJ,EAAOrJ,EAAK/M,MAAM+M,EAAK2d,KAAOtU,EAAiB,SAAErJ,EAAK2d,KAAO3d,CAEjE,CAEA,IAAKnM,EAAQ,EAAGnM,EAAS48B,UAAU58B,OAAQmM,EAAQnM,EAAQmM,GAAS,EAClEywB,UAAUzwB,GAAOhP,QAAQ++L,GAE3B,OAAOv6K,CACT,CAyD4Bw6K,CAAWx6K,EAAOo6K,iBAAkBp6K,EAAOq6K,kBAE9Dr6K,CACT,EAGA,IAAI3R,GAAS0rL,GAET38L,GAAM,IAAIuZ,GAAK,wBAAyB,CAC1C/M,KAAM,SACNk7C,UAAW,SAAUn3C,GAAQ,OAAgB,OAATA,EAAgBA,EAAO,EAAI,IAG7D8sL,GAAM,IAAI9jL,GAAK,wBAAyB,CAC1C/M,KAAM,WACNk7C,UAAW,SAAUn3C,GAAQ,OAAgB,OAATA,EAAgBA,EAAO,EAAI,IAG7Dmd,GAAM,IAAInU,GAAK,wBAAyB,CAC1C/M,KAAM,UACNk7C,UAAW,SAAUn3C,GAAQ,OAAgB,OAATA,EAAgBA,EAAO,CAAC,CAAG,IAG7D+sL,GAAW,IAAIrsL,GAAO,CACxB4rL,SAAU,CACR78L,GACAq9L,GACA3vK,MAqBJ,IAAI6vK,GAAQ,IAAIhkL,GAAK,yBAA0B,CAC7C/M,KAAM,SACN0I,QAnBF,SAAyB3E,GACvB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAI+K,EAAM/K,EAAKtP,OAEf,OAAgB,IAARqa,GAAsB,MAAT/K,GACL,IAAR+K,IAAuB,SAAT/K,GAA4B,SAATA,GAA4B,SAATA,EAC9D,EAaEm3C,UAXF,WACE,OAAO,IACT,EAUEs0I,UARF,SAAgBjyL,GACd,OAAkB,OAAXA,CACT,EAOEkyL,UAAW,CACTuB,UAAW,WAAc,MAAO,GAAQ,EACxCC,UAAW,WAAc,MAAO,MAAQ,EACxCC,UAAW,WAAc,MAAO,MAAQ,EACxCj6J,UAAW,WAAc,MAAO,MAAQ,EACxCT,MAAW,WAAc,MAAO,EAAQ,GAE1CmxJ,aAAc,cAsBhB,IAAIwJ,GAAO,IAAIpkL,GAAK,yBAA0B,CAC5C/M,KAAM,SACN0I,QArBF,SAA4B3E,GAC1B,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAI+K,EAAM/K,EAAKtP,OAEf,OAAgB,IAARqa,IAAuB,SAAT/K,GAA4B,SAATA,GAA4B,SAATA,IAC5C,IAAR+K,IAAuB,UAAT/K,GAA6B,UAATA,GAA6B,UAATA,EAChE,EAeEm3C,UAbF,SAA8Bn3C,GAC5B,MAAgB,SAATA,GACS,SAATA,GACS,SAATA,CACT,EAUEyrL,UARF,SAAmBjyL,GACjB,MAAkD,qBAA3CtK,OAAO4nB,UAAU1mB,SAASgS,KAAK5I,EACxC,EAOEkyL,UAAW,CACTwB,UAAW,SAAU1zL,GAAU,OAAOA,EAAS,OAAS,OAAS,EACjE2zL,UAAW,SAAU3zL,GAAU,OAAOA,EAAS,OAAS,OAAS,EACjE05B,UAAW,SAAU15B,GAAU,OAAOA,EAAS,OAAS,OAAS,GAEnEoqL,aAAc,cAShB,SAASyJ,GAAUv8L,GACjB,OAAS,IAAeA,GAAOA,GAAK,EACtC,CAEA,SAASw8L,GAAUx8L,GACjB,OAAS,IAAeA,GAAOA,GAAK,EACtC,CAuHA,IAAIy8L,GAAM,IAAIvkL,GAAK,wBAAyB,CAC1C/M,KAAM,SACN0I,QAvHF,SAA4B3E,GAC1B,GAAa,OAATA,EAAe,OAAO,EAE1B,IAGI++D,EApBajuE,EAiBbia,EAAM/K,EAAKtP,OACXmM,EAAQ,EACR2wL,GAAY,EAGhB,IAAKziL,EAAK,OAAO,EASjB,GAJW,OAHXg0D,EAAK/+D,EAAKnD,KAGe,MAAPkiE,IAChBA,EAAK/+D,IAAOnD,IAGH,MAAPkiE,EAAY,CAEd,GAAIliE,EAAQ,IAAMkO,EAAK,OAAO,EAK9B,GAAW,OAJXg0D,EAAK/+D,IAAOnD,IAII,CAId,IAFAA,IAEOA,EAAQkO,EAAKlO,IAElB,GAAW,OADXkiE,EAAK/+D,EAAKnD,IACV,CACA,GAAW,MAAPkiE,GAAqB,MAAPA,EAAY,OAAO,EACrCyuH,GAAY,CAFY,CAI1B,OAAOA,GAAoB,MAAPzuH,CACtB,CAGA,GAAW,MAAPA,EAAY,CAId,IAFAliE,IAEOA,EAAQkO,EAAKlO,IAElB,GAAW,OADXkiE,EAAK/+D,EAAKnD,IACV,CACA,KA1DG,KADQ/L,EA2DIkP,EAAK6e,WAAWhiB,KA1DN/L,GAAK,IAC3B,IAAeA,GAAOA,GAAK,IAC3B,IAAeA,GAAOA,GAAK,KAwDU,OAAO,EAC/C08L,GAAY,CAFY,CAI1B,OAAOA,GAAoB,MAAPzuH,CACtB,CAGA,GAAW,MAAPA,EAAY,CAId,IAFAliE,IAEOA,EAAQkO,EAAKlO,IAElB,GAAW,OADXkiE,EAAK/+D,EAAKnD,IACV,CACA,IAAKwwL,GAAUrtL,EAAK6e,WAAWhiB,IAAS,OAAO,EAC/C2wL,GAAY,CAFY,CAI1B,OAAOA,GAAoB,MAAPzuH,CACtB,CACF,CAKA,GAAW,MAAPA,EAAY,OAAO,EAEvB,KAAOliE,EAAQkO,EAAKlO,IAElB,GAAW,OADXkiE,EAAK/+D,EAAKnD,IACV,CACA,IAAKywL,GAAUttL,EAAK6e,WAAWhiB,IAC7B,OAAO,EAET2wL,GAAY,CAJY,CAQ1B,SAAKA,GAAoB,MAAPzuH,EAGpB,EAoCE5nB,UAlCF,SAA8Bn3C,GAC5B,IAA4B++D,EAAxB3vE,EAAQ4Q,EAAMytL,EAAO,EAczB,IAZ4B,IAAxBr+L,EAAMsjC,QAAQ,OAChBtjC,EAAQA,EAAMiD,QAAQ,KAAM,KAKnB,OAFX0sE,EAAK3vE,EAAM,KAEc,MAAP2vE,IACL,MAAPA,IAAY0uH,GAAQ,GAExB1uH,GADA3vE,EAAQA,EAAM+C,MAAM,IACT,IAGC,MAAV/C,EAAe,OAAO,EAE1B,GAAW,MAAP2vE,EAAY,CACd,GAAiB,MAAb3vE,EAAM,GAAY,OAAOq+L,EAAOvmF,SAAS93G,EAAM+C,MAAM,GAAI,GAC7D,GAAiB,MAAb/C,EAAM,GAAY,OAAOq+L,EAAOvmF,SAAS93G,EAAM+C,MAAM,GAAI,IAC7D,GAAiB,MAAb/C,EAAM,GAAY,OAAOq+L,EAAOvmF,SAAS93G,EAAM+C,MAAM,GAAI,EAC/D,CAEA,OAAOs7L,EAAOvmF,SAAS93G,EAAO,GAChC,EAWEq8L,UATF,SAAmBjyL,GACjB,MAAoD,oBAA5CtK,OAAO4nB,UAAU1mB,SAASgS,KAAK5I,IAC/BA,EAAS,IAAM,IAAM2wI,GAAOmgD,eAAe9wL,EACrD,EAOEkyL,UAAW,CACTgC,OAAa,SAAU/yL,GAAO,OAAOA,GAAO,EAAI,KAAOA,EAAIvK,SAAS,GAAK,MAAQuK,EAAIvK,SAAS,GAAG+B,MAAM,EAAI,EAC3Gw7L,MAAa,SAAUhzL,GAAO,OAAOA,GAAO,EAAI,KAAQA,EAAIvK,SAAS,GAAK,MAASuK,EAAIvK,SAAS,GAAG+B,MAAM,EAAI,EAC7GqnH,QAAa,SAAU7+G,GAAO,OAAOA,EAAIvK,SAAS,GAAK,EAEvDupH,YAAa,SAAUh/G,GAAO,OAAOA,GAAO,EAAI,KAAOA,EAAIvK,SAAS,IAAI+iC,cAAiB,MAAQx4B,EAAIvK,SAAS,IAAI+iC,cAAchhC,MAAM,EAAI,GAE5IyxL,aAAc,UACdiI,aAAc,CACZ6B,OAAa,CAAE,EAAI,OACnBC,MAAa,CAAE,EAAI,OACnBn0E,QAAa,CAAE,GAAI,OACnBG,YAAa,CAAE,GAAI,UAInBi0E,GAAqB,IAAIl2K,OAE3B,4IA0CF,IAAIm2K,GAAyB,gBAwC7B,IAAIC,GAAQ,IAAI9kL,GAAK,0BAA2B,CAC9C/M,KAAM,SACN0I,QA3EF,SAA0B3E,GACxB,OAAa,OAATA,MAEC4tL,GAAmB19L,KAAK8P,IAGC,MAA1BA,EAAKA,EAAKtP,OAAS,GAKzB,EAiEEymD,UA/DF,SAA4Bn3C,GAC1B,IAAI5Q,EAAOq+L,EASX,OANAA,EAAsB,OADtBr+L,EAAS4Q,EAAK3N,QAAQ,KAAM,IAAI4+B,eACjB,IAAc,EAAI,EAE7B,KAAKyB,QAAQtjC,EAAM,KAAO,IAC5BA,EAAQA,EAAM+C,MAAM,IAGR,SAAV/C,EACe,IAATq+L,EAAct7J,OAAOw2H,kBAAoBx2H,OAAOi4J,kBAErC,SAAVh7L,EACF2+L,IAEFN,EAAOO,WAAW5+L,EAAO,GAClC,EA+CEq8L,UATF,SAAiBjyL,GACf,MAAmD,oBAA3CtK,OAAO4nB,UAAU1mB,SAASgS,KAAK5I,KAC/BA,EAAS,IAAM,GAAK2wI,GAAOmgD,eAAe9wL,GACpD,EAOEkyL,UA3CF,SAA4BlyL,EAAQq1B,GAClC,IAAIr9B,EAEJ,GAAI0gC,MAAM14B,GACR,OAAQq1B,GACN,IAAK,YAAa,MAAO,OACzB,IAAK,YAAa,MAAO,OACzB,IAAK,YAAa,MAAO,YAEtB,GAAIsD,OAAOw2H,oBAAsBnvJ,EACtC,OAAQq1B,GACN,IAAK,YAAa,MAAO,OACzB,IAAK,YAAa,MAAO,OACzB,IAAK,YAAa,MAAO,YAEtB,GAAIsD,OAAOi4J,oBAAsB5wL,EACtC,OAAQq1B,GACN,IAAK,YAAa,MAAO,QACzB,IAAK,YAAa,MAAO,QACzB,IAAK,YAAa,MAAO,aAEtB,GAAIs7G,GAAOmgD,eAAe9wL,GAC/B,MAAO,OAQT,OALAhI,EAAMgI,EAAOpJ,SAAS,IAKfy9L,GAAuB39L,KAAKsB,GAAOA,EAAIa,QAAQ,IAAK,MAAQb,CACrE,EAaEoyL,aAAc,cAGZv9K,GAAO0mL,GAAS9/J,OAAO,CACzBo/J,SAAU,CACRW,GACAI,GACAG,GACAO,MAIAroK,GAAOpf,GAEP4nL,GAAmB,IAAIv2K,OACzB,sDAIEw2K,GAAwB,IAAIx2K,OAC9B,oLAuEF,IAAIo2H,GAAY,IAAI9kI,GAAK,8BAA+B,CACtD/M,KAAM,SACN0I,QA9DF,SAA8B3E,GAC5B,OAAa,OAATA,IACgC,OAAhCiuL,GAAiBh5K,KAAKjV,IACe,OAArCkuL,GAAsBj5K,KAAKjV,GAEjC,EA0DEm3C,UAxDF,SAAgCn3C,GAC9B,IAAI6tB,EAAOsgK,EAAM7/H,EAAO8/H,EAAKC,EAAMC,EAAQC,EACLpgI,EADaqgI,EAAW,EAC1D3iE,EAAQ,KAKZ,GAFc,QADdh+F,EAAQogK,GAAiBh5K,KAAKjV,MACV6tB,EAAQqgK,GAAsBj5K,KAAKjV,IAEzC,OAAV6tB,EAAgB,MAAM,IAAI19B,MAAM,sBAQpC,GAJAg+L,GAAStgK,EAAM,GACfygC,GAAUzgC,EAAM,GAAM,EACtBugK,GAAQvgK,EAAM,IAETA,EAAM,GACT,OAAO,IAAIk6B,KAAKA,KAAK0mI,IAAIN,EAAM7/H,EAAO8/H,IASxC,GAJAC,GAASxgK,EAAM,GACfygK,GAAWzgK,EAAM,GACjB0gK,GAAW1gK,EAAM,GAEbA,EAAM,GAAI,CAEZ,IADA2gK,EAAW3gK,EAAM,GAAG17B,MAAM,EAAG,GACtBq8L,EAAS99L,OAAS,GACvB89L,GAAY,IAEdA,GAAYA,CACd,CAeA,OAXI3gK,EAAM,KAGRg+F,EAAqC,KAAlB,IAFPh+F,EAAM,OACJA,EAAM,KAAO,IAEV,MAAbA,EAAM,KAAYg+F,GAASA,IAGjC19D,EAAO,IAAIpG,KAAKA,KAAK0mI,IAAIN,EAAM7/H,EAAO8/H,EAAKC,EAAMC,EAAQC,EAAQC,IAE7D3iE,GAAO19D,EAAKugI,QAAQvgI,EAAKwgI,UAAY9iE,GAElC19D,CACT,EAUEq9H,WAAYzjI,KACZ2jI,UATF,SAAgClyL,GAC9B,OAAOA,EAAO0sI,aAChB,IAcA,IAAIzyG,GAAQ,IAAIzqB,GAAK,0BAA2B,CAC9C/M,KAAM,SACN0I,QANF,SAA0B3E,GACxB,MAAgB,OAATA,GAA0B,OAATA,CAC1B,IAcI4uL,GAAa,wEA6GjB,IAAIlB,GAAS,IAAI1kL,GAAK,2BAA4B,CAChD/M,KAAM,SACN0I,QA5GF,SAA2B3E,GACzB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAIxP,EAAMk6H,EAAKmkE,EAAS,EAAG9jL,EAAM/K,EAAKtP,OAAQysB,EAAMyxK,GAGpD,IAAKlkE,EAAM,EAAGA,EAAM3/G,EAAK2/G,IAIvB,MAHAl6H,EAAO2sB,EAAIuV,QAAQ1yB,EAAKgwB,OAAO06F,KAGpB,IAAX,CAGA,GAAIl6H,EAAO,EAAG,OAAO,EAErBq+L,GAAU,CALa,CASzB,OAAQA,EAAS,IAAO,CAC1B,EAyFE13I,UAvFF,SAA6Bn3C,GAC3B,IAAI0qH,EAAKokE,EACLt8J,EAAQxyB,EAAK3N,QAAQ,WAAY,IACjC0Y,EAAMynB,EAAM9hC,OACZysB,EAAMyxK,GACNG,EAAO,EACP18K,EAAS,GAIb,IAAKq4G,EAAM,EAAGA,EAAM3/G,EAAK2/G,IAClBA,EAAM,IAAM,GAAMA,IACrBr4G,EAAOjhB,KAAM29L,GAAQ,GAAM,KAC3B18K,EAAOjhB,KAAM29L,GAAQ,EAAK,KAC1B18K,EAAOjhB,KAAY,IAAP29L,IAGdA,EAAQA,GAAQ,EAAK5xK,EAAIuV,QAAQF,EAAMxC,OAAO06F,IAkBhD,OAXiB,KAFjBokE,EAAY/jL,EAAM,EAAK,IAGrBsH,EAAOjhB,KAAM29L,GAAQ,GAAM,KAC3B18K,EAAOjhB,KAAM29L,GAAQ,EAAK,KAC1B18K,EAAOjhB,KAAY,IAAP29L,IACU,KAAbD,GACTz8K,EAAOjhB,KAAM29L,GAAQ,GAAM,KAC3B18K,EAAOjhB,KAAM29L,GAAQ,EAAK,MACJ,KAAbD,GACTz8K,EAAOjhB,KAAM29L,GAAQ,EAAK,KAGrB,IAAI9tD,WAAW5uH,EACxB,EAoDEo5K,UARF,SAAkB9wL,GAChB,MAAgD,wBAAzCzL,OAAO4nB,UAAU1mB,SAASgS,KAAKzH,EACxC,EAOE+wL,UAnDF,SAA6BlyL,GAC3B,IAA2BkxH,EAAK/iD,EAA5Bt1D,EAAS,GAAI08K,EAAO,EACpBhkL,EAAMvR,EAAO9I,OACbysB,EAAMyxK,GAIV,IAAKlkE,EAAM,EAAGA,EAAM3/G,EAAK2/G,IAClBA,EAAM,IAAM,GAAMA,IACrBr4G,GAAU8K,EAAK4xK,GAAQ,GAAM,IAC7B18K,GAAU8K,EAAK4xK,GAAQ,GAAM,IAC7B18K,GAAU8K,EAAK4xK,GAAQ,EAAK,IAC5B18K,GAAU8K,EAAW,GAAP4xK,IAGhBA,GAAQA,GAAQ,GAAKv1L,EAAOkxH,GAwB9B,OAjBa,KAFb/iD,EAAO58D,EAAM,IAGXsH,GAAU8K,EAAK4xK,GAAQ,GAAM,IAC7B18K,GAAU8K,EAAK4xK,GAAQ,GAAM,IAC7B18K,GAAU8K,EAAK4xK,GAAQ,EAAK,IAC5B18K,GAAU8K,EAAW,GAAP4xK,IACI,IAATpnH,GACTt1D,GAAU8K,EAAK4xK,GAAQ,GAAM,IAC7B18K,GAAU8K,EAAK4xK,GAAQ,EAAK,IAC5B18K,GAAU8K,EAAK4xK,GAAQ,EAAK,IAC5B18K,GAAU8K,EAAI,KACI,IAATwqD,IACTt1D,GAAU8K,EAAK4xK,GAAQ,EAAK,IAC5B18K,GAAU8K,EAAK4xK,GAAQ,EAAK,IAC5B18K,GAAU8K,EAAI,IACd9K,GAAU8K,EAAI,KAGT9K,CACT,IAcI28K,GAAoB9/L,OAAO4nB,UAAUC,eACrCk4K,GAAoB//L,OAAO4nB,UAAU1mB,SAkCzC,IAAI8+L,GAAO,IAAIlmL,GAAK,yBAA0B,CAC5C/M,KAAM,WACN0I,QAlCF,SAAyB3E,GACvB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAqBnD,EAAOnM,EAAQkmH,EAAMu4E,EAASC,EAA/CC,EAAa,GACb71L,EAASwG,EAEb,IAAKnD,EAAQ,EAAGnM,EAAS8I,EAAO9I,OAAQmM,EAAQnM,EAAQmM,GAAS,EAAG,CAIlE,GAHA+5G,EAAOp9G,EAAOqD,GACduyL,GAAa,EAEkB,oBAA3BH,GAAY7sL,KAAKw0G,GAA6B,OAAO,EAEzD,IAAKu4E,KAAWv4E,EACd,GAAIo4E,GAAkB5sL,KAAKw0G,EAAMu4E,GAAU,CACzC,GAAKC,EACA,OAAO,EADKA,GAAa,CAEhC,CAGF,IAAKA,EAAY,OAAO,EAExB,IAAqC,IAAjCC,EAAW38J,QAAQy8J,GAClB,OAAO,EAD4BE,EAAWj+L,KAAK+9L,EAE1D,CAEA,OAAO,CACT,EASEh4I,UAPF,SAA2Bn3C,GACzB,OAAgB,OAATA,EAAgBA,EAAO,EAChC,IAQIsvL,GAAcpgM,OAAO4nB,UAAU1mB,SA4CnC,IAAIg/K,GAAQ,IAAIpmK,GAAK,0BAA2B,CAC9C/M,KAAM,WACN0I,QA5CF,SAA0B3E,GACxB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAInD,EAAOnM,EAAQkmH,EAAM1xG,EAAMmN,EAC3B7Y,EAASwG,EAIb,IAFAqS,EAAS,IAAIvgB,MAAM0H,EAAO9I,QAErBmM,EAAQ,EAAGnM,EAAS8I,EAAO9I,OAAQmM,EAAQnM,EAAQmM,GAAS,EAAG,CAGlE,GAFA+5G,EAAOp9G,EAAOqD,GAEiB,oBAA3ByyL,GAAYltL,KAAKw0G,GAA6B,OAAO,EAIzD,GAAoB,KAFpB1xG,EAAOhW,OAAOgW,KAAK0xG,IAEVlmH,OAAc,OAAO,EAE9B2hB,EAAOxV,GAAS,CAAEqI,EAAK,GAAI0xG,EAAK1xG,EAAK,IACvC,CAEA,OAAO,CACT,EAwBEiyC,UAtBF,SAA4Bn3C,GAC1B,GAAa,OAATA,EAAe,MAAO,GAE1B,IAAInD,EAAOnM,EAAQkmH,EAAM1xG,EAAMmN,EAC3B7Y,EAASwG,EAIb,IAFAqS,EAAS,IAAIvgB,MAAM0H,EAAO9I,QAErBmM,EAAQ,EAAGnM,EAAS8I,EAAO9I,OAAQmM,EAAQnM,EAAQmM,GAAS,EAC/D+5G,EAAOp9G,EAAOqD,GAEdqI,EAAOhW,OAAOgW,KAAK0xG,GAEnBvkG,EAAOxV,GAAS,CAAEqI,EAAK,GAAI0xG,EAAK1xG,EAAK,KAGvC,OAAOmN,CACT,IAQIk9K,GAAoBrgM,OAAO4nB,UAAUC,eAoBzC,IAAIpZ,GAAM,IAAIqL,GAAK,wBAAyB,CAC1C/M,KAAM,UACN0I,QApBF,SAAwB3E,GACtB,GAAa,OAATA,EAAe,OAAO,EAE1B,IAAIxN,EAAKgH,EAASwG,EAElB,IAAKxN,KAAOgH,EACV,GAAI+1L,GAAkBntL,KAAK5I,EAAQhH,IACb,OAAhBgH,EAAOhH,GAAe,OAAO,EAIrC,OAAO,CACT,EASE2kD,UAPF,SAA0Bn3C,GACxB,OAAgB,OAATA,EAAgBA,EAAO,CAAC,CACjC,IAQIwvL,GAAW/pK,GAAKwH,OAAO,CACzBo/J,SAAU,CACRv+C,GACAr6G,IAEF64J,SAAU,CACRoB,GACAwB,GACA9f,GACAzxK,MAYA8xL,GAAoBvgM,OAAO4nB,UAAUC,eAGrC24K,GAAoB,EACpBC,GAAoB,EACpBC,GAAoB,EACpBC,GAAoB,EAGpBC,GAAiB,EACjBC,GAAiB,EACjBC,GAAiB,EAGjBC,GAAgC,sIAChCC,GAAgC,qBAChCC,GAAgC,cAChCC,GAAgC,yBAChCC,GAAgC,mFAGpC,SAASC,GAAO31L,GAAO,OAAOzL,OAAO4nB,UAAU1mB,SAASgS,KAAKzH,EAAM,CAEnE,SAAS41L,GAAOz/L,GACd,OAAc,KAANA,GAA8B,KAANA,CAClC,CAEA,SAAS0/L,GAAe1/L,GACtB,OAAc,IAANA,GAA+B,KAANA,CACnC,CAEA,SAAS2/L,GAAa3/L,GACpB,OAAc,IAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,CACV,CAEA,SAAS4/L,GAAkB5/L,GACzB,OAAa,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,CACT,CAEA,SAAS6/L,GAAY7/L,GACnB,IAAIkxD,EAEJ,OAAK,IAAelxD,GAAOA,GAAK,GACvBA,EAAI,GAMR,KAFLkxD,EAAS,GAAJlxD,IAEuBkxD,GAAM,IACzBA,EAAK,GAAO,IAGb,CACV,CAiBA,SAAS4uI,GAAqB9/L,GAE5B,OAAc,KAANA,EAAqB,KAChB,KAANA,EAAqB,OACf,KAANA,EAAqB,KACf,MAANA,GACM,IAANA,EADqB,KAEf,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,OACf,KAANA,EAAyB,IACnB,KAANA,EAAqB,IACf,KAANA,EAAqB,IACf,KAANA,EAAqB,KACf,KAANA,EAAqB,OACf,KAANA,EAAqB,OACf,KAANA,EAAqB,SACf,KAANA,EAAqB,SAAW,EACzC,CAEA,SAAS+/L,GAAkB//L,GACzB,OAAIA,GAAK,MACAkhC,OAAO45B,aAAa96D,GAItBkhC,OAAO45B,aACa,OAAvB96D,EAAI,OAAa,IACS,OAA1BA,EAAI,MAAY,MAEtB,CAIA,IAFA,IAAIggM,GAAoB,IAAIh/L,MAAM,KAC9Bi/L,GAAkB,IAAIj/L,MAAM,KACvBb,GAAI,EAAGA,GAAI,IAAKA,KACvB6/L,GAAkB7/L,IAAK2/L,GAAqB3/L,IAAK,EAAI,EACrD8/L,GAAgB9/L,IAAK2/L,GAAqB3/L,IAI5C,SAAS+/L,GAAQx+J,EAAO1U,GACtB/vB,KAAKykC,MAAQA,EAEbzkC,KAAK2hC,SAAY5R,EAAkB,UAAM,KACzC/vB,KAAK2S,OAAYod,EAAgB,QAAQ0xK,GACzCzhM,KAAKkjM,UAAYnzK,EAAmB,WAAK,KAGzC/vB,KAAK2rH,OAAY57F,EAAgB,SAAQ,EAEzC/vB,KAAKsY,KAAYyX,EAAc,OAAU,EACzC/vB,KAAKqmE,SAAYt2C,EAAkB,UAAM,KAEzC/vB,KAAKmjM,cAAgBnjM,KAAK2S,OAAO+rL,iBACjC1+L,KAAKojM,QAAgBpjM,KAAK2S,OAAOisL,gBAEjC5+L,KAAK2C,OAAa8hC,EAAM9hC,OACxB3C,KAAKohC,SAAa,EAClBphC,KAAKqP,KAAa,EAClBrP,KAAKm+J,UAAa,EAClBn+J,KAAKqjM,WAAa,EAIlBrjM,KAAKsjM,gBAAkB,EAEvBtjM,KAAKujM,UAAY,EAYnB,CAGA,SAASC,GAAc70H,EAAOv9D,GAC5B,IAAIsoC,EAAO,CACTvzC,KAAUwoE,EAAMhtC,SAChBk3F,OAAUlqD,EAAMlqC,MAAMrgC,MAAM,GAAI,GAChCg9B,SAAUutC,EAAMvtC,SAChB/xB,KAAUs/D,EAAMt/D,KAChB4xB,OAAU0tC,EAAMvtC,SAAWutC,EAAMwvF,WAKnC,OAFAzkH,EAAKgjJ,QAAUA,GAAQhjJ,GAEhB,IAAIu+D,GAAU7mG,EAASsoC,EAChC,CAEA,SAAS+pJ,GAAW90H,EAAOv9D,GACzB,MAAMoyL,GAAc70H,EAAOv9D,EAC7B,CAEA,SAASsyL,GAAa/0H,EAAOv9D,GACvBu9D,EAAMu0H,WACRv0H,EAAMu0H,UAAU7uL,KAAK,KAAMmvL,GAAc70H,EAAOv9D,GAEpD,CAGA,IAAIuyL,GAAoB,CAEtBC,KAAM,SAA6Bj1H,EAAOxoE,EAAMhD,GAE9C,IAAI28B,EAAO+jK,EAAOC,EAEI,OAAlBn1H,EAAMp2B,SACRkrJ,GAAW90H,EAAO,kCAGA,IAAhBxrE,EAAKR,QACP8gM,GAAW90H,EAAO,+CAKN,QAFd7uC,EAAQ,uBAAuB5Y,KAAK/jB,EAAK,MAGvCsgM,GAAW90H,EAAO,6CAGpBk1H,EAAQ1qF,SAASr5E,EAAM,GAAI,IAC3BgkK,EAAQ3qF,SAASr5E,EAAM,GAAI,IAEb,IAAV+jK,GACFJ,GAAW90H,EAAO,6CAGpBA,EAAMp2B,QAAUp1C,EAAK,GACrBwrE,EAAMo1H,gBAAmBD,EAAQ,EAEnB,IAAVA,GAAyB,IAAVA,GACjBJ,GAAa/0H,EAAO,2CAExB,EAEAq1H,IAAK,SAA4Br1H,EAAOxoE,EAAMhD,GAE5C,IAAI+mI,EAAQ7/H,EAEQ,IAAhBlH,EAAKR,QACP8gM,GAAW90H,EAAO,+CAGpBu7D,EAAS/mI,EAAK,GACdkH,EAASlH,EAAK,GAETk/L,GAAmBlgM,KAAK+nI,IAC3Bu5D,GAAW90H,EAAO,+DAGhB+yH,GAAkBrtL,KAAKs6D,EAAMs1H,OAAQ/5D,IACvCu5D,GAAW90H,EAAO,8CAAgDu7D,EAAS,gBAGxEo4D,GAAgBngM,KAAKkI,IACxBo5L,GAAW90H,EAAO,gEAGpB,IACEtkE,EAASsS,mBAAmBtS,EAC9B,CAAE,MAAOoG,GACPgzL,GAAW90H,EAAO,4BAA8BtkE,EAClD,CAEAskE,EAAMs1H,OAAO/5D,GAAU7/H,CACzB,GAIF,SAAS65L,GAAev1H,EAAO5uC,EAAOwB,EAAK4iK,GACzC,IAAIC,EAAWC,EAASC,EAAY9sG,EAEpC,GAAIz3D,EAAQwB,EAAK,CAGf,GAFAi2D,EAAU7oB,EAAMlqC,MAAMrgC,MAAM27B,EAAOwB,GAE/B4iK,EACF,IAAKC,EAAY,EAAGC,EAAU7sG,EAAQ70F,OAAQyhM,EAAYC,EAASD,GAAa,EAEzD,KADrBE,EAAa9sG,EAAQ1mE,WAAWszK,KAEzB,IAAQE,GAAcA,GAAc,SACzCb,GAAW90H,EAAO,sCAGbuzH,GAAsB//L,KAAKq1F,IACpCisG,GAAW90H,EAAO,gDAGpBA,EAAMrqD,QAAUkzE,CAClB,CACF,CAEA,SAAS+sG,GAAc51H,EAAOgsG,EAAaxlK,EAAQqvL,GACjD,IAAIhU,EAAY/rL,EAAKqK,EAAO21L,EAQ5B,IANKroD,GAAOlK,SAAS/8H,IACnBsuL,GAAW90H,EAAO,qEAKf7/D,EAAQ,EAAG21L,GAFhBjU,EAAarvL,OAAOgW,KAAKhC,IAEaxS,OAAQmM,EAAQ21L,EAAU31L,GAAS,EACvErK,EAAM+rL,EAAW1hL,GAEZ4yL,GAAkBrtL,KAAKsmK,EAAal2K,KACvCk2K,EAAYl2K,GAAO0Q,EAAO1Q,GAC1B+/L,EAAgB//L,IAAO,EAG7B,CAEA,SAASigM,GAAiB/1H,EAAO6oB,EAASgtG,EAAiBG,EAAQC,EAASC,EAC1EC,EAAWC,EAAgBvzE,GAE3B,IAAI1iH,EAAO21L,EAKX,GAAI1gM,MAAMC,QAAQ4gM,GAGhB,IAAK91L,EAAQ,EAAG21L,GAFhBG,EAAU7gM,MAAMglB,UAAU3kB,MAAMiQ,KAAKuwL,IAEFjiM,OAAQmM,EAAQ21L,EAAU31L,GAAS,EAChE/K,MAAMC,QAAQ4gM,EAAQ91L,KACxB20L,GAAW90H,EAAO,+CAGG,kBAAZi2H,GAAmD,oBAA3BrC,GAAOqC,EAAQ91L,MAChD81L,EAAQ91L,GAAS,mBAmBvB,GAXuB,kBAAZ81L,GAA4C,oBAApBrC,GAAOqC,KACxCA,EAAU,mBAIZA,EAAU3gK,OAAO2gK,GAED,OAAZptG,IACFA,EAAU,CAAC,GAGE,4BAAXmtG,EACF,GAAI5gM,MAAMC,QAAQ6gM,GAChB,IAAK/1L,EAAQ,EAAG21L,EAAWI,EAAUliM,OAAQmM,EAAQ21L,EAAU31L,GAAS,EACtEy1L,GAAc51H,EAAO6oB,EAASqtG,EAAU/1L,GAAQ01L,QAGlDD,GAAc51H,EAAO6oB,EAASqtG,EAAWL,QAGtC71H,EAAMr2D,MACNopL,GAAkBrtL,KAAKmwL,EAAiBI,KACzClD,GAAkBrtL,KAAKmjF,EAASotG,KAClCj2H,EAAMt/D,KAAOy1L,GAAan2H,EAAMt/D,KAChCs/D,EAAMwvF,UAAY4mC,GAAkBp2H,EAAMwvF,UAC1CxvF,EAAMvtC,SAAWowF,GAAY7iD,EAAMvtC,SACnCqiK,GAAW90H,EAAO,2BAIJ,cAAZi2H,EACFzjM,OAAOC,eAAeo2F,EAASotG,EAAS,CACtC7lK,cAAc,EACdz9B,YAAY,EACZ29B,UAAU,EACV59B,MAAOwjM,IAGTrtG,EAAQotG,GAAWC,SAEdL,EAAgBI,GAGzB,OAAOptG,CACT,CAEA,SAASwtG,GAAcr2H,GACrB,IAAIqC,EAIO,MAFXA,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAGhCutC,EAAMvtC,WACU,KAAP4vC,GACTrC,EAAMvtC,WACyC,KAA3CutC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAC/ButC,EAAMvtC,YAGRqiK,GAAW90H,EAAO,4BAGpBA,EAAMt/D,MAAQ,EACds/D,EAAMwvF,UAAYxvF,EAAMvtC,SACxButC,EAAM20H,gBAAkB,CAC1B,CAEA,SAAS2B,GAAoBt2H,EAAOu2H,EAAeC,GAIjD,IAHA,IAAIC,EAAa,EACbp0H,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,UAExB,IAAP4vC,GAAU,CACf,KAAOyxH,GAAezxH,IACT,IAAPA,IAAkD,IAA1BrC,EAAM20H,iBAChC30H,EAAM20H,eAAiB30H,EAAMvtC,UAE/B4vC,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAGtC,GAAI8jK,GAAwB,KAAPl0H,EACnB,GACEA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,gBACtB,KAAP4vC,GAA8B,KAAPA,GAA8B,IAAPA,GAGzD,IAAIwxH,GAAOxxH,GAYT,MALA,IANAg0H,GAAcr2H,GAEdqC,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,UAClCgkK,IACAz2H,EAAM00H,WAAa,EAEL,KAAPryH,GACLrC,EAAM00H,aACNryH,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,SAK1C,CAMA,OAJqB,IAAjB+jK,GAAqC,IAAfC,GAAoBz2H,EAAM00H,WAAa8B,GAC/DzB,GAAa/0H,EAAO,yBAGfy2H,CACT,CAEA,SAASC,GAAsB12H,GAC7B,IACIqC,EADAozH,EAAYz1H,EAAMvtC,SAOtB,QAAY,MAJZ4vC,EAAKrC,EAAMlqC,MAAM3T,WAAWszK,KAIM,KAAPpzH,GACvBA,IAAOrC,EAAMlqC,MAAM3T,WAAWszK,EAAY,IAC1CpzH,IAAOrC,EAAMlqC,MAAM3T,WAAWszK,EAAY,KAE5CA,GAAa,EAIF,KAFXpzH,EAAKrC,EAAMlqC,MAAM3T,WAAWszK,MAEZ1B,GAAa1xH,IAMjC,CAEA,SAASs0H,GAAiB32H,EAAOv1D,GACjB,IAAVA,EACFu1D,EAAMrqD,QAAU,IACPlL,EAAQ,IACjBu1D,EAAMrqD,QAAU83H,GAAOr+E,OAAO,KAAM3kD,EAAQ,GAEhD,CA2eA,SAASmsL,GAAkB52H,EAAO62H,GAChC,IAAItQ,EAMAlkH,EALAy0H,EAAY92H,EAAM/1C,IAClB8sK,EAAY/2H,EAAMn0D,OAClBg9E,EAAY,GAEZmuG,GAAY,EAKhB,IAA8B,IAA1Bh3H,EAAM20H,eAAuB,OAAO,EAQxC,IANqB,OAAjB30H,EAAMn0D,SACRm0D,EAAMi3H,UAAUj3H,EAAMn0D,QAAUg9E,GAGlCxmB,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,UAEpB,IAAP4vC,KACyB,IAA1BrC,EAAM20H,iBACR30H,EAAMvtC,SAAWutC,EAAM20H,eACvBG,GAAW90H,EAAO,mDAGT,KAAPqC,IAMC0xH,GAFO/zH,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,SAAW,KASpD,GAHAukK,GAAW,EACXh3H,EAAMvtC,WAEF6jK,GAAoBt2H,GAAO,GAAO,IAChCA,EAAM00H,YAAcmC,EACtBhuG,EAAQn0F,KAAK,MACb2tE,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,eAYtC,GAPA8zJ,EAAQvmH,EAAMt/D,KACdw2L,GAAYl3H,EAAO62H,EAAY3D,IAAkB,GAAO,GACxDrqG,EAAQn0F,KAAKsrE,EAAMrqD,QACnB2gL,GAAoBt2H,GAAO,GAAO,GAElCqC,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAE7ButC,EAAMt/D,OAAS6lL,GAASvmH,EAAM00H,WAAamC,IAAuB,IAAPx0H,EAC9DyyH,GAAW90H,EAAO,4CACb,GAAIA,EAAM00H,WAAamC,EAC5B,MAIJ,QAAIG,IACFh3H,EAAM/1C,IAAM6sK,EACZ92H,EAAMn0D,OAASkrL,EACf/2H,EAAMzgE,KAAO,WACbygE,EAAMrqD,OAASkzE,GACR,EAGX,CAmLA,SAASsuG,GAAgBn3H,GACvB,IAAIy1H,EAGA2B,EACAttK,EACAu4C,EAJAg1H,GAAa,EACbC,GAAa,EAOjB,GAAW,MAFXj1H,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAEV,OAAO,EAuB/B,GArBkB,OAAdutC,EAAM/1C,KACR6qK,GAAW90H,EAAO,iCAKT,MAFXqC,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,YAGlC4kK,GAAa,EACbh1H,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,WAEpB,KAAP4vC,GACTi1H,GAAU,EACVF,EAAY,KACZ/0H,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,WAGpC2kK,EAAY,IAGd3B,EAAYz1H,EAAMvtC,SAEd4kK,EAAY,CACd,GAAKh1H,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,gBAC3B,IAAP4vC,GAAmB,KAAPA,GAEfrC,EAAMvtC,SAAWutC,EAAMhsE,QACzB81B,EAAUk2C,EAAMlqC,MAAMrgC,MAAMggM,EAAWz1H,EAAMvtC,UAC7C4vC,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,WAEpCqiK,GAAW90H,EAAO,qDAEtB,KAAO,CACL,KAAc,IAAPqC,IAAa0xH,GAAa1xH,IAEpB,KAAPA,IACGi1H,EAUHxC,GAAW90H,EAAO,gDATlBo3H,EAAYp3H,EAAMlqC,MAAMrgC,MAAMggM,EAAY,EAAGz1H,EAAMvtC,SAAW,GAEzDihK,GAAmBlgM,KAAK4jM,IAC3BtC,GAAW90H,EAAO,mDAGpBs3H,GAAU,EACV7B,EAAYz1H,EAAMvtC,SAAW,IAMjC4vC,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAGtC3I,EAAUk2C,EAAMlqC,MAAMrgC,MAAMggM,EAAWz1H,EAAMvtC,UAEzCghK,GAAwBjgM,KAAKs2B,IAC/BgrK,GAAW90H,EAAO,sDAEtB,CAEIl2C,IAAY6pK,GAAgBngM,KAAKs2B,IACnCgrK,GAAW90H,EAAO,4CAA8Cl2C,GAGlE,IACEA,EAAU9b,mBAAmB8b,EAC/B,CAAE,MAAOhoB,GACPgzL,GAAW90H,EAAO,0BAA4Bl2C,EAChD,CAkBA,OAhBIutK,EACFr3H,EAAM/1C,IAAMH,EAEHipK,GAAkBrtL,KAAKs6D,EAAMs1H,OAAQ8B,GAC9Cp3H,EAAM/1C,IAAM+1C,EAAMs1H,OAAO8B,GAAattK,EAEf,MAAdstK,EACTp3H,EAAM/1C,IAAM,IAAMH,EAEK,OAAdstK,EACTp3H,EAAM/1C,IAAM,qBAAuBH,EAGnCgrK,GAAW90H,EAAO,0BAA4Bo3H,EAAY,MAGrD,CACT,CAEA,SAASG,GAAmBv3H,GAC1B,IAAIy1H,EACApzH,EAIJ,GAAW,MAFXA,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAEV,OAAO,EAS/B,IAPqB,OAAjButC,EAAMn0D,QACRipL,GAAW90H,EAAO,qCAGpBqC,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UACpCgjK,EAAYz1H,EAAMvtC,SAEJ,IAAP4vC,IAAa0xH,GAAa1xH,KAAQ2xH,GAAkB3xH,IACzDA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAQtC,OALIutC,EAAMvtC,WAAagjK,GACrBX,GAAW90H,EAAO,8DAGpBA,EAAMn0D,OAASm0D,EAAMlqC,MAAMrgC,MAAMggM,EAAWz1H,EAAMvtC,WAC3C,CACT,CAgCA,SAASykK,GAAYl3H,EAAOw3H,EAAcC,EAAaC,EAAaC,GAClE,IAAIC,EACAC,EACAC,EAIAC,EACAC,EACAC,EACA3rL,EACA4rL,EACAC,EARAC,EAAe,EACfC,GAAa,EACbC,GAAa,EAmCjB,GA3BuB,OAAnBt4H,EAAMtI,UACRsI,EAAMtI,SAAS,OAAQsI,GAGzBA,EAAM/1C,IAAS,KACf+1C,EAAMn0D,OAAS,KACfm0D,EAAMzgE,KAAS,KACfygE,EAAMrqD,OAAS,KAEfiiL,EAAmBC,EAAoBC,EACrC3E,KAAsBsE,GACtBvE,KAAsBuE,EAEpBC,GACEpB,GAAoBt2H,GAAO,GAAO,KACpCq4H,GAAY,EAERr4H,EAAM00H,WAAa8C,EACrBY,EAAe,EACNp4H,EAAM00H,aAAe8C,EAC9BY,EAAe,EACNp4H,EAAM00H,WAAa8C,IAC5BY,GAAgB,IAKD,IAAjBA,EACF,KAAOjB,GAAgBn3H,IAAUu3H,GAAmBv3H,IAC9Cs2H,GAAoBt2H,GAAO,GAAO,IACpCq4H,GAAY,EACZP,EAAwBF,EAEpB53H,EAAM00H,WAAa8C,EACrBY,EAAe,EACNp4H,EAAM00H,aAAe8C,EAC9BY,EAAe,EACNp4H,EAAM00H,WAAa8C,IAC5BY,GAAgB,IAGlBN,GAAwB,EAwD9B,GAnDIA,IACFA,EAAwBO,GAAaV,GAGlB,IAAjBS,GAAsBjF,KAAsBsE,IAE5CS,EADElF,KAAoByE,GAAexE,KAAqBwE,EAC7CD,EAEAA,EAAe,EAG9BW,EAAcn4H,EAAMvtC,SAAWutC,EAAMwvF,UAEhB,IAAjB4oC,EACEN,IACClB,GAAkB52H,EAAOm4H,IAzZpC,SAA0Bn4H,EAAO62H,EAAYqB,GAC3C,IAAIz6E,EACAk6E,EACApR,EACAgS,EACAC,EACAC,EAUAp2H,EATAy0H,EAAgB92H,EAAM/1C,IACtB8sK,EAAgB/2H,EAAMn0D,OACtBg9E,EAAgB,CAAC,EACjBgtG,EAAkBrjM,OAAO4kC,OAAO,MAChC4+J,EAAgB,KAChBC,EAAgB,KAChBC,EAAgB,KAChBwC,GAAgB,EAChB1B,GAAgB,EAKpB,IAA8B,IAA1Bh3H,EAAM20H,eAAuB,OAAO,EAQxC,IANqB,OAAjB30H,EAAMn0D,SACRm0D,EAAMi3H,UAAUj3H,EAAMn0D,QAAUg9E,GAGlCxmB,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,UAEpB,IAAP4vC,GAAU,CAaf,GAZKq2H,IAA2C,IAA1B14H,EAAM20H,iBAC1B30H,EAAMvtC,SAAWutC,EAAM20H,eACvBG,GAAW90H,EAAO,mDAGpBy9C,EAAYz9C,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,SAAW,GACpD8zJ,EAAQvmH,EAAMt/D,KAMF,KAAP2hE,GAA6B,KAAPA,IAAuB0xH,GAAat2E,GA2BxD,CAKL,GAJA86E,EAAWv4H,EAAMt/D,KACjB83L,EAAgBx4H,EAAMwvF,UACtBipC,EAAUz4H,EAAMvtC,UAEXykK,GAAYl3H,EAAOk4H,EAAYjF,IAAkB,GAAO,GAG3D,MAGF,GAAIjzH,EAAMt/D,OAAS6lL,EAAO,CAGxB,IAFAlkH,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,UAE3BqhK,GAAezxH,IACpBA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAGtC,GAAW,KAAP4vC,EAGG0xH,GAFL1xH,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,YAGlCqiK,GAAW90H,EAAO,2FAGhB04H,IACF3C,GAAiB/1H,EAAO6oB,EAASgtG,EAAiBG,EAAQC,EAAS,KAAMsC,EAAUC,EAAeC,GAClGzC,EAASC,EAAUC,EAAY,MAGjCc,GAAW,EACX0B,GAAgB,EAChBf,GAAe,EACf3B,EAASh2H,EAAM/1C,IACfgsK,EAAUj2H,EAAMrqD,WAEX,KAAIqhL,EAMT,OAFAh3H,EAAM/1C,IAAM6sK,EACZ92H,EAAMn0D,OAASkrL,GACR,EALPjC,GAAW90H,EAAO,2DAMpB,CAEF,KAAO,KAAIg3H,EAMT,OAFAh3H,EAAM/1C,IAAM6sK,EACZ92H,EAAMn0D,OAASkrL,GACR,EALPjC,GAAW90H,EAAO,iFAMpB,CACF,MA9Ea,KAAPqC,GACEq2H,IACF3C,GAAiB/1H,EAAO6oB,EAASgtG,EAAiBG,EAAQC,EAAS,KAAMsC,EAAUC,EAAeC,GAClGzC,EAASC,EAAUC,EAAY,MAGjCc,GAAW,EACX0B,GAAgB,EAChBf,GAAe,GAENe,GAETA,GAAgB,EAChBf,GAAe,GAGf7C,GAAW90H,EAAO,qGAGpBA,EAAMvtC,UAAY,EAClB4vC,EAAKo7C,EAuFP,IAxBIz9C,EAAMt/D,OAAS6lL,GAASvmH,EAAM00H,WAAamC,KACzC6B,IACFH,EAAWv4H,EAAMt/D,KACjB83L,EAAgBx4H,EAAMwvF,UACtBipC,EAAUz4H,EAAMvtC,UAGdykK,GAAYl3H,EAAO62H,EAAY1D,IAAmB,EAAMwE,KACtDe,EACFzC,EAAUj2H,EAAMrqD,OAEhBugL,EAAYl2H,EAAMrqD,QAIjB+iL,IACH3C,GAAiB/1H,EAAO6oB,EAASgtG,EAAiBG,EAAQC,EAASC,EAAWqC,EAAUC,EAAeC,GACvGzC,EAASC,EAAUC,EAAY,MAGjCI,GAAoBt2H,GAAO,GAAO,GAClCqC,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,YAG/ButC,EAAMt/D,OAAS6lL,GAASvmH,EAAM00H,WAAamC,IAAuB,IAAPx0H,EAC9DyyH,GAAW90H,EAAO,2CACb,GAAIA,EAAM00H,WAAamC,EAC5B,KAEJ,CAmBA,OAZI6B,GACF3C,GAAiB/1H,EAAO6oB,EAASgtG,EAAiBG,EAAQC,EAAS,KAAMsC,EAAUC,EAAeC,GAIhGzB,IACFh3H,EAAM/1C,IAAM6sK,EACZ92H,EAAMn0D,OAASkrL,EACf/2H,EAAMzgE,KAAO,UACbygE,EAAMrqD,OAASkzE,GAGVmuG,CACT,CA2OW2B,CAAiB34H,EAAOm4H,EAAaD,KA/tBhD,SAA4Bl4H,EAAO62H,GACjC,IACItQ,EACAqS,EACAC,EAEAhwG,EAGAiwG,EACAC,EACAC,EACAC,EAEAhD,EACAD,EACAE,EACA7zH,EAhBA62H,GAAW,EAIXpC,EAAW92H,EAAM/1C,IAEjB8sK,EAAW/2H,EAAMn0D,OAMjBgqL,EAAkBrjM,OAAO4kC,OAAO,MAQpC,GAAW,MAFXirC,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAGhCqmK,EAAa,GACbG,GAAY,EACZpwG,EAAU,OACL,IAAW,MAAPxmB,EAKT,OAAO,EAJPy2H,EAAa,IACbG,GAAY,EACZpwG,EAAU,CAAC,CAGb,CAQA,IANqB,OAAjB7oB,EAAMn0D,SACRm0D,EAAMi3H,UAAUj3H,EAAMn0D,QAAUg9E,GAGlCxmB,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAEtB,IAAP4vC,GAAU,CAKf,GAJAi0H,GAAoBt2H,GAAO,EAAM62H,IAEjCx0H,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,aAEvBqmK,EAMT,OALA94H,EAAMvtC,WACNutC,EAAM/1C,IAAM6sK,EACZ92H,EAAMn0D,OAASkrL,EACf/2H,EAAMzgE,KAAO05L,EAAY,UAAY,WACrCj5H,EAAMrqD,OAASkzE,GACR,EACGqwG,EAEM,KAAP72H,GAETyyH,GAAW90H,EAAO,4CAHlB80H,GAAW90H,EAAO,gDAMDk2H,EAAY,KAC/B6C,EAASC,GAAiB,EAEf,KAAP32H,GAGE0xH,GAFQ/zH,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,SAAW,MAGlDsmK,EAASC,GAAiB,EAC1Bh5H,EAAMvtC,WACN6jK,GAAoBt2H,GAAO,EAAM62H,IAIrCtQ,EAAQvmH,EAAMt/D,KACdk4L,EAAa54H,EAAMwvF,UACnBqpC,EAAO74H,EAAMvtC,SACbykK,GAAYl3H,EAAO62H,EAAY7D,IAAiB,GAAO,GACvDgD,EAASh2H,EAAM/1C,IACfgsK,EAAUj2H,EAAMrqD,OAChB2gL,GAAoBt2H,GAAO,EAAM62H,GAEjCx0H,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAE7BumK,GAAkBh5H,EAAMt/D,OAAS6lL,GAAiB,KAAPlkH,IAC9C02H,GAAS,EACT12H,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UACpC6jK,GAAoBt2H,GAAO,EAAM62H,GACjCK,GAAYl3H,EAAO62H,EAAY7D,IAAiB,GAAO,GACvDkD,EAAYl2H,EAAMrqD,QAGhBsjL,EACFlD,GAAiB/1H,EAAO6oB,EAASgtG,EAAiBG,EAAQC,EAASC,EAAW3P,EAAOqS,EAAYC,GACxFE,EACTlwG,EAAQn0F,KAAKqhM,GAAiB/1H,EAAO,KAAM61H,EAAiBG,EAAQC,EAASC,EAAW3P,EAAOqS,EAAYC,IAE3GhwG,EAAQn0F,KAAKuhM,GAGfK,GAAoBt2H,GAAO,EAAM62H,GAItB,MAFXx0H,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,YAGhCymK,GAAW,EACX72H,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,WAEpCymK,GAAW,CAEf,CAEApE,GAAW90H,EAAO,wDACpB,CAknBUm5H,CAAmBn5H,EAAOk4H,GAC5BI,GAAa,GAERT,GAnnBb,SAAyB73H,EAAO62H,GAC9B,IAAIuC,EACAC,EAOAC,EACAj3H,EA3uBmBjuE,EAouBnBmlM,EAAiBnG,GACjBoG,GAAiB,EACjBC,GAAiB,EACjBC,EAAiB7C,EACjB8C,EAAiB,EACjBC,GAAiB,EAMrB,GAAW,OAFXv3H,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAGhC4mK,GAAU,MACL,IAAW,KAAPh3H,EAGT,OAAO,EAFPg3H,GAAU,CAGZ,CAKA,IAHAr5H,EAAMzgE,KAAO,SACbygE,EAAMrqD,OAAS,GAED,IAAP0sD,GAGL,GAAW,MAFXA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,YAEH,KAAP4vC,EACpB+wH,KAAkBmG,EACpBA,EAAmB,KAAPl3H,EAAsBixH,GAAgBD,GAElDyB,GAAW90H,EAAO,4CAGf,OAAKs5H,EAnwBT,KADkBllM,EAowBaiuE,IAnwBTjuE,GAAK,GACvBA,EAAI,IAGL,IA+vBoC,GAWxC,MAVY,IAARklM,EACFxE,GAAW90H,EAAO,gFACRy5H,EAIV3E,GAAW90H,EAAO,8CAHlB05H,EAAa7C,EAAayC,EAAM,EAChCG,GAAiB,EAOrB,CAGF,GAAI3F,GAAezxH,GAAK,CACtB,GAAKA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,gBAClCqhK,GAAezxH,IAEtB,GAAW,KAAPA,EACF,GAAKA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,iBACjCohK,GAAOxxH,IAAe,IAAPA,EAE3B,CAEA,KAAc,IAAPA,GAAU,CAMf,IALAg0H,GAAcr2H,GACdA,EAAM00H,WAAa,EAEnBryH,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,YAEzBgnK,GAAkBz5H,EAAM00H,WAAagF,IAC/B,KAAPr3H,GACNrC,EAAM00H,aACNryH,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAOtC,IAJKgnK,GAAkBz5H,EAAM00H,WAAagF,IACxCA,EAAa15H,EAAM00H,YAGjBb,GAAOxxH,GACTs3H,QADF,CAMA,GAAI35H,EAAM00H,WAAagF,EAAY,CAG7BH,IAAajG,GACftzH,EAAMrqD,QAAU83H,GAAOr+E,OAAO,KAAMoqI,EAAiB,EAAIG,EAAaA,GAC7DJ,IAAanG,IAClBoG,IACFx5H,EAAMrqD,QAAU,MAKpB,KACF,CAsCA,IAnCI0jL,EAGEvF,GAAezxH,IACjBu3H,GAAiB,EAEjB55H,EAAMrqD,QAAU83H,GAAOr+E,OAAO,KAAMoqI,EAAiB,EAAIG,EAAaA,IAG7DC,GACTA,GAAiB,EACjB55H,EAAMrqD,QAAU83H,GAAOr+E,OAAO,KAAMuqI,EAAa,IAGzB,IAAfA,EACLH,IACFx5H,EAAMrqD,QAAU,KAKlBqqD,EAAMrqD,QAAU83H,GAAOr+E,OAAO,KAAMuqI,GAMtC35H,EAAMrqD,QAAU83H,GAAOr+E,OAAO,KAAMoqI,EAAiB,EAAIG,EAAaA,GAGxEH,GAAiB,EACjBC,GAAiB,EACjBE,EAAa,EACbP,EAAep5H,EAAMvtC,UAEbohK,GAAOxxH,IAAe,IAAPA,GACrBA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAGtC8iK,GAAev1H,EAAOo5H,EAAcp5H,EAAMvtC,UAAU,EA1DpD,CA2DF,CAEA,OAAO,CACT,CAsekConK,CAAgB75H,EAAOk4H,IA/1BzD,SAAgCl4H,EAAO62H,GACrC,IAAIx0H,EACA+2H,EAAcU,EAIlB,GAAW,MAFXz3H,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAGhC,OAAO,EAQT,IALAutC,EAAMzgE,KAAO,SACbygE,EAAMrqD,OAAS,GACfqqD,EAAMvtC,WACN2mK,EAAeU,EAAa95H,EAAMvtC,SAEuB,KAAjD4vC,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,YACxC,GAAW,KAAP4vC,EAAoB,CAItB,GAHAkzH,GAAev1H,EAAOo5H,EAAcp5H,EAAMvtC,UAAU,GAGzC,MAFX4vC,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,WAOlC,OAAO,EAJP2mK,EAAep5H,EAAMvtC,SACrButC,EAAMvtC,WACNqnK,EAAa95H,EAAMvtC,QAKvB,MAAWohK,GAAOxxH,IAChBkzH,GAAev1H,EAAOo5H,EAAcU,GAAY,GAChDnD,GAAiB32H,EAAOs2H,GAAoBt2H,GAAO,EAAO62H,IAC1DuC,EAAeU,EAAa95H,EAAMvtC,UAEzButC,EAAMvtC,WAAautC,EAAMwvF,WAAaknC,GAAsB12H,GACrE80H,GAAW90H,EAAO,iEAGlBA,EAAMvtC,WACNqnK,EAAa95H,EAAMvtC,UAIvBqiK,GAAW90H,EAAO,6DACpB,CAqzBY+5H,CAAuB/5H,EAAOk4H,IAnzB1C,SAAgCl4H,EAAO62H,GACrC,IAAIuC,EACAU,EACAE,EACAC,EACAX,EACAj3H,EA/iBiBjuE,EAmjBrB,GAAW,MAFXiuE,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAGhC,OAAO,EAQT,IALAutC,EAAMzgE,KAAO,SACbygE,EAAMrqD,OAAS,GACfqqD,EAAMvtC,WACN2mK,EAAeU,EAAa95H,EAAMvtC,SAEuB,KAAjD4vC,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,YAAkB,CAC1D,GAAW,KAAP4vC,EAGF,OAFAkzH,GAAev1H,EAAOo5H,EAAcp5H,EAAMvtC,UAAU,GACpDutC,EAAMvtC,YACC,EAEF,GAAW,KAAP4vC,EAAoB,CAI7B,GAHAkzH,GAAev1H,EAAOo5H,EAAcp5H,EAAMvtC,UAAU,GAGhDohK,GAFJxxH,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,WAGlC6jK,GAAoBt2H,GAAO,EAAO62H,QAG7B,GAAIx0H,EAAK,KAAO+xH,GAAkB/xH,GACvCrC,EAAMrqD,QAAU0+K,GAAgBhyH,GAChCrC,EAAMvtC,gBAED,IAAK6mK,EA7kBN,OADWllM,EA8kBeiuE,GA7kBJ,EACtB,MAANjuE,EAA4B,EACtB,KAANA,EAA4B,EACzB,GA0kBoC,EAAG,CAIxC,IAHA4lM,EAAYV,EACZW,EAAY,EAELD,EAAY,EAAGA,KAGfV,EAAMrF,GAFX5xH,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,aAEL,EAC7BwnK,GAAaA,GAAa,GAAKX,EAG/BxE,GAAW90H,EAAO,kCAItBA,EAAMrqD,QAAUw+K,GAAkB8F,GAElCj6H,EAAMvtC,UAER,MACEqiK,GAAW90H,EAAO,2BAGpBo5H,EAAeU,EAAa95H,EAAMvtC,QAEpC,MAAWohK,GAAOxxH,IAChBkzH,GAAev1H,EAAOo5H,EAAcU,GAAY,GAChDnD,GAAiB32H,EAAOs2H,GAAoBt2H,GAAO,EAAO62H,IAC1DuC,EAAeU,EAAa95H,EAAMvtC,UAEzButC,EAAMvtC,WAAautC,EAAMwvF,WAAaknC,GAAsB12H,GACrE80H,GAAW90H,EAAO,iEAGlBA,EAAMvtC,WACNqnK,EAAa95H,EAAMvtC,SAEvB,CAEAqiK,GAAW90H,EAAO,6DACpB,CAuuBYk6H,CAAuBl6H,EAAOk4H,GAChCI,GAAa,GAjHvB,SAAmBt4H,GACjB,IAAIy1H,EAAWlqG,EACXlpB,EAIJ,GAAW,MAFXA,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAEV,OAAO,EAK/B,IAHA4vC,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UACpCgjK,EAAYz1H,EAAMvtC,SAEJ,IAAP4vC,IAAa0xH,GAAa1xH,KAAQ2xH,GAAkB3xH,IACzDA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAetC,OAZIutC,EAAMvtC,WAAagjK,GACrBX,GAAW90H,EAAO,6DAGpBurB,EAAQvrB,EAAMlqC,MAAMrgC,MAAMggM,EAAWz1H,EAAMvtC,UAEtCsgK,GAAkBrtL,KAAKs6D,EAAMi3H,UAAW1rG,IAC3CupG,GAAW90H,EAAO,uBAAyBurB,EAAQ,KAGrDvrB,EAAMrqD,OAASqqD,EAAMi3H,UAAU1rG,GAC/B+qG,GAAoBt2H,GAAO,GAAO,IAC3B,CACT,CAuFmBm6H,CAAUn6H,GAj9B7B,SAAyBA,EAAO62H,EAAYuD,GAC1C,IACI38E,EACA27E,EACAU,EACAO,EACA9T,EACAqS,EACA0B,EAGAj4H,EAFAk4H,EAAQv6H,EAAMzgE,KACdspF,EAAU7oB,EAAMrqD,OAKpB,GAAIo+K,GAFJ1xH,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,YAG9BuhK,GAAkB3xH,IACX,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,MAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,EACF,OAAO,EAGT,IAAW,KAAPA,GAA6B,KAAPA,KAGpB0xH,GAFJt2E,EAAYz9C,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,SAAW,KAGhD2nK,GAAwBpG,GAAkBv2E,IAC5C,OAAO,EASX,IALAz9C,EAAMzgE,KAAO,SACbygE,EAAMrqD,OAAS,GACfyjL,EAAeU,EAAa95H,EAAMvtC,SAClC4nK,GAAoB,EAEN,IAAPh4H,GAAU,CACf,GAAW,KAAPA,GAGF,GAAI0xH,GAFJt2E,EAAYz9C,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,SAAW,KAGhD2nK,GAAwBpG,GAAkBv2E,GAC5C,WAGG,GAAW,KAAPp7C,GAGT,GAAI0xH,GAFQ/zH,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,SAAW,IAGlD,UAGG,IAAKutC,EAAMvtC,WAAautC,EAAMwvF,WAAaknC,GAAsB12H,IAC7Do6H,GAAwBpG,GAAkB3xH,GACnD,MAEK,GAAIwxH,GAAOxxH,GAAK,CAMrB,GALAkkH,EAAQvmH,EAAMt/D,KACdk4L,EAAa54H,EAAMwvF,UACnB8qC,EAAct6H,EAAM00H,WACpB4B,GAAoBt2H,GAAO,GAAQ,GAE/BA,EAAM00H,YAAcmC,EAAY,CAClCwD,GAAoB,EACpBh4H,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,UAClC,QACF,CACEutC,EAAMvtC,SAAWqnK,EACjB95H,EAAMt/D,KAAO6lL,EACbvmH,EAAMwvF,UAAYopC,EAClB54H,EAAM00H,WAAa4F,EACnB,KAEJ,EAEID,IACF9E,GAAev1H,EAAOo5H,EAAcU,GAAY,GAChDnD,GAAiB32H,EAAOA,EAAMt/D,KAAO6lL,GACrC6S,EAAeU,EAAa95H,EAAMvtC,SAClC4nK,GAAoB,GAGjBvG,GAAezxH,KAClBy3H,EAAa95H,EAAMvtC,SAAW,GAGhC4vC,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,SACtC,CAIA,OAFA8iK,GAAev1H,EAAOo5H,EAAcU,GAAY,KAE5C95H,EAAMrqD,SAIVqqD,EAAMzgE,KAAOg7L,EACbv6H,EAAMrqD,OAASkzE,GACR,EACT,CA62BmB2xG,CAAgBx6H,EAAOk4H,EAAYlF,KAAoByE,KAChEa,GAAa,EAEK,OAAdt4H,EAAM/1C,MACR+1C,EAAM/1C,IAAM,OAVdquK,GAAa,EAEK,OAAdt4H,EAAM/1C,KAAiC,OAAjB+1C,EAAMn0D,QAC9BipL,GAAW90H,EAAO,8CAWD,OAAjBA,EAAMn0D,SACRm0D,EAAMi3H,UAAUj3H,EAAMn0D,QAAUm0D,EAAMrqD,SAGhB,IAAjByiL,IAGTE,EAAaR,GAAyBlB,GAAkB52H,EAAOm4H,KAIjD,OAAdn4H,EAAM/1C,IACa,OAAjB+1C,EAAMn0D,SACRm0D,EAAMi3H,UAAUj3H,EAAMn0D,QAAUm0D,EAAMrqD,aAGnC,GAAkB,MAAdqqD,EAAM/1C,KAWf,IAJqB,OAAjB+1C,EAAMrqD,QAAkC,WAAfqqD,EAAMzgE,MACjCu1L,GAAW90H,EAAO,oEAAsEA,EAAMzgE,KAAO,KAGlGw4L,EAAY,EAAGC,EAAeh4H,EAAMw0H,cAAcxgM,OAAQ+jM,EAAYC,EAAcD,GAAa,EAGpG,IAFAzrL,EAAO0zD,EAAMw0H,cAAcuD,IAElB9vL,QAAQ+3D,EAAMrqD,QAAS,CAC9BqqD,EAAMrqD,OAASrJ,EAAKmuC,UAAUulB,EAAMrqD,QACpCqqD,EAAM/1C,IAAM3d,EAAK2d,IACI,OAAjB+1C,EAAMn0D,SACRm0D,EAAMi3H,UAAUj3H,EAAMn0D,QAAUm0D,EAAMrqD,QAExC,KACF,OAEG,GAAkB,MAAdqqD,EAAM/1C,IAAa,CAC5B,GAAI8oK,GAAkBrtL,KAAKs6D,EAAMy0H,QAAQz0H,EAAMzgE,MAAQ,YAAaygE,EAAM/1C,KACxE3d,EAAO0zD,EAAMy0H,QAAQz0H,EAAMzgE,MAAQ,YAAYygE,EAAM/1C,UAMrD,IAHA3d,EAAO,KAGFyrL,EAAY,EAAGC,GAFpBC,EAAWj4H,EAAMy0H,QAAQvF,MAAMlvH,EAAMzgE,MAAQ,aAEDvL,OAAQ+jM,EAAYC,EAAcD,GAAa,EACzF,GAAI/3H,EAAM/1C,IAAIx0B,MAAM,EAAGwiM,EAASF,GAAW9tK,IAAIj2B,UAAYikM,EAASF,GAAW9tK,IAAK,CAClF3d,EAAO2rL,EAASF,GAChB,KACF,CAICzrL,GACHwoL,GAAW90H,EAAO,iBAAmBA,EAAM/1C,IAAM,KAG9B,OAAjB+1C,EAAMrqD,QAAmBrJ,EAAK/M,OAASygE,EAAMzgE,MAC/Cu1L,GAAW90H,EAAO,gCAAkCA,EAAM/1C,IAAM,wBAA0B3d,EAAK/M,KAAO,WAAaygE,EAAMzgE,KAAO,KAG7H+M,EAAKrE,QAAQ+3D,EAAMrqD,OAAQqqD,EAAM/1C,MAGpC+1C,EAAMrqD,OAASrJ,EAAKmuC,UAAUulB,EAAMrqD,OAAQqqD,EAAM/1C,KAC7B,OAAjB+1C,EAAMn0D,SACRm0D,EAAMi3H,UAAUj3H,EAAMn0D,QAAUm0D,EAAMrqD,SAJxCm/K,GAAW90H,EAAO,gCAAkCA,EAAM/1C,IAAM,iBAOpE,CAKA,OAHuB,OAAnB+1C,EAAMtI,UACRsI,EAAMtI,SAAS,QAASsI,GAEL,OAAdA,EAAM/1C,KAAkC,OAAjB+1C,EAAMn0D,QAAmBysL,CACzD,CAEA,SAASmC,GAAaz6H,GACpB,IACIy1H,EACAiF,EACAC,EAEAt4H,EALAu4H,EAAgB56H,EAAMvtC,SAItBooK,GAAgB,EAQpB,IALA76H,EAAMp2B,QAAU,KAChBo2B,EAAMo1H,gBAAkBp1H,EAAMg9C,OAC9Bh9C,EAAMs1H,OAAS9iM,OAAO4kC,OAAO,MAC7B4oC,EAAMi3H,UAAYzkM,OAAO4kC,OAAO,MAEyB,KAAjDirC,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,aACxC6jK,GAAoBt2H,GAAO,GAAO,GAElCqC,EAAKrC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,YAE9ButC,EAAM00H,WAAa,GAAY,KAAPryH,KAL8B,CAa1D,IAJAw4H,GAAgB,EAChBx4H,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UACpCgjK,EAAYz1H,EAAMvtC,SAEJ,IAAP4vC,IAAa0xH,GAAa1xH,IAC/BA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAUtC,IANAkoK,EAAgB,IADhBD,EAAgB16H,EAAMlqC,MAAMrgC,MAAMggM,EAAWz1H,EAAMvtC,WAGjCz+B,OAAS,GACzB8gM,GAAW90H,EAAO,gEAGN,IAAPqC,GAAU,CACf,KAAOyxH,GAAezxH,IACpBA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAGtC,GAAW,KAAP4vC,EAAoB,CACtB,GAAKA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,gBAC3B,IAAP4vC,IAAawxH,GAAOxxH,IAC3B,KACF,CAEA,GAAIwxH,GAAOxxH,GAAK,MAIhB,IAFAozH,EAAYz1H,EAAMvtC,SAEJ,IAAP4vC,IAAa0xH,GAAa1xH,IAC/BA,EAAKrC,EAAMlqC,MAAM3T,aAAa69C,EAAMvtC,UAGtCkoK,EAAcjmM,KAAKsrE,EAAMlqC,MAAMrgC,MAAMggM,EAAWz1H,EAAMvtC,UACxD,CAEW,IAAP4vC,GAAUg0H,GAAcr2H,GAExB+yH,GAAkBrtL,KAAKsvL,GAAmB0F,GAC5C1F,GAAkB0F,GAAe16H,EAAO06H,EAAeC,GAEvD5F,GAAa/0H,EAAO,+BAAiC06H,EAAgB,IAEzE,CAEApE,GAAoBt2H,GAAO,GAAO,GAET,IAArBA,EAAM00H,YACyC,KAA/C10H,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WACkB,KAA/CutC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,SAAW,IACO,KAA/CutC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,SAAW,IAC1CutC,EAAMvtC,UAAY,EAClB6jK,GAAoBt2H,GAAO,GAAO,IAEzB66H,GACT/F,GAAW90H,EAAO,mCAGpBk3H,GAAYl3H,EAAOA,EAAM00H,WAAa,EAAGvB,IAAmB,GAAO,GACnEmD,GAAoBt2H,GAAO,GAAO,GAE9BA,EAAMo1H,iBACN5B,GAA8BhgM,KAAKwsE,EAAMlqC,MAAMrgC,MAAMmlM,EAAe56H,EAAMvtC,YAC5EsiK,GAAa/0H,EAAO,oDAGtBA,EAAM40H,UAAUlgM,KAAKsrE,EAAMrqD,QAEvBqqD,EAAMvtC,WAAautC,EAAMwvF,WAAaknC,GAAsB12H,GAEf,KAA3CA,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,YAC/ButC,EAAMvtC,UAAY,EAClB6jK,GAAoBt2H,GAAO,GAAO,IAKlCA,EAAMvtC,SAAYutC,EAAMhsE,OAAS,GACnC8gM,GAAW90H,EAAO,wDAItB,CAGA,SAAS86H,GAAchlK,EAAO1U,GAE5BA,EAAUA,GAAW,CAAC,EAED,KAHrB0U,EAAQR,OAAOQ,IAGL9hC,SAGmC,KAAvC8hC,EAAM3T,WAAW2T,EAAM9hC,OAAS,IACO,KAAvC8hC,EAAM3T,WAAW2T,EAAM9hC,OAAS,KAClC8hC,GAAS,MAIiB,QAAxBA,EAAM3T,WAAW,KACnB2T,EAAQA,EAAMrgC,MAAM,KAIxB,IAAIuqE,EAAQ,IAAIs0H,GAAQx+J,EAAO1U,GAE3B25K,EAAUjlK,EAAME,QAAQ,MAU5B,KARiB,IAAb+kK,IACF/6H,EAAMvtC,SAAWsoK,EACjBjG,GAAW90H,EAAO,sCAIpBA,EAAMlqC,OAAS,KAEmC,KAA3CkqC,EAAMlqC,MAAM3T,WAAW69C,EAAMvtC,WAClCutC,EAAM00H,YAAc,EACpB10H,EAAMvtC,UAAY,EAGpB,KAAOutC,EAAMvtC,SAAYutC,EAAMhsE,OAAS,GACtCymM,GAAaz6H,GAGf,OAAOA,EAAM40H,SACf,CAkCA,IAAIoG,GA/BJ,SAAmBllK,EAAOjC,EAAUzS,GACjB,OAAbyS,GAAyC,kBAAbA,GAA4C,qBAAZzS,IAC9DA,EAAUyS,EACVA,EAAW,MAGb,IAAI+gK,EAAYkG,GAAchlK,EAAO1U,GAErC,GAAwB,oBAAbyS,EACT,OAAO+gK,EAGT,IAAK,IAAIz0L,EAAQ,EAAGnM,EAAS4gM,EAAU5gM,OAAQmM,EAAQnM,EAAQmM,GAAS,EACtE0zB,EAAS+gK,EAAUz0L,GAEvB,EAmBI25H,GAAS,CACZmhE,QAASD,GACTE,KAlBD,SAAgBplK,EAAO1U,GACrB,IAAIwzK,EAAYkG,GAAchlK,EAAO1U,GAErC,GAAyB,IAArBwzK,EAAU5gM,OAAd,CAGO,GAAyB,IAArB4gM,EAAU5gM,OACnB,OAAO4gM,EAAU,GAEnB,MAAM,IAAItrF,GAAU,2DADpB,CAEF,GAiBI6xF,GAAkB3oM,OAAO4nB,UAAU1mB,SACnC0nM,GAAkB5oM,OAAO4nB,UAAUC,eAEnCghL,GAA4B,MAC5BC,GAA4B,EAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,IAC5BC,GAA4B,IAC5BC,GAA4B,IAE5BC,GAAmB,CAEvBA,EAA2B,MAC3BA,EAA2B,MAC3BA,EAA2B,MAC3BA,EAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,MAC3BA,GAA2B,OAC3BA,IAA2B,MAC3BA,IAA2B,MAC3BA,KAA2B,MAC3BA,KAA2B,OAEvBC,GAA6B,CAC/B,IAAK,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,KAC3C,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,MAAO,OAGxCC,GAA2B,4CA6B/B,SAASC,GAAUhoG,GACjB,IAAIzoF,EAAQ+uH,EAAQvnI,EAIpB,GAFAwY,EAASyoF,EAAUvhG,SAAS,IAAI+iC,cAE5Bw+D,GAAa,IACfsmC,EAAS,IACTvnI,EAAS,OACJ,GAAIihG,GAAa,MACtBsmC,EAAS,IACTvnI,EAAS,MACJ,MAAIihG,GAAa,YAItB,MAAM,IAAIqU,GAAU,iEAHpBiyB,EAAS,IACTvnI,EAAS,CAGX,CAEA,MAAO,KAAOunI,EAASkS,GAAOr+E,OAAO,IAAKp7D,EAASwY,EAAOxY,QAAUwY,CACtE,CAGA,IAAI0wL,GAAsB,EACtBC,GAAsB,EAE1B,SAASC,GAAMh8K,GACb/vB,KAAK2S,OAAgBod,EAAgB,QAAK0xK,GAC1CzhM,KAAKgsH,OAAgBjvG,KAAKC,IAAI,EAAI+S,EAAgB,QAAK,GACvD/vB,KAAKgsM,cAAgBj8K,EAAuB,gBAAK,EACjD/vB,KAAKisM,YAAgBl8K,EAAqB,cAAK,EAC/C/vB,KAAKksM,UAAiB9vD,GAAO4/C,UAAUjsK,EAAmB,YAAM,EAAIA,EAAmB,UACvF/vB,KAAKmsM,SA1DP,SAAyBx5L,EAAQyc,GAC/B,IAAI9K,EAAQnN,EAAMrI,EAAOnM,EAAQi2B,EAAKkI,EAAO7lB,EAE7C,GAAY,OAARmU,EAAc,MAAO,CAAC,EAK1B,IAHA9K,EAAS,CAAC,EAGLxV,EAAQ,EAAGnM,GAFhBwU,EAAOhW,OAAOgW,KAAKiY,IAEWzsB,OAAQmM,EAAQnM,EAAQmM,GAAS,EAC7D8pB,EAAMzhB,EAAKrI,GACXgyB,EAAQmD,OAAO7U,EAAIwJ,IAEK,OAApBA,EAAIx0B,MAAM,EAAG,KACfw0B,EAAM,qBAAuBA,EAAIx0B,MAAM,KAEzC6W,EAAOtI,EAAOisL,gBAA0B,SAAEhmK,KAE9BmxK,GAAgB11L,KAAK4G,EAAK6iL,aAAch9J,KAClDA,EAAQ7lB,EAAK6iL,aAAah9J,IAG5Bxc,EAAOsU,GAAOkI,EAGhB,OAAOxc,CACT,CAiCuB8nL,CAAgBpsM,KAAK2S,OAAQod,EAAgB,QAAK,MACvE/vB,KAAKqsM,SAAgBt8K,EAAkB,WAAK,EAC5C/vB,KAAKssM,UAAgBv8K,EAAmB,WAAK,GAC7C/vB,KAAKusM,OAAgBx8K,EAAgB,SAAK,EAC1C/vB,KAAKwsM,aAAgBz8K,EAAsB,eAAK,EAChD/vB,KAAKysM,aAAgB18K,EAAsB,eAAK,EAChD/vB,KAAK0sM,YAA2C,MAA3B38K,EAAqB,YAAY+7K,GAAsBD,GAC5E7rM,KAAK2sM,YAAgB58K,EAAqB,cAAK,EAC/C/vB,KAAKq5J,SAA+C,oBAAxBtpI,EAAkB,SAAmBA,EAAkB,SAAI,KAEvF/vB,KAAKmjM,cAAgBnjM,KAAK2S,OAAO+rL,iBACjC1+L,KAAK4sM,cAAgB5sM,KAAK2S,OAAOgsL,iBAEjC3+L,KAAK44B,IAAM,KACX54B,KAAKskB,OAAS,GAEdtkB,KAAK6sM,WAAa,GAClB7sM,KAAK8sM,eAAiB,IACxB,CAGA,SAASC,GAAa5xL,EAAQ2nB,GAQ5B,IAPA,IAIIzzB,EAJAmqH,EAAM4iB,GAAOr+E,OAAO,IAAKj7B,GACzB1B,EAAW,EACX9O,GAAQ,EACRhO,EAAS,GAET3hB,EAASwY,EAAOxY,OAEby+B,EAAWz+B,IAEF,KADd2vB,EAAOnX,EAAOwpB,QAAQ,KAAMvD,KAE1B/xB,EAAO8L,EAAO/W,MAAMg9B,GACpBA,EAAWz+B,IAEX0M,EAAO8L,EAAO/W,MAAMg9B,EAAU9O,EAAO,GACrC8O,EAAW9O,EAAO,GAGhBjjB,EAAK1M,QAAmB,OAAT0M,IAAeiV,GAAUk1G,GAE5Cl1G,GAAUjV,EAGZ,OAAOiV,CACT,CAEA,SAAS0oL,GAAiBr+H,EAAOkzB,GAC/B,MAAO,KAAOu6C,GAAOr+E,OAAO,IAAK4Q,EAAMq9C,OAASnqB,EAClD,CAiBA,SAASh+C,GAAa9gD,GACpB,OAAOA,IAAMqnM,IAAcrnM,IAAMknM,EACnC,CAMA,SAASgD,GAAYlqM,GACnB,OAAS,IAAWA,GAAKA,GAAK,KACrB,KAAWA,GAAKA,GAAK,OAAmB,OAANA,GAAsB,OAANA,GAClD,OAAWA,GAAKA,GAAK,OAAaA,IAAMinM,IACxC,OAAWjnM,GAAKA,GAAK,OAChC,CAOA,SAASmqM,GAAqBnqM,GAC5B,OAAOkqM,GAAYlqM,IACdA,IAAMinM,IAENjnM,IAAMonM,IACNpnM,IAAMmnM,EACb,CAWA,SAASiD,GAAYpqM,EAAG46C,EAAMyvJ,GAC5B,IAAIC,EAAwBH,GAAqBnqM,GAC7CuqM,EAAYD,IAA0BxpJ,GAAa9gD,GACvD,OAEEqqM,EACEC,EACEA,GAEGtqM,IAAM6nM,IACN7nM,IAAMooM,IACNpoM,IAAMqoM,IACNroM,IAAMuoM,IACNvoM,IAAMyoM,KAGVzoM,IAAMwnM,MACJ5sJ,IAASmtJ,KAAewC,IACzBJ,GAAqBvvJ,KAAUkG,GAAalG,IAAS56C,IAAMwnM,IAC3D5sJ,IAASmtJ,IAAcwC,CAC/B,CA0CA,SAASv5B,GAAY54J,EAAQ0V,GAC3B,IAAoC2vK,EAAhCjgE,EAAQplH,EAAO2V,WAAWD,GAC9B,OAAI0vG,GAAS,OAAUA,GAAS,OAAU1vG,EAAM,EAAI1V,EAAOxY,SACzD69L,EAASrlL,EAAO2V,WAAWD,EAAM,KACnB,OAAU2vK,GAAU,MAEN,MAAlBjgE,EAAQ,OAAkBigE,EAAS,MAAS,MAGjDjgE,CACT,CAGA,SAASgtE,GAAoBpyL,GAE3B,MADqB,QACChZ,KAAKgZ,EAC7B,CAEA,IAAIqyL,GAAgB,EAChBC,GAAgB,EAChBC,GAAgB,EAChBC,GAAgB,EAChBC,GAAgB,EASpB,SAASC,GAAkB1yL,EAAQ2yL,EAAgBC,EAAgBzB,EACjE0B,EAAmBtB,EAAaC,EAAaS,GAE7C,IAAIlqM,EAzEoBH,EA0EpBuzC,EAAO,EACP23J,EAAW,KACXC,GAAe,EACfC,GAAkB,EAClBC,GAAkC,IAAf9B,EACnB+B,GAAqB,EACrB//F,EA5EG2+F,GAJiBlqM,EAgFKgxK,GAAY54J,EAAQ,KA5ExBpY,IAAMinM,KACzBnmJ,GAAa9gD,IAGdA,IAAM8nM,IACN9nM,IAAMkoM,IACNloM,IAAM+nM,IACN/nM,IAAM6nM,IACN7nM,IAAMooM,IACNpoM,IAAMqoM,IACNroM,IAAMuoM,IACNvoM,IAAMyoM,IAENzoM,IAAMwnM,IACNxnM,IAAM0nM,IACN1nM,IAAM4nM,IACN5nM,IAAMsnM,IACNtnM,IAAMwoM,IACNxoM,IAAMgoM,IACNhoM,IAAMioM,IACNjoM,IAAM2nM,IACN3nM,IAAMunM,IAENvnM,IAAMynM,IACNznM,IAAMmoM,IACNnoM,IAAMsoM,IAIb,SAAyBtoM,GAEvB,OAAQ8gD,GAAa9gD,IAAMA,IAAM+nM,EACnC,CA6CawD,CAAgBv6B,GAAY54J,EAAQA,EAAOxY,OAAS,IAE/D,GAAImrM,GAAkBnB,EAGpB,IAAKzpM,EAAI,EAAGA,EAAIiY,EAAOxY,OAAQ2zC,GAAQ,MAAUpzC,GAAK,EAAIA,IAAK,CAE7D,IAAK+pM,GADL32J,EAAOy9H,GAAY54J,EAAQjY,IAEzB,OAAO0qM,GAETt/F,EAAQA,GAAS6+F,GAAY72J,EAAM23J,EAAUb,GAC7Ca,EAAW33J,CACb,KACK,CAEL,IAAKpzC,EAAI,EAAGA,EAAIiY,EAAOxY,OAAQ2zC,GAAQ,MAAUpzC,GAAK,EAAIA,IAAK,CAE7D,IADAozC,EAAOy9H,GAAY54J,EAAQjY,MACdgnM,GACXgE,GAAe,EAEXE,IACFD,EAAkBA,GAEfjrM,EAAImrM,EAAoB,EAAI/B,GACM,MAAlCnxL,EAAOkzL,EAAoB,GAC9BA,EAAoBnrM,QAEjB,IAAK+pM,GAAY32J,GACtB,OAAOs3J,GAETt/F,EAAQA,GAAS6+F,GAAY72J,EAAM23J,EAAUb,GAC7Ca,EAAW33J,CACb,CAEA63J,EAAkBA,GAAoBC,GACnClrM,EAAImrM,EAAoB,EAAI/B,GACM,MAAlCnxL,EAAOkzL,EAAoB,EAChC,CAIA,OAAKH,GAAiBC,EASlBJ,EAAiB,GAAKR,GAAoBpyL,GACrCyyL,GAIJjB,EAGED,IAAgBZ,GAAsB8B,GAAeH,GAFnDU,EAAkBR,GAAeD,IAZpCp/F,GAAUq+F,GAAgBqB,EAAkB7yL,GAGzCuxL,IAAgBZ,GAAsB8B,GAAeH,GAFnDD,EAcb,CAQA,SAASe,GAAY5/H,EAAOxzD,EAAQ0mF,EAAO2sG,EAAOpB,GAChDz+H,EAAM8/H,KAAQ,WACZ,GAAsB,IAAlBtzL,EAAOxY,OACT,OAAOgsE,EAAM+9H,cAAgBZ,GAAsB,KAAO,KAE5D,IAAKn9H,EAAM69H,gBAC2C,IAAhDd,GAA2B/mK,QAAQxpB,IAAkBwwL,GAAyBxpM,KAAKgZ,IACrF,OAAOwzD,EAAM+9H,cAAgBZ,GAAuB,IAAM3wL,EAAS,IAAQ,IAAMA,EAAS,IAI9F,IAAI6wG,EAASr9C,EAAMq9C,OAASjvG,KAAKC,IAAI,EAAG6kF,GAQpCyqG,GAAiC,IAArB39H,EAAM29H,WACjB,EAAIvvL,KAAKC,IAAID,KAAKoV,IAAIw8C,EAAM29H,UAAW,IAAK39H,EAAM29H,UAAYtgF,GAG/D8hF,EAAiBU,GAEf7/H,EAAMu9H,WAAa,GAAKrqG,GAASlzB,EAAMu9H,UAK7C,OAAQ2B,GAAkB1yL,EAAQ2yL,EAAgBn/H,EAAMq9C,OAAQsgF,GAJhE,SAAuBnxL,GACrB,OA1PN,SAA+BwzD,EAAOjtE,GACpC,IAAIoN,EAAOnM,EAEX,IAAKmM,EAAQ,EAAGnM,EAASgsE,EAAMw0H,cAAcxgM,OAAQmM,EAAQnM,EAAQmM,GAAS,EAG5E,GAFO6/D,EAAMw0H,cAAcr0L,GAElB8H,QAAQlV,GACf,OAAO,EAIX,OAAO,CACT,CA8OagtM,CAAsB//H,EAAOxzD,EACtC,GAGiBwzD,EAAM+9H,YAAa/9H,EAAMg+H,cAAgB6B,EAAOpB,IAE/D,KAAKI,GACH,OAAOryL,EACT,KAAKsyL,GACH,MAAO,IAAMtyL,EAAO7W,QAAQ,KAAM,MAAQ,IAC5C,KAAKopM,GACH,MAAO,IAAMiB,GAAYxzL,EAAQwzD,EAAMq9C,QACnC4iF,GAAkB7B,GAAa5xL,EAAQ6wG,IAC7C,KAAK2hF,GACH,MAAO,IAAMgB,GAAYxzL,EAAQwzD,EAAMq9C,QACnC4iF,GAAkB7B,GA4B9B,SAAoB5xL,EAAQs6B,GAK1B,IAWIo5J,EAGA/uK,EAdAgvK,EAAS,iBAGTxqL,EAAU,WACZ,IAAIyqL,EAAS5zL,EAAOwpB,QAAQ,MAG5B,OAFAoqK,GAAqB,IAAZA,EAAgBA,EAAS5zL,EAAOxY,OACzCmsM,EAAO7uK,UAAY8uK,EACZC,GAAS7zL,EAAO/W,MAAM,EAAG2qM,GAASt5J,EAC3C,CALc,GAOVw5J,EAAiC,OAAd9zL,EAAO,IAA6B,MAAdA,EAAO,GAKpD,KAAQ2kB,EAAQgvK,EAAO5nL,KAAK/L,IAAU,CACpC,IAAI9Q,EAASy1B,EAAM,GAAIzwB,EAAOywB,EAAM,GACpC+uK,EAA4B,MAAZx/L,EAAK,GACrBiV,GAAUja,GACJ4kM,GAAqBJ,GAAyB,KAATx/L,EAC9B,GAAP,MACF2/L,GAAS3/L,EAAMomC,GACnBw5J,EAAmBJ,CACrB,CAEA,OAAOvqL,CACT,CA3D2C4qL,CAAW/zL,EAAQmxL,GAAYtgF,IACpE,KAAK4hF,GACH,MAAO,IAuGf,SAAsBzyL,GAKpB,IAJA,IAEIg0L,EAFA7qL,EAAS,GACTgyB,EAAO,EAGFpzC,EAAI,EAAGA,EAAIiY,EAAOxY,OAAQ2zC,GAAQ,MAAUpzC,GAAK,EAAIA,IAC5DozC,EAAOy9H,GAAY54J,EAAQjY,KAC3BisM,EAAY1D,GAAiBn1J,KAEX22J,GAAY32J,IAC5BhyB,GAAUnJ,EAAOjY,GACbozC,GAAQ,QAAShyB,GAAUnJ,EAAOjY,EAAI,KAE1CohB,GAAU6qL,GAAavD,GAAUt1J,GAIrC,OAAOhyB,CACT,CAzHqB8qL,CAAaj0L,GAAU,IACtC,QACE,MAAM,IAAI88F,GAAU,0CAE1B,CA/Cc,EAgDhB,CAGA,SAAS02F,GAAYxzL,EAAQ4yL,GAC3B,IAAIsB,EAAkB9B,GAAoBpyL,GAAU8oB,OAAO8pK,GAAkB,GAGzExiH,EAA8C,OAA9BpwE,EAAOA,EAAOxY,OAAS,GAI3C,OAAO0sM,GAHI9jH,IAAuC,OAA9BpwE,EAAOA,EAAOxY,OAAS,IAA0B,OAAXwY,GACvC,IAAOowE,EAAO,GAAK,KAEL,IACnC,CAGA,SAASqjH,GAAkBzzL,GACzB,MAAqC,OAA9BA,EAAOA,EAAOxY,OAAS,GAAcwY,EAAO/W,MAAM,GAAI,GAAK+W,CACpE,CAyCA,SAAS6zL,GAAS3/L,EAAMomC,GACtB,GAAa,KAATpmC,GAA2B,MAAZA,EAAK,GAAY,OAAOA,EAa3C,IAVA,IACIywB,EAEWyB,EAHX+tK,EAAU,SAGVvvK,EAAQ,EAAQwvK,EAAO,EAAGj9K,EAAO,EACjChO,EAAS,GAMLwb,EAAQwvK,EAAQpoL,KAAK7X,KAC3BijB,EAAOwN,EAAMhxB,OAEFixB,EAAQ0V,IACjBlU,EAAOguK,EAAOxvK,EAASwvK,EAAOj9K,EAC9BhO,GAAU,KAAOjV,EAAKjL,MAAM27B,EAAOwB,GAEnCxB,EAAQwB,EAAM,GAEhBguK,EAAOj9K,EAaT,OARAhO,GAAU,KAENjV,EAAK1M,OAASo9B,EAAQ0V,GAAS85J,EAAOxvK,EACxCzb,GAAUjV,EAAKjL,MAAM27B,EAAOwvK,GAAQ,KAAOlgM,EAAKjL,MAAMmrM,EAAO,GAE7DjrL,GAAUjV,EAAKjL,MAAM27B,GAGhBzb,EAAOlgB,MAAM,EACtB,CAmDA,SAASorM,GAAmB7gI,EAAOkzB,EAAOp2F,EAAQmrC,GAChD,IAEI9nC,EACAnM,EACAtB,EAJAm2F,EAAU,GACViuG,EAAU92H,EAAM/1C,IAKpB,IAAK9pB,EAAQ,EAAGnM,EAAS8I,EAAO9I,OAAQmM,EAAQnM,EAAQmM,GAAS,EAC/DzN,EAAQoK,EAAOqD,GAEX6/D,EAAM0qF,WACRh4J,EAAQstE,EAAM0qF,SAAShlJ,KAAK5I,EAAQw4B,OAAOn1B,GAAQzN,KAIjDouM,GAAU9gI,EAAOkzB,EAAQ,EAAGxgG,GAAO,GAAM,GAAM,GAAO,IACpC,qBAAVA,GACPouM,GAAU9gI,EAAOkzB,EAAQ,EAAG,MAAM,GAAM,GAAM,GAAO,MAEnDjrD,GAAuB,KAAZ4gD,IACdA,GAAWw1G,GAAiBr+H,EAAOkzB,IAGjClzB,EAAM8/H,MAAQvE,KAAmBv7H,EAAM8/H,KAAK39K,WAAW,GACzD0mE,GAAW,IAEXA,GAAW,KAGbA,GAAW7oB,EAAM8/H,MAIrB9/H,EAAM/1C,IAAM6sK,EACZ92H,EAAM8/H,KAAOj3G,GAAW,IAC1B,CA8HA,SAASk4G,GAAW/gI,EAAOljE,EAAQ8yL,GACjC,IAAI/mG,EAASovG,EAAU93L,EAAOnM,EAAQsY,EAAM6lB,EAI5C,IAAKhyB,EAAQ,EAAGnM,GAFhBikM,EAAWrI,EAAW5vH,EAAMi+H,cAAgBj+H,EAAMw0H,eAEhBxgM,OAAQmM,EAAQnM,EAAQmM,GAAS,EAGjE,KAFAmM,EAAO2rL,EAAS93L,IAEN2uL,YAAexiL,EAAKyiL,cACxBziL,EAAKwiL,YAAkC,kBAAXhyL,GAAyBA,aAAkBwP,EAAKwiL,eAC5ExiL,EAAKyiL,WAAcziL,EAAKyiL,UAAUjyL,IAAU,CAYhD,GAVI8yL,EACEtjL,EAAK4iL,OAAS5iL,EAAK2iL,cACrBjvH,EAAM/1C,IAAM3d,EAAK2iL,cAAcnyL,GAE/BkjE,EAAM/1C,IAAM3d,EAAK2d,IAGnB+1C,EAAM/1C,IAAM,IAGV3d,EAAK0iL,UAAW,CAGlB,GAFA78J,EAAQ6tC,EAAMw9H,SAASlxL,EAAK2d,MAAQ3d,EAAK46K,aAEF,sBAAnCiU,GAAUz1L,KAAK4G,EAAK0iL,WACtBnmG,EAAUv8E,EAAK0iL,UAAUlyL,EAAQq1B,OAC5B,KAAIipK,GAAgB11L,KAAK4G,EAAK0iL,UAAW78J,GAG9C,MAAM,IAAIm3E,GAAU,KAAOh9F,EAAK2d,IAAM,+BAAiCkI,EAAQ,WAF/E02D,EAAUv8E,EAAK0iL,UAAU78J,GAAOr1B,EAAQq1B,EAG1C,CAEA6tC,EAAM8/H,KAAOj3G,CACf,CAEA,OAAO,CACT,CAGF,OAAO,CACT,CAKA,SAASi4G,GAAU9gI,EAAOkzB,EAAOp2F,EAAQ6B,EAAOspC,EAAS43J,EAAOmB,GAC9DhhI,EAAM/1C,IAAM,KACZ+1C,EAAM8/H,KAAOhjM,EAERikM,GAAW/gI,EAAOljE,GAAQ,IAC7BikM,GAAW/gI,EAAOljE,GAAQ,GAG5B,IAEImkM,EAFA30L,EAAO6uL,GAAUz1L,KAAKs6D,EAAM8/H,MAC5BrB,EAAU9/L,EAGVA,IACFA,EAASqhE,EAAMu9H,UAAY,GAAKv9H,EAAMu9H,UAAYrqG,GAGpD,IACIguG,EACAC,EAFAC,EAAyB,oBAAT90L,GAAuC,mBAATA,EAalD,GATI80L,IAEFD,GAAgC,KADhCD,EAAiBlhI,EAAMk+H,WAAWloK,QAAQl5B,MAIzB,OAAdkjE,EAAM/1C,KAA8B,MAAd+1C,EAAM/1C,KAAgBk3K,GAA+B,IAAjBnhI,EAAMq9C,QAAgBnqB,EAAQ,KAC3FjrD,GAAU,GAGRk5J,GAAanhI,EAAMm+H,eAAe+C,GACpClhI,EAAM8/H,KAAO,QAAUoB,MAClB,CAIL,GAHIE,GAAiBD,IAAcnhI,EAAMm+H,eAAe+C,KACtDlhI,EAAMm+H,eAAe+C,IAAkB,GAE5B,oBAAT50L,EACE3N,GAA6C,IAAnCnM,OAAOgW,KAAKw3D,EAAM8/H,MAAM9rM,SAhK5C,SAA2BgsE,EAAOkzB,EAAOp2F,EAAQmrC,GAC/C,IAGI9nC,EACAnM,EACAqtM,EACAC,EACAC,EACAC,EARA34G,EAAgB,GAChBiuG,EAAgB92H,EAAM/1C,IACtBw3K,EAAgBjvM,OAAOgW,KAAK1L,GAShC,IAAuB,IAAnBkjE,EAAM09H,SAER+D,EAAcjxE,YACT,GAA8B,oBAAnBxwD,EAAM09H,SAEtB+D,EAAcjxE,KAAKxwD,EAAM09H,eACpB,GAAI19H,EAAM09H,SAEf,MAAM,IAAIp0F,GAAU,4CAGtB,IAAKnpG,EAAQ,EAAGnM,EAASytM,EAAcztM,OAAQmM,EAAQnM,EAAQmM,GAAS,EACtEqhM,EAAa,GAERv5J,GAAuB,KAAZ4gD,IACd24G,GAAcnD,GAAiBr+H,EAAOkzB,IAIxCouG,EAAcxkM,EADdukM,EAAYI,EAActhM,IAGtB6/D,EAAM0qF,WACR42C,EAActhI,EAAM0qF,SAAShlJ,KAAK5I,EAAQukM,EAAWC,IAGlDR,GAAU9gI,EAAOkzB,EAAQ,EAAGmuG,GAAW,GAAM,GAAM,MAIxDE,EAA8B,OAAdvhI,EAAM/1C,KAA8B,MAAd+1C,EAAM/1C,KAC5B+1C,EAAM8/H,MAAQ9/H,EAAM8/H,KAAK9rM,OAAS,QAG5CgsE,EAAM8/H,MAAQvE,KAAmBv7H,EAAM8/H,KAAK39K,WAAW,GACzDq/K,GAAc,IAEdA,GAAc,MAIlBA,GAAcxhI,EAAM8/H,KAEhByB,IACFC,GAAcnD,GAAiBr+H,EAAOkzB,IAGnC4tG,GAAU9gI,EAAOkzB,EAAQ,EAAGouG,GAAa,EAAMC,KAIhDvhI,EAAM8/H,MAAQvE,KAAmBv7H,EAAM8/H,KAAK39K,WAAW,GACzDq/K,GAAc,IAEdA,GAAc,KAMhB34G,GAHA24G,GAAcxhI,EAAM8/H,OAMtB9/H,EAAM/1C,IAAM6sK,EACZ92H,EAAM8/H,KAAOj3G,GAAW,IAC1B,CAqFQ64G,CAAkB1hI,EAAOkzB,EAAOlzB,EAAM8/H,KAAM73J,GACxCk5J,IACFnhI,EAAM8/H,KAAO,QAAUoB,EAAiBlhI,EAAM8/H,SAjNxD,SAA0B9/H,EAAOkzB,EAAOp2F,GACtC,IAGIqD,EACAnM,EACAqtM,EACAC,EACAE,EAPA34G,EAAgB,GAChBiuG,EAAgB92H,EAAM/1C,IACtBw3K,EAAgBjvM,OAAOgW,KAAK1L,GAOhC,IAAKqD,EAAQ,EAAGnM,EAASytM,EAAcztM,OAAQmM,EAAQnM,EAAQmM,GAAS,EAEtEqhM,EAAa,GACG,KAAZ34G,IAAgB24G,GAAc,MAE9BxhI,EAAM89H,eAAc0D,GAAc,KAGtCF,EAAcxkM,EADdukM,EAAYI,EAActhM,IAGtB6/D,EAAM0qF,WACR42C,EAActhI,EAAM0qF,SAAShlJ,KAAK5I,EAAQukM,EAAWC,IAGlDR,GAAU9gI,EAAOkzB,EAAOmuG,GAAW,GAAO,KAI3CrhI,EAAM8/H,KAAK9rM,OAAS,OAAMwtM,GAAc,MAE5CA,GAAcxhI,EAAM8/H,MAAQ9/H,EAAM89H,aAAe,IAAM,IAAM,KAAO99H,EAAM89H,aAAe,GAAK,KAEzFgD,GAAU9gI,EAAOkzB,EAAOouG,GAAa,GAAO,KAOjDz4G,GAHA24G,GAAcxhI,EAAM8/H,OAMtB9/H,EAAM/1C,IAAM6sK,EACZ92H,EAAM8/H,KAAO,IAAMj3G,EAAU,GAC/B,CAwKQ84G,CAAiB3hI,EAAOkzB,EAAOlzB,EAAM8/H,MACjCqB,IACFnhI,EAAM8/H,KAAO,QAAUoB,EAAiB,IAAMlhI,EAAM8/H,YAGnD,GAAa,mBAATxzL,EACL3N,GAAgC,IAAtBqhE,EAAM8/H,KAAK9rM,QACnBgsE,EAAMq9H,gBAAkB2D,GAAc9tG,EAAQ,EAChD2tG,GAAmB7gI,EAAOkzB,EAAQ,EAAGlzB,EAAM8/H,KAAM73J,GAEjD44J,GAAmB7gI,EAAOkzB,EAAOlzB,EAAM8/H,KAAM73J,GAE3Ck5J,IACFnhI,EAAM8/H,KAAO,QAAUoB,EAAiBlhI,EAAM8/H,SAlSxD,SAA2B9/H,EAAOkzB,EAAOp2F,GACvC,IAEIqD,EACAnM,EACAtB,EAJAm2F,EAAU,GACViuG,EAAU92H,EAAM/1C,IAKpB,IAAK9pB,EAAQ,EAAGnM,EAAS8I,EAAO9I,OAAQmM,EAAQnM,EAAQmM,GAAS,EAC/DzN,EAAQoK,EAAOqD,GAEX6/D,EAAM0qF,WACRh4J,EAAQstE,EAAM0qF,SAAShlJ,KAAK5I,EAAQw4B,OAAOn1B,GAAQzN,KAIjDouM,GAAU9gI,EAAOkzB,EAAOxgG,GAAO,GAAO,IACpB,qBAAVA,GACPouM,GAAU9gI,EAAOkzB,EAAO,MAAM,GAAO,MAExB,KAAZrK,IAAgBA,GAAW,KAAQ7oB,EAAM89H,aAAqB,GAAN,MAC5Dj1G,GAAW7oB,EAAM8/H,MAIrB9/H,EAAM/1C,IAAM6sK,EACZ92H,EAAM8/H,KAAO,IAAMj3G,EAAU,GAC/B,CA2QQ+4G,CAAkB5hI,EAAOkzB,EAAOlzB,EAAM8/H,MAClCqB,IACFnhI,EAAM8/H,KAAO,QAAUoB,EAAiB,IAAMlhI,EAAM8/H,WAGnD,IAAa,oBAATxzL,EAIJ,IAAa,uBAATA,EACT,OAAO,EAEP,GAAI0zD,EAAMs9H,YAAa,OAAO,EAC9B,MAAM,IAAIh0F,GAAU,0CAA4Ch9F,EAClE,CARoB,MAAd0zD,EAAM/1C,KACR21K,GAAY5/H,EAAOA,EAAM8/H,KAAM5sG,EAAO2sG,EAAOpB,EAOjD,CAEkB,OAAdz+H,EAAM/1C,KAA8B,MAAd+1C,EAAM/1C,MAc9Bg3K,EAAS94E,UACU,MAAjBnoD,EAAM/1C,IAAI,GAAa+1C,EAAM/1C,IAAIx0B,MAAM,GAAKuqE,EAAM/1C,KAClDt0B,QAAQ,KAAM,OAGdsrM,EADmB,MAAjBjhI,EAAM/1C,IAAI,GACH,IAAMg3K,EACkB,uBAAxBA,EAAOxrM,MAAM,EAAG,IAChB,KAAOwrM,EAAOxrM,MAAM,IAEpB,KAAOwrM,EAAS,IAG3BjhI,EAAM8/H,KAAOmB,EAAS,IAAMjhI,EAAM8/H,KAEtC,CAEA,OAAO,CACT,CAEA,SAAS+B,GAAuB/kM,EAAQkjE,GACtC,IAEI7/D,EACAnM,EAHA8tM,EAAU,GACVC,EAAoB,GAMxB,IAFAC,GAAYllM,EAAQglM,EAASC,GAExB5hM,EAAQ,EAAGnM,EAAS+tM,EAAkB/tM,OAAQmM,EAAQnM,EAAQmM,GAAS,EAC1E6/D,EAAMk+H,WAAWxpM,KAAKotM,EAAQC,EAAkB5hM,KAElD6/D,EAAMm+H,eAAiB,IAAI/oM,MAAMpB,EACnC,CAEA,SAASguM,GAAYllM,EAAQglM,EAASC,GACpC,IAAIN,EACAthM,EACAnM,EAEJ,GAAe,OAAX8I,GAAqC,kBAAXA,EAE5B,IAAe,KADfqD,EAAQ2hM,EAAQ9rK,QAAQl5B,KAEoB,IAAtCilM,EAAkB/rK,QAAQ71B,IAC5B4hM,EAAkBrtM,KAAKyL,QAKzB,GAFA2hM,EAAQptM,KAAKoI,GAET1H,MAAMC,QAAQyH,GAChB,IAAKqD,EAAQ,EAAGnM,EAAS8I,EAAO9I,OAAQmM,EAAQnM,EAAQmM,GAAS,EAC/D6hM,GAAYllM,EAAOqD,GAAQ2hM,EAASC,QAKtC,IAAK5hM,EAAQ,EAAGnM,GAFhBytM,EAAgBjvM,OAAOgW,KAAK1L,IAEW9I,OAAQmM,EAAQnM,EAAQmM,GAAS,EACtE6hM,GAAYllM,EAAO2kM,EAActhM,IAAS2hM,EAASC,EAK7D,CA0BA,SAASE,GAAQjoM,EAAMC,GACrB,OAAO,WACL,MAAM,IAAIxG,MAAM,iBAAmBuG,EAAnB,sCACAC,EAAK,0CACvB,CACF,CAqDA,SAjBa,CACZsU,KAlCyBjC,GAmCzBm+B,OAlCyBzmC,GAmCzBk+L,gBAlCyB7R,GAmCzB8R,YAlCyBx4L,GAmCzBy4L,YAlCyBr5K,GAmCzBs5K,eAlCyBvP,GAmCzBoI,KAlCyBphE,GAAOohE,KAmChCD,QAlCyBnhE,GAAOmhE,QAmChC6E,KAtDY,CACZA,KArBD,SAAgBhqK,EAAO1U,GAGrB,IAAI4+C,EAAQ,IAAIo9H,GAFhBh8K,EAAUA,GAAW,CAAC,GAIjB4+C,EAAM49H,QAAQiE,GAAuB/rK,EAAOkqC,GAEjD,IAAIttE,EAAQojC,EAMZ,OAJIkqC,EAAM0qF,WACRh4J,EAAQstE,EAAM0qF,SAAShlJ,KAAK,CAAE,GAAIhT,GAAS,GAAIA,IAG7CouM,GAAU9gI,EAAO,EAAGttE,GAAO,GAAM,GAAcstE,EAAM8/H,KAAO,KAEzD,EACT,GAwBiCA,KAmChCwC,cAlCyBh5F,GAmCzB58F,MAhCW,CACVskL,OAAWA,GACXI,MAAWA,GACX3wK,IAAWA,GACX5T,KAAWyjL,GACX5d,MAAWA,GACXzxK,IAAWA,GACXmwI,UAAWA,GACXs/C,KAAWA,GACXG,IAAWA,GACX95J,MAAWA,GACXy7J,KAAWA,GACXpC,IAAWA,GACXr9L,IAAWA,IAoBZwvM,SAhByBN,GAAQ,WAAY,QAiB7CO,YAhByBP,GAAQ,cAAe,WAiBhDQ,SAhByBR,GAAQ,WAAY,SCnvHvC,SAASS,GAAcr7L,GAC5B,MAAOyuB,EAAO02J,IAAYvjH,EAAAA,EAAAA,UAAS,KAC5B0gC,EAAQ8iF,IAAaxjH,EAAAA,EAAAA,UAAS,KAC9BtwE,EAAO+zL,IAAYzjH,EAAAA,EAAAA,UAAS,IAoBnC,OACEu0D,EAAAA,GAAAA,MAAA,OAAKrrG,MAAOw6J,GAAOnrE,UAAUhwF,SAAA,EAC3BisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,oBACJisG,EAAAA,GAAAA,KAAA,YACE/qI,MAAOojC,EACPsK,SAAW3mC,GAAM+yL,EAAS/yL,EAAE02B,OAAOz9B,OACnCuyC,YAAY,0BACZ9S,MAAOw6J,GAAOC,WAEfj0L,IAAS8kI,EAAAA,GAAAA,KAAA,KAAGtrG,MAAOw6J,GAAOh0L,MAAM64B,SAAE74B,KACnC8kI,EAAAA,GAAAA,KAAA,UAAQp9F,QA5BSwsJ,KACnB,IACE,MAAM8V,EAAaz4F,GAAAA,KAAUp0E,GACvB8sK,EAAgB14F,GAAAA,KAAUy4F,EAAY,CAAEtlF,OAAQ,IACtDovE,EAAUmW,GACVlW,EAAS,GACX,CAAE,MAAO5qL,GACP4qL,EAAS,gBAAgB5qL,EAAIW,WAC7BgqL,EAAU,GACZ,GAmBiCt6J,MAAOw6J,GAAOjgI,OAAOl7B,SAAC,iBACrDisG,EAAAA,GAAAA,KAAA,UAAQp9F,QAjBQ2sJ,KAClBR,EAAS,IACTC,EAAU,IACVC,EAAS,GAAG,EAcoBv6J,MAAOw6J,GAAOM,YAAYz7J,SAAC,WACzDisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,qBACJisG,EAAAA,GAAAA,KAAA,YACE/qI,MAAOi3G,EACPtkE,UAAQ,EACRJ,YAAY,qCACZ9S,MAAOw6J,GAAOC,aAItB,CAGA,MAAMD,GAAS,CACbnrE,UAAW,CACTqhF,SAAU,QACV3V,OAAQ,SACR30D,QAAS,OACTz5C,WAAY,qBAEd8tG,SAAU,CACR9lJ,MAAO,OACPpJ,OAAQ,QACR66F,QAAS,OACT40D,aAAc,OACdpuG,SAAU,OACVz3C,OAAQ,iBACRmjJ,aAAc,OAEhB/9H,OAAQ,CACN8rE,gBAAiB,UACjBxwF,MAAO,OACPuwF,QAAS,YACTjxF,OAAQ,OACRmjJ,aAAc,MACdntG,OAAQ,UACR8vG,YAAa,QAEfH,YAAa,CACXz0D,gBAAiB,UACjBxwF,MAAO,UACPuwF,QAAS,YACTjxF,OAAQ,OACRmjJ,aAAc,MACdntG,OAAQ,WAEV3kF,MAAO,CACLqvC,MAAO,YChFJ,SAAS86J,KACd,MAAOC,EAAUC,IAAe/5H,EAAAA,EAAAA,UAAS,YAClCg6H,EAAUC,IAAej6H,EAAAA,EAAAA,UAAS,mBAClCk6H,EAAUC,IAAen6H,EAAAA,EAAAA,UAAS,sBAalCo6H,EAAaC,IAAkBr6H,EAAAA,EAAAA,UAAS,MAOzCs6H,EAAYh5E,IAChB,IAAIlyD,EAAI,EACNtgB,EAAI,EACJviD,EAAI,EAMN,OALmB,IAAf+0H,EAAIv2H,SACNqkE,EAAImyC,SAAS+f,EAAI90H,MAAM,EAAG,GAAI,IAC9BsiD,EAAIyyD,SAAS+f,EAAI90H,MAAM,EAAG,GAAI,IAC9BD,EAAIg1G,SAAS+f,EAAI90H,MAAM,EAAG,GAAI,KAEzB,OAAO4iE,MAAMtgB,MAAMviD,IAAI,EAG1BguM,EAAYj5E,IAChB,IAAIlyD,EAAI,EACNtgB,EAAI,EACJviD,EAAI,EACa,IAAf+0H,EAAIv2H,SACNqkE,EAAImyC,SAAS+f,EAAI90H,MAAM,EAAG,GAAI,IAAM,IACpCsiD,EAAIyyD,SAAS+f,EAAI90H,MAAM,EAAG,GAAI,IAAM,IACpCD,EAAIg1G,SAAS+f,EAAI90H,MAAM,EAAG,GAAI,IAAM,KAEtC,MAAM4Y,EAAMD,KAAKC,IAAIgqD,EAAGtgB,EAAGviD,GACzBguB,EAAMpV,KAAKoV,IAAI60C,EAAGtgB,EAAGviD,GACvB,IAAIklD,EACFnnD,EACAuzB,GAAKzY,EAAMmV,GAAO,EAEpB,GAAInV,IAAQmV,EACVk3B,EAAInnD,EAAI,MACH,CACL,MAAMm+C,EAAIrjC,EAAMmV,EAEhB,OADAjwB,EAAIuzB,EAAI,GAAM4qB,GAAK,EAAIrjC,EAAMmV,GAAOkuB,GAAKrjC,EAAMmV,GACvCnV,GACN,KAAKgqD,EACH3d,GAAK3C,EAAIviD,GAAKk8C,GAAKqG,EAAIviD,EAAI,EAAI,GAC/B,MACF,KAAKuiD,EACH2C,GAAKllD,EAAI6iE,GAAK3mB,EAAI,EAClB,MACF,KAAKl8C,EACHklD,GAAK2d,EAAItgB,GAAKrG,EAAI,EAKtBgJ,GAAQ,EACV,CACA,MAAO,OAAOtsC,KAAKkoF,MAAM57C,OAAOtsC,KAAKkoF,MAAU,IAAJ/iG,QAAc6a,KAAKkoF,MACxD,IAAJxvE,MACG,EAUP,OACE02G,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,0FAAyFC,SAAA,EACxGisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAC,kBAClCgsG,EAAAA,GAAAA,MAAA,OAAKrrG,MAAOw6J,GAAOnrE,UAAUhwF,SAAA,EAC3BgsG,EAAAA,GAAAA,MAAA,OAAKrrG,MAAOw6J,GAAO8W,OAAOjyK,SAAA,EACxBisG,EAAAA,GAAAA,KAAA,SAAOnxH,KAAK,QAAQ5Z,MAAOqwM,EAAU3iK,SAZlB3mC,IACzB,MAAMiqM,EAAWjqM,EAAE02B,OAAOz9B,MAC1BswM,EAAYU,GACZR,EAAYK,EAASG,IACrBN,EAAYI,EAASE,GAAU,KASzBjmE,EAAAA,GAAAA,KAAA,SACEnxH,KAAK,OACL5Z,MAAOqwM,EACP3iK,SAAW3mC,IACT,MAAM8wH,EAAM9wH,EAAE02B,OAAOz9B,MACjB,kBAAkBc,KAAK+2H,KACzBy4E,EAAYz4E,GACZ24E,EAAYK,EAASh5E,IACrB64E,EAAYI,EAASj5E,IACvB,EAEFp4F,MAAOw6J,GAAO72J,YAIlB0nG,EAAAA,GAAAA,MAAA,OAAKrrG,MAAOw6J,GAAOh3K,OAAO6b,SAAA,EACxBgsG,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,SAAAjsG,SAAO,UACPisG,EAAAA,GAAAA,KAAA,SAAOnxH,KAAK,OAAO5Z,MAAOqwM,EAAU19J,UAAQ,EAAClT,MAAOw6J,GAAO72J,YAE7D0nG,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,SAAAjsG,SAAO,UACPisG,EAAAA,GAAAA,KAAA,SAAOnxH,KAAK,OAAO5Z,MAAOuwM,EAAU59J,UAAQ,EAAClT,MAAOw6J,GAAO72J,YAE7D0nG,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,SAAAjsG,SAAO,UACPisG,EAAAA,GAAAA,KAAA,SAAOnxH,KAAK,OAAO5Z,MAAOywM,EAAU99J,UAAQ,EAAClT,MAAOw6J,GAAO72J,eAI/D2nG,EAAAA,GAAAA,KAAA,OACEtrG,MAAO,CACLqmG,gBAAiBuqE,EACjBj8J,MAAO,MACPpJ,OAAQ,QACRimK,UAAW,OACXr8J,OAAQ,iBACRmjJ,aAAc,cAIpBjtD,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,2BAA0BC,SAAC,wBACzCgsG,EAAAA,GAAAA,MAAA,OAAKrrG,MAAOw6J,GAAOnrE,UAAUhwF,SAAA,EACzBisG,EAAAA,GAAAA,KAAA,OAAKtrG,MAAOw6J,GAAOiX,KAAKpyK,SAhIR,CACxB,CAAEh6B,KAAM,aAAc+yH,IAAK,WAC3B,CAAE/yH,KAAM,gBAAiB+yH,IAAK,WAC9B,CAAE/yH,KAAM,gBAAiB+yH,IAAK,WAC9B,CAAE/yH,KAAM,eAAgB+yH,IAAK,WAC7B,CAAE/yH,KAAM,YAAa+yH,IAAK,WAC1B,CAAE/yH,KAAM,gBAAiB+yH,IAAK,WAC9B,CAAE/yH,KAAM,WAAY+yH,IAAK,WACzB,CAAE/yH,KAAM,YAAa+yH,IAAK,WAC1B,CAAE/yH,KAAM,eAAgB+yH,IAAK,WAC7B,CAAE/yH,KAAM,iBAAkB+yH,IAAK,YAuHA9pG,KAAKunB,IACxBw1F,EAAAA,GAAAA,MAAA,OAEIrrG,MAAO,IAAKw6J,GAAOkX,WAAYrrE,gBAAiBxwF,EAAMuiF,KACtDlqF,QAASA,KAAMyjK,OAvHbv5E,EAuHwBviF,EAAMuiF,IAtHhDpG,UAAUkmE,UAAUC,UAAU//D,GAC9B+4E,EAAe/4E,QACf7wD,YAAW,IAAM4pI,EAAe,OAAO,KAHrB/4E,KAuHmC,EAAA/4F,SAAA,EAErCisG,EAAAA,GAAAA,KAAA,KAAGtrG,MAAOw6J,GAAOoX,UAAUvyK,SAAEwW,EAAMxwC,QACnCimI,EAAAA,GAAAA,KAAA,KAAGtrG,MAAOw6J,GAAOqX,QAAQxyK,SAAEwW,EAAMuiF,QAL5BviF,EAAMuiF,SASlB84E,IAAe7lE,EAAAA,GAAAA,MAAA,KAAGrrG,MAAOw6J,GAAOsX,cAAczyK,SAAA,CAAC,UAAQ6xK,EAAY,4BAKhF,CAGA,MAAM1W,GAAS,CACbnrE,UAAW,CACT1iC,WAAY,oBACZouG,OAAQ,YACR30D,QAAS,OACTC,gBAAiB,UACjBiyD,aAAc,QAEhBgZ,OAAQ,CACN3vH,QAAS,OACTowH,eAAgB,gBAChB/W,aAAc,OACd1C,aAAc,QAEhB30J,MAAO,CACLgR,MAAO,OACPyxF,QAAS,MACTorE,UAAW,MACX5kH,SAAU,OACVy5C,gBAAiB,WAEnB7iH,OAAQ,CACNm+D,QAAS,OACTqwH,oBAAqB,UACrBC,QAAS,OACTjX,aAAc,QAEhByW,KAAM,CACJ9vH,QAAS,OACTqwH,oBAAqB,wCACrBroG,IAAK,QAEP+nG,WAAY,CACVtrE,QAAS,OACTvwF,MAAO,OACP88I,UAAW,SACX2F,aAAc,MACdntG,OAAQ,UACRr0B,WAAY,8BAEd86I,UAAW,CACThlH,SAAU,OACVouG,aAAc,OAEhB6W,QAAS,CACPjlH,SAAU,QAEZklH,cAAe,CACbj8J,MAAO,QACP27J,UAAW,OACX7e,UAAW,SACX/lG,SAAU,SC5Md,IAAIslH,GACAC,GAAQ,IAAI//D,WAAW,IACZ,SAASggE,KAEtB,IAAKF,MAGHA,GAAoC,qBAAXG,QAA0BA,OAAOH,iBAAmBG,OAAOH,gBAAgBnsI,KAAKssI,SAA+B,qBAAbC,UAAgE,oBAA7BA,SAASJ,iBAAkCI,SAASJ,gBAAgBnsI,KAAKusI,WAGrO,MAAM,IAAIhxM,MAAM,4GAIpB,OAAO4wM,GAAgBC,GACzB,CClBA,+HCMA,SAJA,SAAkB96F,GAChB,MAAuB,kBAATA,GAAqBk7F,GAAMlxM,KAAKg2G,EAChD,ECIA,IAFA,IAAIm7F,GAAY,GAEPpwM,GAAI,EAAGA,GAAI,MAAOA,GACzBowM,GAAUjwM,MAAMH,GAAI,KAAOb,SAAS,IAAI06H,OAAO,IAoBjD,SAjBA,SAAmBrwH,GACjB,IAAI+1D,EAASljC,UAAU58B,OAAS,QAAsB3B,IAAjBu+B,UAAU,GAAmBA,UAAU,GAAK,EAG7E44E,GAAQm7F,GAAU5mM,EAAI+1D,EAAS,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,IAAM,IAAM6wI,GAAU5mM,EAAI+1D,EAAS,KAAO6wI,GAAU5mM,EAAI+1D,EAAS,KAAO6wI,GAAU5mM,EAAI+1D,EAAS,KAAO6wI,GAAU5mM,EAAI+1D,EAAS,KAAO6wI,GAAU5mM,EAAI+1D,EAAS,KAAO6wI,GAAU5mM,EAAI+1D,EAAS,MAAMv/B,cAMzf,IAAKvtB,GAASwiG,GACZ,MAAMp3E,UAAU,+BAGlB,OAAOo3E,CACT,ECJA,SApBA,SAAYpoF,EAASwjL,EAAK9wI,GAExB,IAAI+wI,GADJzjL,EAAUA,GAAW,CAAC,GACH42C,SAAW52C,EAAQmjL,KAAOA,MAK7C,GAHAM,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBD,EAAK,CACP9wI,EAASA,GAAU,EAEnB,IAAK,IAAIv/D,EAAI,EAAGA,EAAI,KAAMA,EACxBqwM,EAAI9wI,EAASv/D,GAAKswM,EAAKtwM,GAGzB,OAAOqwM,CACT,CAEA,OAAO5xM,GAAU6xM,EACnB,EClBO,SAASC,KACd,MAAOC,EAAUC,IAAe/7H,EAAAA,EAAAA,UAAS,KAClCg8H,EAAYC,IAAiBj8H,EAAAA,EAAAA,UAAS,MAiB7C,OACEu0D,EAAAA,GAAAA,MAAA,OAAKrrG,MAAOw6J,GAAOnrE,UAAUhwF,SAAA,EAC3BisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,oBACJisG,EAAAA,GAAAA,KAAA,UAAQp9F,QAlBS8kK,KACnB,MAAMC,EAAUC,KAChBL,EAAY,CAACI,KAAYL,GAAU,EAgBF5yK,MAAOw6J,GAAOjgI,OAAOl7B,SAAC,mBACrDisG,EAAAA,GAAAA,KAAA,UAAQp9F,QAROilK,KACjBN,EAAY,GAAG,EAOgB7yK,MAAOw6J,GAAOM,YAAYz7J,SAAC,iBACxDisG,EAAAA,GAAAA,KAAA,OAAKtrG,MAAOw6J,GAAOoY,SAASvzK,SACzBuzK,EAAStkL,KAAI,CAAC+oF,EAAMrpG,KACnBq9H,EAAAA,GAAAA,MAAA,OAAiBrrG,MAAOw6J,GAAO4Y,SAAS/zK,SAAA,EACtCisG,EAAAA,GAAAA,KAAA,QAAAjsG,SAAOg4E,KACPi0B,EAAAA,GAAAA,KAAA,UAAQp9F,QAASA,IAnBPmpE,KAClB2a,UAAUkmE,UAAUC,UAAU9gF,GAC9B07F,EAAc17F,GACd9vC,YAAW,IAAMwrI,EAAc,OAAO,IAAK,EAgBZpB,CAAWt6F,GAAOr3E,MAAOw6J,GAAO6Y,WAAWh0K,SAAC,WAF3DrxB,OAMb8kM,IAAcznE,EAAAA,GAAAA,MAAA,KAAGrrG,MAAOw6J,GAAOsX,cAAczyK,SAAA,CAAC,UAAQyzK,EAAW,sBAGxE,CAEA,MAAMtY,GAAS,CACbnrE,UAAW,CACT1iC,WAAY,oBACZ+jH,SAAU,QACV3V,OAAQ,YACR30D,QAAS,OACTjxF,OAAQ,iBACRmjJ,aAAc,MACd3F,UAAW,UAEbp4H,OAAQ,CACN8rE,gBAAiB,UACjBxwF,MAAO,OACPuwF,QAAS,YACT20D,OAAQ,OACR5lJ,OAAQ,OACRmjJ,aAAc,MACdntG,OAAQ,WAEV2vG,YAAa,CACXz0D,gBAAiB,UACjBxwF,MAAO,UACPuwF,QAAS,YACTjxF,OAAQ,OACRmjJ,aAAc,MACdntG,OAAQ,WAEVynH,SAAU,CACRpB,UAAW,OACX7e,UAAW,QAEbygB,SAAU,CACRzxH,QAAS,OACTowH,eAAgB,gBAChB1rE,gBAAiB,UACjBD,QAAS,OACT20D,OAAQ,SACR5lJ,OAAQ,iBACRmjJ,aAAc,OAEhB+a,WAAY,CACVhtE,gBAAiB,UACjBxwF,MAAO,OACPV,OAAQ,OACRixF,QAAS,WACTkyD,aAAc,MACdntG,OAAQ,WAEV2mH,cAAe,CACbj8J,MAAO,QACP27J,UAAW,OACX5kH,SAAU,mCCrFP,SAAS0mH,KACd,MAAOC,EAAUC,IAAe18H,EAAAA,EAAAA,UAAS,KAClC28H,EAAYC,IAAiB58H,EAAAA,EAAAA,UAAS,KACtC68H,EAAkBC,IAAuB98H,EAAAA,EAAAA,UAAS,MACnD+8H,EAAgB,ufA4BhB3jL,EAAM,IAAIvxB,MA6BhB,OACE0sI,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,iEAAgEC,SAAA,EAC7EisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,2BACJgsG,EAAAA,GAAAA,MAAA,OAAKrrG,MAAOw6J,GAAOsZ,eAAez0K,SAAA,EAChCisG,EAAAA,GAAAA,KAAA,YACEx4F,YAAY,0BACZvyC,MAAOgzM,EACPtlK,SAAW3mC,GAAMksM,EAAYlsM,EAAE02B,OAAOz9B,OACtCy/B,MAAOw6J,GAAOC,YAEhBnvD,EAAAA,GAAAA,KAAA,YACEx4F,YAAY,4BACZvyC,MAAOkzM,EACPxlK,SAAW3mC,GAAMosM,EAAcpsM,EAAE02B,OAAOz9B,OACxCy/B,MAAOw6J,GAAOC,eAGlBpvD,EAAAA,GAAAA,MAAA,OAAKrrG,MAAOw6J,GAAOuZ,gBAAgB10K,SAAA,EACjCisG,EAAAA,GAAAA,KAAA,UAAQp9F,QA7CS8lK,KACrB,IACE,MAAMC,EAAa1wM,KAAK2S,MAAMq9L,GACxBW,EAAe3wM,KAAK2S,MAAMu9L,GAE1B5+L,EAAWqb,EAAInK,QAAQmuL,GACvBC,EAAUt/L,EAASo/L,GAGvBL,EADEO,EACkB,CAAEA,SAAS,EAAMrkM,OAAQ,MAEzB,CAAEqkM,SAAS,EAAOrkM,OAAQ+E,EAAS/E,QAE3D,CAAE,MAAOtJ,GACPotM,EAAoB,CAClBO,SAAS,EACTrkM,OAAQ,CAAC,CAAEQ,QAAS,mCAExB,GA2BqC0vB,MAAOw6J,GAAOjgI,OAAOl7B,SAAC,cAGvDisG,EAAAA,GAAAA,KAAA,UAAQp9F,QA3BM2sJ,KAClB2Y,EAAY,IACZE,EAAc,IACdE,EAAoB,KAAK,EAwBS5zK,MAAOw6J,GAAOM,YAAYz7J,SAAC,aAI1Ds0K,IACCroE,EAAAA,GAAAA,KAAA,OAAKtrG,MAAOw6J,GAAO4Z,gBAAgB/0K,SAChCs0K,EAAiBQ,SAChB7oE,EAAAA,GAAAA,KAAA,KAAGtrG,MAAOw6J,GAAO6Z,aAAah1K,SAAC,4CAI/BgsG,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,KAAGtrG,MAAOw6J,GAAO8Z,eAAej1K,SAAC,8CAGjCisG,EAAAA,GAAAA,KAAA,MAAItrG,MAAOw6J,GAAO+Z,UAAUl1K,SACzBs0K,EAAiB7jM,OAAOwe,KAAI,CAAC9nB,EAAOwH,KACnCs9H,EAAAA,GAAAA,KAAA,MAAAjsG,SAAiB74B,EAAM8J,SAAdtC,aAOrBs9H,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,cACJgsG,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,eACJgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,aAAYC,SAAA,EACzBisG,EAAAA,GAAAA,KAAA,UACElsG,UAAU,cACV8O,QAASA,KACP8jF,UAAUkmE,UAAUC,UAAU0b,EAAc,EAC5Cx0K,UAEFisG,EAAAA,GAAAA,KAACqsD,GAAM,OAEPrsD,EAAAA,GAAAA,KAAC8sD,GAAiB,CAClB1rJ,SAAS,OACT1M,MAAOq4J,GACPjD,YAAa,CAAEkD,aAAc,QAASj5J,SAnG5B,iNAwGdisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,iBACJgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,aAAYC,SAAA,EACzBisG,EAAAA,GAAAA,KAAA,UACElsG,UAAU,cACV8O,QAASA,KACP8jF,UAAUkmE,UAAUC,UAAU0b,EAAc,EAC5Cx0K,UAEFisG,EAAAA,GAAAA,KAACqsD,GAAM,OAETrsD,EAAAA,GAAAA,KAAC8sD,GAAiB,CAChB1rJ,SAAS,OACT1M,MAAOq4J,GACPjD,YAAa,CAAEkD,aAAc,QAASj5J,SAErCw0K,YAMb,CAEA,MAAMrZ,GAAS,CACbnrE,UAAW,CACT1iC,WAAY,oBACZ+jH,SAAU,QACV3V,OAAQ,YACR30D,QAAS,OACTjxF,OAAQ,iBACRmjJ,aAAc,OAEhBwb,eAAgB,CACdnyH,QAAS,OACTgoB,IAAK,QAEP8wF,SAAU,CACR9lJ,MAAO,OACPpJ,OAAQ,QACR66F,QAAS,OACTx5C,SAAU,OACVz3C,OAAQ,iBACRmjJ,aAAc,OAEhByb,gBAAiB,CACfvC,UAAW,OACX7e,UAAW,UAEbp4H,OAAQ,CACN8rE,gBAAiB,UACjBxwF,MAAO,OACPuwF,QAAS,YACT60D,YAAa,OACb9lJ,OAAQ,OACRmjJ,aAAc,MACdntG,OAAQ,WAEV2vG,YAAa,CACXz0D,gBAAiB,UACjBxwF,MAAO,UACPuwF,QAAS,YACTjxF,OAAQ,OACRmjJ,aAAc,MACdntG,OAAQ,WAEVipH,gBAAiB,CACf5C,UAAW,QAEb6C,aAAc,CACZx+J,MAAO,QACPmX,WAAY,QAEdsnJ,eAAgB,CACdz+J,MAAO,MACPmX,WAAY,QAEdunJ,UAAW,CACT1+J,MAAO,QC7MJ,SAAS2+J,GAAYt/L,GAC1B,MAAOyZ,EAAO8lL,IAAY39H,EAAAA,EAAAA,UAAS,KAC5B49H,EAAYC,IAAiB79H,EAAAA,EAAAA,UAAS,KACtC89H,EAASC,IAAc/9H,EAAAA,EAAAA,UAAS,OAChCtwE,EAAO+zL,IAAYzjH,EAAAA,EAAAA,UAAS,KAGnCP,EAAAA,EAAAA,YAAU,KACR,IAAK5nD,EAGH,OAFAkmL,EAAW,WACXta,EAAS,IAIX,IAEEsa,EAAW,MACXta,EAAS,IAGT,MACM/2K,EADe,IAAIqF,OAAO,IAAI8F,MACRttB,KAAKqzM,GACjCG,EAAWrxL,EACb,CAAE,MAAO7T,GAEP4qL,EAAS,kBAAkB5qL,EAAIW,WAC/BukM,EAAW,KACb,IACC,CAAClmL,EAAO+lL,IASX,OACErpE,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,iEAAgEC,SAAA,EAC3EgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,oBAAmBC,SAAA,EAClCisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAI,kBACS,OAAZu1K,GACCtpE,EAAAA,GAAAA,KAAA,KAAAjsG,SAAG,wCACDu1K,GACFtpE,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,gBAAeC,SAAC,WAE7BisG,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,gBAAeC,SAAC,iBAGhC74B,IAAS8kI,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,gBAAeC,SAAE74B,KACxC6kI,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,kBAAiBC,SAAA,EAC9BisG,EAAAA,GAAAA,KAAA,YACEx4F,YAAY,mCACZvyC,MAAOouB,EACPsf,SAAW3mC,GAAMmtM,EAASntM,EAAE02B,OAAOz9B,OACnC6+B,UAAU,oBAEZksG,EAAAA,GAAAA,KAAA,YACEx4F,YAAY,2BACZvyC,MAAOm0M,EACPzmK,SAAW3mC,GAAMqtM,EAAcrtM,EAAE02B,OAAOz9B,OACxC6+B,UAAU,uBAIdksG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,mBAAkBC,UAC/BisG,EAAAA,GAAAA,KAAA,UAAQp9F,QApCM2sJ,KAClB4Z,EAAS,IACTE,EAAc,IACdE,EAAW,MACXta,EAAS,GAAG,EAgCsBn7J,UAAU,eAAcC,SAAC,cAI/D,CC/DO,SAASy1K,GAAM5/L,GACpB,MAAM,KAAC7P,GAAQu/H,KACf,OAAOv/H,GACL,IAAK,iBACH,OACEgmI,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,WACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,oBAClB+2F,EAAAA,GAAAA,KAAC8uD,GAAa,OAGpB,IAAK,iBACH,OACE/uD,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,WACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,oBAClB+2F,EAAAA,GAAAA,KAACilE,GAAa,OAGpB,IAAK,eACH,OACEllE,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,WACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,kBAClB+2F,EAAAA,GAAAA,KAACqlE,GAAoB,OAG3B,IAAK,iBACH,OACEtlE,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,WACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,oBAClB+2F,EAAAA,GAAAA,KAACqnE,GAAa,OAGpB,IAAK,wBACH,OACEtnE,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,WACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,2BAClB+2F,EAAAA,GAAAA,KAACgoE,GAAmB,OAG1B,IAAK,eACH,OACEjoE,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,WACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,kBAClB+2F,EAAAA,GAAAA,KAACkpE,GAAW,OAGlB,QACE,OACEnpE,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,WACnBsuE,EAAAA,GAAAA,KAACyE,GAAU,CAACx7F,MAAM,2BAClB+2F,EAAAA,GAAAA,KAAC0uD,GAAY,OAKvB,CCtEO,SAAS+a,GAAY7/L,GAC1B,MAAMq/B,EAAQr/B,EAAMq/B,MACd7T,EAAUxrB,EAAMwrB,QACtB,OACI2qG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,+BAA8BC,SAAA,EAC3CisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAKkV,KACL+2F,EAAAA,GAAAA,KAAA,KAAAjsG,SAAIqB,MAGZ,CCNA,MAAMs0K,GAAU,CACd,CACE3vM,KAAM,wBACN4lG,YAAa,yFACb30D,KAAM,mCA6BH,SAAS2+J,GAAQ//L,GACtB,MAAOggM,EAAYC,IAAiBr+H,EAAAA,EAAAA,UAAS,IAEvCs+H,EAAkBJ,GAAQ/2L,QAAOo3L,GACrCA,EAAOhwM,KAAK+8B,cAAcvkB,SAASq3L,EAAW9yK,gBAC9CizK,EAAOpqG,YAAY7oE,cAAcvkB,SAASq3L,EAAW9yK,iBAGvD,OACEipG,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,aACnBsuE,EAAAA,GAAAA,KAACypE,GAAW,CAACxgK,MAAM,UAAU7T,QAAQ,6BACrC4qG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,kBAAiBC,UAC9BgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,iEAAgEC,SAAA,EAG7EisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,OAAMC,UACnBisG,EAAAA,GAAAA,KAAA,SACEnxH,KAAK,OACL24B,YAAY,qBACZ1T,UAAU,yFACV7+B,MAAO20M,EACPjnK,SAAW3mC,GAAM6tM,EAAc7tM,EAAE02B,OAAOz9B,YAK5C+qI,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,2DAA0DC,SACtE+1K,EAAgBvzM,OAAS,EACxBuzM,EAAgB9mL,KAAI,CAAC+mL,EAAQrnM,KAC3Bs9H,EAAAA,GAAAA,KAACgqE,GAAU,CAAaD,OAAQA,GAAfrnM,MAGnBs9H,EAAAA,GAAAA,KAAA,KAAAjsG,SAAG,8BAOjB,CAEA,SAASi2K,GAAWpgM,GAClB,OACEm2H,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,4EAA2EC,SAAA,EACxFisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAKnqB,EAAMmgM,OAAOhwM,QAClBimI,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,YAAWC,SAAEnqB,EAAMmgM,OAAOpqG,eAEvCqgC,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,mBAAkBC,UAC/BgsG,EAAAA,GAAAA,MAAA,KACE3/F,KAAMx2B,EAAMmgM,OAAO/+J,KACnBlX,UAAU,wLAAuLC,SAAA,EAEjMisG,EAAAA,GAAAA,KAAA,QAAMlsG,UAAU,OAAMC,SAAC,YACvBisG,EAAAA,GAAAA,KAAA,OACElsG,UAAU,8BACVitD,KAAK,OACLwG,OAAO,eACP5kC,YAAY,IACZymC,QAAQ,YACR3vD,MAAM,6BAA4B1F,UAElCisG,EAAAA,GAAAA,KAAA,QAAMx4C,cAAc,QAAQC,eAAe,QAAQxzC,EAAE,sCAMjE,CCxGO,SAASg2J,GAAgBrgM,GAC9B,MAAMq/B,EAAQr/B,EAAMq/B,MACd7T,EAAUxrB,EAAMwrB,QACtB,OACI2qG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,6BAA4BC,SAAA,EACzCisG,EAAAA,GAAAA,KAAA,MAAAjsG,SAAKkV,KACL+2F,EAAAA,GAAAA,KAAA,KAAAjsG,SAAIqB,MAGZ,CCRA,MAAM80K,GAAgB,CACpBjhK,MAAO,wBACPkhK,QAAS,CACP,CAAEl/L,GAAI,EAAGg+B,MAAO,iCAAkC7T,QAAS,+GAC3D,CAAEnqB,GAAI,EAAGg+B,MAAO,iCAAkC7T,QAAS,wGAC3D,CAAEnqB,GAAI,EAAGg+B,MAAO,yCAA0C7T,QAAS,oJAIhE,SAASg1K,KACd,MAAOC,EAAgBC,IAAqB9+H,EAAAA,EAAAA,UAAS0+H,GAAcC,QAAQ,KACpEI,EAAUC,IAAeh/H,EAAAA,EAAAA,WAAS,GAEzC,OACEu0D,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,qCAAoCC,SAAA,EAEjDisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,mCAAkCC,UAC/CisG,EAAAA,GAAAA,KAAA,UACElsG,UAAU,iHACV8O,QAASA,IAAM4nK,GAAaD,GAAUx2K,SAErCw2K,EAAW,aAAe,sBAK/BvqE,EAAAA,GAAAA,KAAA,SACElsG,UAAW,oDACTy2K,EAAW,QAAU,UACpBx2K,UAEHisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,YAAWC,SACtBm2K,GAAcC,QAAQnnL,KAAKynL,IAC1BzqE,EAAAA,GAAAA,KAAA,MAAAjsG,UACEisG,EAAAA,GAAAA,KAAA,UACElsG,UAAW,kEACTu2K,EAAep/L,KAAOw/L,EAAOx/L,GAAK,4BAA8B,IAElE23B,QAASA,KACP0nK,EAAkBG,GAClBD,GAAY,EAAM,EAClBz2K,SAED02K,EAAOxhK,SAVHwhK,EAAOx/L,WAkBtB80H,EAAAA,GAAAA,MAAA,QAAMjsG,UAAU,+BAA8BC,SAAA,EAC5CisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,0BAAyBC,SAAEs2K,EAAephK,SACxD+2F,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,0BAAyBC,SAAEs2K,EAAej1K,eAI/D,CCrDO,SAASs1K,GAAc9gM,GAC5B,MAAM,KAAE7P,GAASu/H,KACjB,MACO,0BADCv/H,GAGFgmI,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,aACnBsuE,EAAAA,GAAAA,KAACiqE,GAAe,CAAChhK,MAAM,2BACvB+2F,EAAAA,GAAAA,KAACoqE,GAAoB,QAKvBrqE,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,aACnBsuE,EAAAA,GAAAA,KAACypE,GAAW,CAACxgK,MAAM,2BAI7B,CCLa,MCJP0hK,GAAoB,SAAUr1M,GAElC,MAAM43H,EAAgB,GACtB,IAAIviH,EAAI,EACR,IAAK,IAAI7T,EAAI,EAAGA,EAAIxB,EAAIiB,OAAQO,IAAK,CACnC,IAAIH,EAAIrB,EAAIovB,WAAW5tB,GACnBH,EAAI,IACNu2H,EAAIviH,KAAOhU,EACFA,EAAI,MACbu2H,EAAIviH,KAAQhU,GAAK,EAAK,IACtBu2H,EAAIviH,KAAY,GAAJhU,EAAU,KAEL,SAAZ,MAAJA,IACDG,EAAI,EAAIxB,EAAIiB,QACyB,SAAZ,MAAxBjB,EAAIovB,WAAW5tB,EAAI,KAGpBH,EAAI,QAAgB,KAAJA,IAAe,KAA6B,KAAtBrB,EAAIovB,aAAa5tB,IACvDo2H,EAAIviH,KAAQhU,GAAK,GAAM,IACvBu2H,EAAIviH,KAAShU,GAAK,GAAM,GAAM,IAC9Bu2H,EAAIviH,KAAShU,GAAK,EAAK,GAAM,IAC7Bu2H,EAAIviH,KAAY,GAAJhU,EAAU,MAEtBu2H,EAAIviH,KAAQhU,GAAK,GAAM,IACvBu2H,EAAIviH,KAAShU,GAAK,EAAK,GAAM,IAC7Bu2H,EAAIviH,KAAY,GAAJhU,EAAU,IAEzB,CACD,OAAOu2H,CACT,EA4Da09E,GAAiB,CAI5BC,eAAgB,KAKhBC,eAAgB,KAMhBC,sBAAuB,KAMvBC,sBAAuB,KAMvBC,kBACE,iEAKF,gBAAIC,GACF,OAAOt3M,KAAKq3M,kBAAoB,OAMlC,wBAAIE,GACF,OAAOv3M,KAAKq3M,kBAAoB,OAUlCG,mBAAoC,oBAATC,KAW3BC,eAAAA,CAAgBjzK,EAA8BkzK,GAC5C,IAAK5zM,MAAMC,QAAQygC,GACjB,MAAMriC,MAAM,iDAGdpC,KAAK43M,QAEL,MAAMC,EAAgBF,EAClB33M,KAAKm3M,sBACLn3M,KAAKi3M,eAEH3+F,EAAS,GAEf,IAAK,IAAIp1G,EAAI,EAAGA,EAAIuhC,EAAM9hC,OAAQO,GAAK,EAAG,CACxC,MAAM40M,EAAQrzK,EAAMvhC,GACd60M,EAAY70M,EAAI,EAAIuhC,EAAM9hC,OAC1Bq1M,EAAQD,EAAYtzK,EAAMvhC,EAAI,GAAK,EACnC+0M,EAAY/0M,EAAI,EAAIuhC,EAAM9hC,OAC1Bu1M,EAAQD,EAAYxzK,EAAMvhC,EAAI,GAAK,EAEnCi1M,EAAWL,GAAS,EACpBM,GAAqB,EAARN,IAAiB,EAAME,GAAS,EACnD,IAAIK,GAAqB,GAARL,IAAiB,EAAME,GAAS,EAC7CI,EAAmB,GAARJ,EAEVD,IACHK,EAAW,GAENP,IACHM,EAAW,KAIf//F,EAAOj1G,KACLw0M,EAAcM,GACdN,EAAcO,GACdP,EAAcQ,GACdR,EAAcS,GAEjB,CAED,OAAOhgG,EAAOr0G,KAAK,KAWrBs0M,YAAAA,CAAa9zK,EAAekzK,GAG1B,OAAI33M,KAAKw3M,qBAAuBG,EACvB5zD,KAAKt/G,GAEPzkC,KAAK03M,gBAAgBX,GAAkBtyK,GAAQkzK,IAWxDvjC,YAAAA,CAAa3vI,EAAekzK,GAG1B,OAAI33M,KAAKw3M,qBAAuBG,EACvBF,KAAKhzK,GA3LQ,SAAU46G,GAElC,MAAM/lB,EAAgB,GACtB,IAAIzoG,EAAM,EACR9tB,EAAI,EACN,KAAO8tB,EAAMwuH,EAAM18I,QAAQ,CACzB,MAAM4B,EAAK86I,EAAMxuH,KACjB,GAAItsB,EAAK,IACP+0H,EAAIv2H,KAAOkhC,OAAO45B,aAAat5D,QAC1B,GAAIA,EAAK,KAAOA,EAAK,IAAK,CAC/B,MAAMC,EAAK66I,EAAMxuH,KACjByoG,EAAIv2H,KAAOkhC,OAAO45B,cAAoB,GAALt5D,IAAY,EAAW,GAALC,EACpD,MAAM,GAAID,EAAK,KAAOA,EAAK,IAAK,CAE/B,MAGM+yB,IACI,EAAL/yB,IAAW,IAAa,GAJlB86I,EAAMxuH,OAImB,IAAa,GAHtCwuH,EAAMxuH,OAGuC,EAAW,GAFxDwuH,EAAMxuH,MAGf,MACFyoG,EAAIv2H,KAAOkhC,OAAO45B,aAAa,OAAUvmC,GAAK,KAC9CgiG,EAAIv2H,KAAOkhC,OAAO45B,aAAa,OAAc,KAAJvmC,GAC1C,KAAM,CACL,MAAM9yB,EAAK66I,EAAMxuH,KACX2nL,EAAKn5D,EAAMxuH,KACjByoG,EAAIv2H,KAAOkhC,OAAO45B,cACT,GAALt5D,IAAY,IAAa,GAALC,IAAY,EAAW,GAALg0M,EAE3C,CACF,CACD,OAAOl/E,EAAIr1H,KAAK,GAClB,CA8JWw0M,CAAkBz4M,KAAK04M,wBAAwBj0K,EAAOkzK,KAkB/De,uBAAAA,CAAwBj0K,EAAekzK,GACrC33M,KAAK43M,QAEL,MAAMe,EAAgBhB,EAClB33M,KAAKo3M,sBACLp3M,KAAKk3M,eAEH5+F,EAAmB,GAEzB,IAAK,IAAIp1G,EAAI,EAAGA,EAAIuhC,EAAM9hC,QAAU,CAClC,MAAMm1M,EAAQa,EAAcl0K,EAAMxC,OAAO/+B,MAGnC80M,EADY90M,EAAIuhC,EAAM9hC,OACFg2M,EAAcl0K,EAAMxC,OAAO/+B,IAAM,IACzDA,EAEF,MACMg1M,EADYh1M,EAAIuhC,EAAM9hC,OACFg2M,EAAcl0K,EAAMxC,OAAO/+B,IAAM,KACzDA,EAEF,MACM01M,EADY11M,EAAIuhC,EAAM9hC,OACFg2M,EAAcl0K,EAAMxC,OAAO/+B,IAAM,GAG3D,KAFEA,EAEW,MAAT40M,GAA0B,MAATE,GAA0B,MAATE,GAA0B,MAATU,EACrD,MAAM,IAAIC,GAGZ,MAAMV,EAAYL,GAAS,EAAME,GAAS,EAG1C,GAFA1/F,EAAOj1G,KAAK80M,GAEE,KAAVD,EAAc,CAChB,MAAME,EAAaJ,GAAS,EAAK,IAASE,GAAS,EAGnD,GAFA5/F,EAAOj1G,KAAK+0M,GAEE,KAAVQ,EAAc,CAChB,MAAMP,EAAaH,GAAS,EAAK,IAAQU,EACzCtgG,EAAOj1G,KAAKg1M,EACb,CACF,CACF,CAED,OAAO//F,GAQTs/F,KAAAA,GACE,IAAK53M,KAAKi3M,eAAgB,CACxBj3M,KAAKi3M,eAAiB,CAAC,EACvBj3M,KAAKk3M,eAAiB,CAAC,EACvBl3M,KAAKm3M,sBAAwB,CAAC,EAC9Bn3M,KAAKo3M,sBAAwB,CAAC,EAG9B,IAAK,IAAIl0M,EAAI,EAAGA,EAAIlD,KAAKs3M,aAAa30M,OAAQO,IAC5ClD,KAAKi3M,eAAe/zM,GAAKlD,KAAKs3M,aAAar1K,OAAO/+B,GAClDlD,KAAKk3M,eAAel3M,KAAKi3M,eAAe/zM,IAAMA,EAC9ClD,KAAKm3M,sBAAsBj0M,GAAKlD,KAAKu3M,qBAAqBt1K,OAAO/+B,GACjElD,KAAKo3M,sBAAsBp3M,KAAKm3M,sBAAsBj0M,IAAMA,EAGxDA,GAAKlD,KAAKq3M,kBAAkB10M,SAC9B3C,KAAKk3M,eAAel3M,KAAKu3M,qBAAqBt1K,OAAO/+B,IAAMA,EAC3DlD,KAAKo3M,sBAAsBp3M,KAAKs3M,aAAar1K,OAAO/+B,IAAMA,EAG/D,IAOC,MAAO21M,WAAgCz2M,MAA7CH,WAAAA,uBACW,KAAI,KAAG,2BAMX,MASM62M,GAAgC,SAAUp3M,GAErD,OAX0B,SAAUA,GACpC,MAAMq3M,EAAYhC,GAAkBr1M,GACpC,OAAOs1M,GAAOU,gBAAgBqB,GAAW,EAC3C,CAQSC,CAAat3M,GAAK4C,QAAQ,MAAO,GAC1C,EAWa20M,GAAe,SAAUv3M,GACpC,IACE,OAAOs1M,GAAO5iC,aAAa1yK,GAAK,EACjC,CAAC,MAAO0G,IACP4jB,QAAQ1kB,MAAM,wBAAyBc,GACxC,CACD,OAAO,IACT,EChUA,MAAM8wM,GAAwBA,eChC5B,GAAoB,qBAAT7jM,KACT,OAAOA,KAET,GAAsB,qBAAXmmC,OACT,OAAOA,OAET,GAAsB,qBAAXw9C,EAAAA,EACT,OAAOA,EAAAA,EAET,MAAM,IAAI52F,MAAM,kCAClB,CDuBE+2M,GAAYC,sBA2CDC,GAAcA,KACzB,IACE,OACEH,MApC6BI,MACjC,GAAuB,qBAAZ5jM,QACT,OAEF,MAAM6jM,EAAqB7jM,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY0jM,sBACvC,OAAIG,EACKl1M,KAAK2S,MAAMuiM,QADpB,CAEC,EA8BGD,IA3BwBE,MAC5B,GAAwB,qBAAb99J,SACT,OAEF,IAAI5b,EACJ,IACEA,EAAQ4b,SAASimG,OAAO7hH,MAAM,gCAC/B,CAAC,MAAO13B,IAGP,MACD,CACD,MAAMs3H,EAAU5/F,GAASm5K,GAAan5K,EAAM,IAC5C,OAAO4/F,GAAWr7H,KAAK2S,MAAM0oH,EAAQ,EAejC85E,EAEH,CAAC,MAAOpxM,IAQP,YADA4jB,QAAQ0X,KAAK,+CAA+Ct7B,KAE7D,GASUqxM,GACXC,IACuB,eAA4B,QAA5B,EAAe,QAAf,EAAAL,YAAe,eAAAM,qBAAa,eAAGD,EAAY,EAiCvDE,GAAsBA,KAAyC,MAC1E,OAAa,QAAb,EAAAP,YAAa,eAAExiE,MAAM,EAOVgjE,GACX1zM,IAEA,aAAa,QAAb,EAAAkzM,YAAa,eAAG,IAAIlzM,IAAoC,QEzJ7C2zM,GAIX73M,WAAAA,GAFA,KAAA25H,OAAoC,OACpC,KAAAhlH,QAAqC,OAEnC5W,KAAK27H,QAAU,IAAIlzD,SAAQ,CAAC7xD,EAASglH,KACnC57H,KAAK4W,QAAUA,EACf5W,KAAK47H,OAASA,CAAmC,IASrDm+E,YAAAA,CACEt7J,GAEA,MAAO,CAACn3C,EAAOjG,KACTiG,EACFtH,KAAK47H,OAAOt0H,GAEZtH,KAAK4W,QAAQvV,GAES,oBAAbo9C,IAGTz+C,KAAK27H,QAAQvyH,OAAM,SAIK,IAApBq1C,EAAS97C,OACX87C,EAASn3C,GAETm3C,EAASn3C,EAAOjG,GAEnB,YCzBS24M,KACd,MACuB,qBAAdlnF,WAC2B,kBAA3BA,UAAqB,UAErBA,UAAqB,UAErB,EAEX,CCmCM,MAAOmnF,WAAsB73M,MAIjCH,WAAAA,CAEWQ,EACT2O,EAEO8oM,GAEPt6M,MAAMwR,GALG,KAAI,KAAJ3O,EAGF,KAAU,WAAVy3M,EAPA,KAAI,KAdI,gBA2Bf/4M,OAAOm/C,eAAetgD,KAAMi6M,GAAclxL,WAItC3mB,MAAMuqI,mBACRvqI,MAAMuqI,kBAAkB3sI,KAAMm6M,GAAapxL,UAAUgd,eAK9Co0K,GAIXl4M,WAAAA,CACmBm4M,EACAC,EACAzpM,GAFA,KAAO,QAAPwpM,EACA,KAAW,YAAXC,EACA,KAAM,OAANzpM,EAGnBm1B,MAAAA,CACEtjC,GAGA,MAAMy3M,GAAc,0CAAyB,CAAC,EACxCI,EAAW,GAAGt6M,KAAKo6M,WAAW33M,IAC9By5C,EAAWl8C,KAAK4Q,OAAOnO,GAEvB2O,EAAU8qC,EAUpB,SAAyBA,EAAkBjqC,GACzC,OAAOiqC,EAAS53C,QAAQi2M,IAAS,CAAC94M,EAAGgD,KACnC,MAAMpD,EAAQ4Q,EAAKxN,GACnB,OAAgB,MAATpD,EAAgB4iC,OAAO5iC,GAAS,IAAIoD,KAAO,GAEtD,CAf+B+1M,CAAgBt+J,EAAUg+J,GAAc,QAE7DO,EAAc,GAAGz6M,KAAKq6M,gBAAgBjpM,MAAYkpM,MAIxD,OAFc,IAAIL,GAAcK,EAAUG,EAAaP,IAa3D,MAAMK,GAAU,gBC3EA,SAAAG,GAAUx2M,EAAWC,GACnC,GAAID,IAAMC,EACR,OAAO,EAGT,MAAMw2M,EAAQx5M,OAAOgW,KAAKjT,GACpB02M,EAAQz5M,OAAOgW,KAAKhT,GAC1B,IAAK,MAAM0qB,KAAK8rL,EAAO,CACrB,IAAKC,EAAMj8L,SAASkQ,GAClB,OAAO,EAGT,MAAMgsL,EAAS32M,EAA8B2qB,GACvCisL,EAAS32M,EAA8B0qB,GAC7C,GAAIqjH,GAAS2oE,IAAU3oE,GAAS4oE,IAC9B,IAAKJ,GAAUG,EAAOC,GACpB,OAAO,OAEJ,GAAID,IAAUC,EACnB,OAAO,CAEV,CAED,IAAK,MAAMjsL,KAAK+rL,EACd,IAAKD,EAAMh8L,SAASkQ,GAClB,OAAO,EAGX,OAAO,CACT,CAEA,SAASqjH,GAASP,GAChB,OAAiB,OAAVA,GAAmC,kBAAVA,CAClC,CCrEM,SAAUopE,GAAYC,GAG1B,MAAMvoM,EAAS,GACf,IAAK,MAAOhO,EAAKpD,KAAUF,OAAOs5I,QAAQugE,GACpCj3M,MAAMC,QAAQ3C,GAChBA,EAAMvB,SAAQm7M,IACZxoM,EAAOpP,KACLuZ,mBAAmBnY,GAAO,IAAMmY,mBAAmBq+L,GACpD,IAGHxoM,EAAOpP,KAAKuZ,mBAAmBnY,GAAO,IAAMmY,mBAAmBvb,IAGnE,OAAOoR,EAAO9P,OAAS,IAAM8P,EAAOxO,KAAK,KAAO,EAClD,CAMM,SAAUi3M,GAAkBH,GAChC,MAAMnuM,EAA8B,CAAC,EASrC,OARemuM,EAAYz2M,QAAQ,MAAO,IAAIwT,MAAM,KAE7ChY,SAAQ4oF,IACb,GAAIA,EAAO,CACT,MAAOjkF,EAAKpD,GAASqnF,EAAM5wE,MAAM,KACjClL,EAAI+P,mBAAmBlY,IAAQkY,mBAAmBtb,EACnD,KAEIuL,CACT,CAKM,SAAUuuM,GAAmBv6I,GACjC,MAAMw6I,EAAax6I,EAAIj8B,QAAQ,KAC/B,IAAKy2K,EACH,MAAO,GAET,MAAMC,EAAgBz6I,EAAIj8B,QAAQ,IAAKy2K,GACvC,OAAOx6I,EAAIhjB,UACTw9J,EACAC,EAAgB,EAAIA,OAAgBr6M,EAExC,CCEA,MAAMs6M,GAeJr5M,WAAAA,CAAYA,EAAuBs5M,GAd3B,KAAS,UAAmC,GAC5C,KAAY,aAAkB,GAE9B,KAAa,cAAG,EAEhB,KAAAC,KAAO/yI,QAAQ7xD,UACf,KAAS,WAAG,EASlB5W,KAAKu7M,cAAgBA,EAIrBv7M,KAAKw7M,KACF3nL,MAAK,KACJm4H,EAAShsJ,KAAK,IAEfoJ,OAAMhB,IACLpI,KAAKsH,MAAMc,EAAE,IAInBkqB,IAAAA,CAAKjxB,GACHrB,KAAKy7M,iBAAiBhnD,IACpBA,EAASniI,KAAKjxB,EAAM,IAIxBiG,KAAAA,CAAMA,GACJtH,KAAKy7M,iBAAiBhnD,IACpBA,EAASntJ,MAAMA,EAAM,IAEvBtH,KAAK6sG,MAAMvlG,GAGbw3K,QAAAA,GACE9+K,KAAKy7M,iBAAiBhnD,IACpBA,EAASqqB,UAAU,IAErB9+K,KAAK6sG,QASPm5C,SAAAA,CACE01D,EACAp0M,EACAw3K,GAEA,IAAIrqB,EAEJ,QACqBzzJ,IAAnB06M,QACU16M,IAAVsG,QACatG,IAAb89K,EAEA,MAAM,IAAI18K,MAAM,qBAahBqyJ,EAiIN,SACE7nJ,EACA+uM,GAEA,GAAmB,kBAAR/uM,GAA4B,OAARA,EAC7B,OAAO,EAGT,IAAK,MAAMmhC,KAAU4tK,EACnB,GAAI5tK,KAAUnhC,GAA8B,oBAAhBA,EAAImhC,GAC9B,OAAO,EAIX,OAAO,CACT,CAxJM6tK,CAAqBF,EAA8C,CACjE,OACA,QACA,aAGSA,EAEA,CACTppL,KAAMopL,EACNp0M,QACAw3K,iBAIkB99K,IAAlByzJ,EAASniI,OACXmiI,EAASniI,KAAOy6F,SAEK/rH,IAAnByzJ,EAASntJ,QACXmtJ,EAASntJ,MAAQylH,SAEO/rH,IAAtByzJ,EAASqqB,WACXrqB,EAASqqB,SAAW/xD,IAGtB,MAAM8uF,EAAQ77M,KAAK87M,eAAej1I,KAAK7mE,KAAMA,KAAK+7M,UAAWp5M,QAuB7D,OAlBI3C,KAAKg8M,WAEPh8M,KAAKw7M,KAAK3nL,MAAK,KACb,IACM7zB,KAAKi8M,WACPxnD,EAASntJ,MAAMtH,KAAKi8M,YAEpBxnD,EAASqqB,UAEZ,CAAC,MAAO12K,KAGH,IAIVpI,KAAK+7M,UAAW14M,KAAKoxJ,GAEdonD,EAKDC,cAAAA,CAAe54M,QACElC,IAAnBhB,KAAK+7M,gBAAiD/6M,IAAtBhB,KAAK+7M,UAAU74M,YAI5ClD,KAAK+7M,UAAU74M,GAEtBlD,KAAKk8M,eAAiB,EACK,IAAvBl8M,KAAKk8M,oBAA8Cl7M,IAAvBhB,KAAKu7M,eACnCv7M,KAAKu7M,cAAcv7M,OAIfy7M,eAAAA,CAAgBlgF,GACtB,IAAIv7H,KAAKg8M,UAOT,IAAK,IAAI94M,EAAI,EAAGA,EAAIlD,KAAK+7M,UAAWp5M,OAAQO,IAC1ClD,KAAKm8M,QAAQj5M,EAAGq4H,GAOZ4gF,OAAAA,CAAQj5M,EAAWq4H,GAGzBv7H,KAAKw7M,KAAK3nL,MAAK,KACb,QAAuB7yB,IAAnBhB,KAAK+7M,gBAAiD/6M,IAAtBhB,KAAK+7M,UAAU74M,GACjD,IACEq4H,EAAGv7H,KAAK+7M,UAAU74M,GACnB,CAAC,MAAOkF,IAIgB,qBAAZ4jB,SAA2BA,QAAQ1kB,OAC5C0kB,QAAQ1kB,MAAMc,GAEjB,CACF,IAIGykG,KAAAA,CAAMp8F,GACRzQ,KAAKg8M,YAGTh8M,KAAKg8M,WAAY,OACLh7M,IAARyP,IACFzQ,KAAKi8M,WAAaxrM,GAIpBzQ,KAAKw7M,KAAK3nL,MAAK,KACb7zB,KAAK+7M,eAAY/6M,EACjBhB,KAAKu7M,mBAAgBv6M,CAAS,MAyCpC,SAAS+rH,MCrRH,SAAUqvF,GACdhC,GAEA,OAAIA,GAAYA,EAA+BiC,UACrCjC,EAA+BiC,UAEhCjC,CAEX,OCDazsI,GAiBX1rE,WAAAA,CACWkE,EACAm2M,EACArhM,GAFA,KAAI,KAAJ9U,EACA,KAAe,gBAAfm2M,EACA,KAAI,KAAJrhM,EAnBX,KAAiB,mBAAG,EAIpB,KAAY,aAAe,CAAC,EAE5B,KAAAshM,kBAA2C,OAE3C,KAAiB,kBAAwC,KAczDC,oBAAAA,CAAqBr/L,GAEnB,OADAnd,KAAKu8M,kBAAoBp/L,EAClBnd,KAGTy8M,oBAAAA,CAAqBC,GAEnB,OADA18M,KAAK08M,kBAAoBA,EAClB18M,KAGT28M,eAAAA,CAAgB3mM,GAEd,OADAhW,KAAK48M,aAAe5mM,EACbhW,KAGT68M,0BAAAA,CAA2Bp+J,GAEzB,OADAz+C,KAAK88M,kBAAoBr+J,EAClBz+C,MCnDJ,MAAM+8M,GAAqB,kBCgBrB5kH,GAWXl2F,WAAAA,CACmBA,EACAkuH,GADA,KAAI,KAAJhqH,EACA,KAAS,UAATgqH,EAZX,KAAS,UAAwB,KACxB,KAAA6sF,UAAgD,IAAIrtM,IACpD,KAAAstM,kBAGb,IAAIttM,IACS,KAAAutM,iBACf,IAAIvtM,IACE,KAAAwtM,gBAAuD,IAAIxtM,IAWnEpO,GAAAA,CAAIu7F,GAEF,MAAMsgH,EAAuBp9M,KAAKq9M,4BAA4BvgH,GAE9D,IAAK98F,KAAKi9M,kBAAkBluM,IAAIquM,GAAuB,CACrD,MAAME,EAAW,IAAIxD,GAGrB,GAFA95M,KAAKi9M,kBAAkBrtM,IAAIwtM,EAAsBE,GAG/Ct9M,KAAKu9M,cAAcH,IACnBp9M,KAAKw9M,uBAGL,IACE,MAAMp3I,EAAWpmE,KAAKy9M,uBAAuB,CAC3CC,mBAAoBN,IAElBh3I,GACFk3I,EAAS1mM,QAAQwvD,EAEpB,CAAC,MAAOh+D,KAKZ,CAED,OAAOpI,KAAKi9M,kBAAkB17M,IAAI67M,GAAuBzhF,QAmB3DgiF,YAAAA,CAAa5tL,SAKX,MAAMqtL,EAAuBp9M,KAAKq9M,4BAChC,OAAAttL,QAAA,IAAAA,OAAA,EAAAA,EAAS+sE,YAEL0kB,EAAgC,QAArB,SAAAzxF,QAAA,IAAAA,OAAA,EAAAA,EAASyxF,gBAAY,SAEtC,IACExhH,KAAKu9M,cAAcH,KACnBp9M,KAAKw9M,uBAaA,CAEL,GAAIh8F,EACF,OAAO,KAEP,MAAMp/G,MAAM,WAAWpC,KAAKmG,wBAE/B,CAlBC,IACE,OAAOnG,KAAKy9M,uBAAuB,CACjCC,mBAAoBN,GAEvB,CAAC,MAAOh1M,IACP,GAAIo5G,EACF,OAAO,KAEP,MAAMp5G,EAET,EAWLw1M,YAAAA,GACE,OAAO59M,KAAKuhH,UAGds8F,YAAAA,CAAat8F,GACX,GAAIA,EAAUp7G,OAASnG,KAAKmG,KAC1B,MAAM/D,MACJ,yBAAyBm/G,EAAUp7G,qBAAqBnG,KAAKmG,SAIjE,GAAInG,KAAKuhH,UACP,MAAMn/G,MAAM,iBAAiBpC,KAAKmG,kCAMpC,GAHAnG,KAAKuhH,UAAYA,EAGZvhH,KAAKw9M,uBAAV,CAKA,GA0NJ,SAA0Cj8F,GACxC,MAAuC,UAAhCA,EAAUg7F,iBACnB,CA5NQuB,CAAiBv8F,GACnB,IACEvhH,KAAKy9M,uBAAuB,CAAEC,mBAAoBX,IACnD,CAAC,MAAO30M,KAWX,IAAK,MACHs1M,EACAK,KACG/9M,KAAKi9M,kBAAkBxiE,UAAW,CACrC,MAAM2iE,EACJp9M,KAAKq9M,4BAA4BK,GAEnC,IAEE,MAAMt3I,EAAWpmE,KAAKy9M,uBAAuB,CAC3CC,mBAAoBN,IAEtBW,EAAiBnnM,QAAQwvD,EAC1B,CAAC,MAAOh+D,KAIV,CAlCA,EAqCH41M,aAAAA,GAAqD,IAAvClhH,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAqBigH,GACjC/8M,KAAKi9M,kBAAkB5mM,OAAOymF,GAC9B98F,KAAKk9M,iBAAiB7mM,OAAOymF,GAC7B98F,KAAKg9M,UAAU3mM,OAAOymF,GAKxB,YAAMzmF,GACJ,MAAM4nM,EAAWl6M,MAAM4E,KAAK3I,KAAKg9M,UAAUntM,gBAErC44D,QAAQ/sD,IAAI,IACbuiM,EACAl/L,QAAOq7L,GAAW,aAAcA,IAEhChrL,KAAIgrL,GAAYA,EAAgB8D,SAAU7nM,cAC1C4nM,EACAl/L,QAAOq7L,GAAW,YAAaA,IAE/BhrL,KAAIgrL,GAAYA,EAAgB+D,cAIvCC,cAAAA,GACE,OAAyB,MAAlBp+M,KAAKuhH,UAGdg8F,aAAAA,GAAqD,IAAvCzgH,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAqBigH,GACjC,OAAO/8M,KAAKg9M,UAAUjuM,IAAI+tF,GAG5BuhH,UAAAA,GAAkD,IAAvCvhH,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAqBigH,GAC9B,OAAO/8M,KAAKk9M,iBAAiB37M,IAAIu7F,IAAe,CAAC,EAGnD0kE,UAAAA,GAAuC,IAA5BthK,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAA0B,CAAC,EACpC,MAAM,QAAE6vB,EAAU,CAAC,GAAM7vB,EACnBk9M,EAAuBp9M,KAAKq9M,4BAChCn9M,EAAKw9M,oBAEP,GAAI19M,KAAKu9M,cAAcH,GACrB,MAAMh7M,MACJ,GAAGpC,KAAKmG,QAAQi3M,mCAIpB,IAAKp9M,KAAKo+M,iBACR,MAAMh8M,MAAM,aAAapC,KAAKmG,oCAGhC,MAAMigE,EAAWpmE,KAAKy9M,uBAAuB,CAC3CC,mBAAoBN,EACpBrtL,YAIF,IAAK,MACH2tL,EACAK,KACG/9M,KAAKi9M,kBAAkBxiE,UAAW,CAGjC2iE,IADFp9M,KAAKq9M,4BAA4BK,IAEjCK,EAAiBnnM,QAAQwvD,EAE5B,CAED,OAAOA,EAWTk4I,MAAAA,CAAO7/J,EAA6Bq+C,SAClC,MAAMsgH,EAAuBp9M,KAAKq9M,4BAA4BvgH,GACxDyhH,EAC0C,QAA9C,EAAAv+M,KAAKm9M,gBAAgB57M,IAAI67M,UAAqB,QAC9C,IAAI3yM,IACN8zM,EAAkB7zM,IAAI+zC,GACtBz+C,KAAKm9M,gBAAgBvtM,IAAIwtM,EAAsBmB,GAE/C,MAAMC,EAAmBx+M,KAAKg9M,UAAUz7M,IAAI67M,GAK5C,OAJIoB,GACF//J,EAAS+/J,EAAkBpB,GAGtB,KACLmB,EAAkBloM,OAAOooC,EAAS,EAQ9BggK,qBAAAA,CACNr4I,EACA02B,GAEA,MAAMq0B,EAAYnxH,KAAKm9M,gBAAgB57M,IAAIu7F,GAC3C,GAAKq0B,EAGL,IAAK,MAAM1yE,KAAY0yE,EACrB,IACE1yE,EAAS2nB,EAAU02B,EACpB,CAAC,MAAMx7C,KAMJm8J,sBAAAA,CAAuB,GAM9B,IAN8B,mBAC7BC,EAAkB,QAClB3tL,EAAU,CAAC,GAIZ,EACKq2C,EAAWpmE,KAAKg9M,UAAUz7M,IAAIm8M,GAClC,IAAKt3I,GAAYpmE,KAAKuhH,YACpBn7C,EAAWpmE,KAAKuhH,UAAU+6F,gBAAgBt8M,KAAKmwH,UAAW,CACxDutF,oBAqD+B5gH,EArDmB4gH,EAsDjD5gH,IAAeigH,QAAqB/7M,EAAY87F,GArDjD/sE,YAEF/vB,KAAKg9M,UAAUptM,IAAI8tM,EAAoBt3I,GACvCpmE,KAAKk9M,iBAAiBttM,IAAI8tM,EAAoB3tL,GAO9C/vB,KAAKy+M,sBAAsBr4I,EAAUs3I,GAOjC19M,KAAKuhH,UAAUu7F,mBACjB,IACE98M,KAAKuhH,UAAUu7F,kBACb98M,KAAKmwH,UACLutF,EACAt3I,EAEH,CAAC,MAAM9kB,IA4BhB,IAAuCw7C,EAtBnC,OAAO12B,GAAY,KAGbi3I,2BAAAA,GACiC,IAAvCvgH,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAqBigH,GAErB,OAAI/8M,KAAKuhH,UACAvhH,KAAKuhH,UAAUm7F,kBAAoB5/G,EAAaigH,GAEhDjgH,EAIH0gH,oBAAAA,GACN,QACIx9M,KAAKuhH,WAC8B,aAArCvhH,KAAKuhH,UAAUg7F,yBCrVRmC,GAGXz8M,WAAAA,CAA6BkE,GAAA,KAAI,KAAJA,EAFZ,KAAAw4M,UAAY,IAAIhvM,IAajCivM,YAAAA,CAA6Br9F,GAC3B,MAAMs9F,EAAW7+M,KAAK8+M,YAAYv9F,EAAUp7G,MAC5C,GAAI04M,EAAST,iBACX,MAAM,IAAIh8M,MACR,aAAam/G,EAAUp7G,yCAAyCnG,KAAKmG,QAIzE04M,EAAShB,aAAat8F,GAGxBw9F,uBAAAA,CAAwCx9F,GACrBvhH,KAAK8+M,YAAYv9F,EAAUp7G,MAC/Bi4M,kBAEXp+M,KAAK2+M,UAAUtoM,OAAOkrG,EAAUp7G,MAGlCnG,KAAK4+M,aAAar9F,GAUpBu9F,WAAAA,CAA4B34M,GAC1B,GAAInG,KAAK2+M,UAAU5vM,IAAI5I,GACrB,OAAOnG,KAAK2+M,UAAUp9M,IAAI4E,GAI5B,MAAM04M,EAAW,IAAI1mH,GAAYhyF,EAAMnG,MAGvC,OAFAA,KAAK2+M,UAAU/uM,IAAIzJ,EAAM04M,GAElBA,EAGTG,YAAAA,GACE,OAAOj7M,MAAM4E,KAAK3I,KAAK2+M,UAAU9uM,WCtC9B,MAAMmtM,GAAsB,OAavBiC,IAAZ,SAAYA,GACVA,EAAAA,EAAAA,MAAAA,GAAAA,QACAA,EAAAA,EAAAA,QAAAA,GAAAA,UACAA,EAAAA,EAAAA,KAAAA,GAAAA,OACAA,EAAAA,EAAAA,KAAAA,GAAAA,OACAA,EAAAA,EAAAA,MAAAA,GAAAA,QACAA,EAAAA,EAAAA,OAAAA,GAAAA,QACD,CAPD,CAAYA,KAAAA,GAOX,KAED,MAAMC,GAA2D,CAC/D,MAASD,GAASE,MAClB,QAAWF,GAASG,QACpB,KAAQH,GAASI,KACjB,KAAQJ,GAASK,KACjB,MAASL,GAASM,MAClB,OAAUN,GAASO,QAMfC,GAA4BR,GAASI,KAmBrCK,GAAgB,CACpB,CAACT,GAASE,OAAQ,MAClB,CAACF,GAASG,SAAU,MACpB,CAACH,GAASI,MAAO,OACjB,CAACJ,GAASK,MAAO,OACjB,CAACL,GAASM,OAAQ,SAQdI,GAAgC,SAACv5I,EAAUw5I,GAC/C,GAAIA,EAAUx5I,EAASy5I,SACrB,OAEF,MAAM5lJ,GAAM,IAAID,MAAOm+E,cACjBpqG,EAAS2xK,GAAcE,GAC7B,IAAI7xK,EAMF,MAAM,IAAI3rC,MACR,8DAA8Dw9M,MAPtD,2BAN+Cz8M,EAAI,iCAAJA,EAAI,kBAO7D6oB,QAAQ+hB,GACN,IAAIksB,OAASmM,EAASjgE,WACnBhD,EAOT,QAEa28M,GAOX79M,WAAAA,CAAmBkE,GAAA,KAAI,KAAJA,EAUX,KAAS,UAAGs5M,GAsBZ,KAAW,YAAeE,GAc1B,KAAe,gBAAsB,KA1C3C3C,GAAU35M,KAAKrD,MAQjB,YAAI6/M,GACF,OAAO7/M,KAAK+/M,UAGd,YAAIF,CAAS19K,GACX,KAAMA,KAAO88K,IACX,MAAM,IAAIl+K,UAAU,kBAAkBoB,+BAExCniC,KAAK+/M,UAAY59K,EAInB69K,WAAAA,CAAY79K,GACVniC,KAAK+/M,UAA2B,kBAAR59K,EAAmB+8K,GAAkB/8K,GAAOA,EAQtE,cAAI89K,GACF,OAAOjgN,KAAKkgN,YAEd,cAAID,CAAW99K,GACb,GAAmB,oBAARA,EACT,MAAM,IAAIpB,UAAU,qDAEtB/gC,KAAKkgN,YAAc/9K,EAOrB,kBAAIg+K,GACF,OAAOngN,KAAKogN,gBAEd,kBAAID,CAAeh+K,GACjBniC,KAAKogN,gBAAkBj+K,EAOzBk+K,KAAAA,GAAwB,2BAAfl9M,EAAe,yBAAfA,EAAe,gBACtBnD,KAAKogN,iBAAmBpgN,KAAKogN,gBAAgBpgN,KAAMi/M,GAASE,SAAUh8M,GACtEnD,KAAKkgN,YAAYlgN,KAAMi/M,GAASE,SAAUh8M,GAE5C8oB,GAAAA,GAAsB,2BAAf9oB,EAAe,yBAAfA,EAAe,gBACpBnD,KAAKogN,iBACHpgN,KAAKogN,gBAAgBpgN,KAAMi/M,GAASG,WAAYj8M,GAClDnD,KAAKkgN,YAAYlgN,KAAMi/M,GAASG,WAAYj8M,GAE9CugC,IAAAA,GAAuB,2BAAfvgC,EAAe,yBAAfA,EAAe,gBACrBnD,KAAKogN,iBAAmBpgN,KAAKogN,gBAAgBpgN,KAAMi/M,GAASI,QAASl8M,GACrEnD,KAAKkgN,YAAYlgN,KAAMi/M,GAASI,QAASl8M,GAE3Cia,IAAAA,GAAuB,2BAAfja,EAAe,yBAAfA,EAAe,gBACrBnD,KAAKogN,iBAAmBpgN,KAAKogN,gBAAgBpgN,KAAMi/M,GAASK,QAASn8M,GACrEnD,KAAKkgN,YAAYlgN,KAAMi/M,GAASK,QAASn8M,GAE3CmE,KAAAA,GAAwB,2BAAfnE,EAAe,yBAAfA,EAAe,gBACtBnD,KAAKogN,iBAAmBpgN,KAAKogN,gBAAgBpgN,KAAMi/M,GAASM,SAAUp8M,GACtEnD,KAAKkgN,YAAYlgN,KAAMi/M,GAASM,SAAUp8M,ICjN9C,MAAMm9M,GAAgBA,CAAC70M,EAAQ80M,IAAiBA,EAAa92M,MAAM1G,GAAM0I,aAAkB1I,IAE3F,IAAIy9M,GACAC,GAqBJ,MAAMC,GAAmB,IAAI9nI,QACvB+nI,GAAqB,IAAI/nI,QACzBgoI,GAA2B,IAAIhoI,QAC/BioI,GAAiB,IAAIjoI,QACrBkoI,GAAwB,IAAIloI,QA0DlC,IAAImoI,GAAgB,CAChBx/M,GAAAA,CAAIu9B,EAAQje,EAAMmgM,GACd,GAAIliL,aAAkBmiL,eAAgB,CAElC,GAAa,SAATpgM,EACA,OAAO8/L,GAAmBp/M,IAAIu9B,GAElC,GAAa,qBAATje,EACA,OAAOie,EAAOoiL,kBAAoBN,GAAyBr/M,IAAIu9B,GAGnE,GAAa,UAATje,EACA,OAAOmgM,EAASE,iBAAiB,QAC3BlgN,EACAggN,EAASG,YAAYH,EAASE,iBAAiB,GAE7D,CAEA,OAAOxrK,GAAK5W,EAAOje,GACvB,EACAjR,IAAGA,CAACkvB,EAAQje,EAAMxf,KACdy9B,EAAOje,GAAQxf,GACR,GAEX0N,IAAGA,CAAC+vB,EAAQje,IACJie,aAAkBmiL,iBACR,SAATpgM,GAA4B,UAATA,IAGjBA,KAAQie,GAMvB,SAASsiL,GAAavzM,GAIlB,OAAIA,IAASwzM,YAAYt4L,UAAUu4L,aAC7B,qBAAsBL,eAAel4L,WA7GnC03L,KACHA,GAAuB,CACpBc,UAAUx4L,UAAUy4L,QACpBD,UAAUx4L,UAAU04L,SACpBF,UAAUx4L,UAAU24L,sBAqHE/iM,SAAS9Q,GAC5B,WAAmB,QAAAkwI,EAAAx+G,UAAA58B,OAANQ,EAAI,IAAAY,MAAAg6I,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ76I,EAAI66I,GAAAz+G,UAAAy+G,GAIpB,OADAnwI,EAAKgsC,MAAM8nK,GAAO3hN,MAAOmD,GAClBuyC,GAAKgrK,GAAiBn/M,IAAIvB,MACrC,EAEG,WAAmB,QAAAm7K,EAAA57I,UAAA58B,OAANQ,EAAI,IAAAY,MAAAo3K,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJj4K,EAAIi4K,GAAA77I,UAAA67I,GAGpB,OAAO1lI,GAAK7nC,EAAKgsC,MAAM8nK,GAAO3hN,MAAOmD,GACzC,EAvBW,SAAUy+M,GAAqB,QAAAn1E,EAAAltG,UAAA58B,OAANQ,EAAI,IAAAY,MAAA0oI,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJvpI,EAAIupI,EAAA,GAAAntG,UAAAmtG,GAChC,MAAMm1E,EAAKh0M,EAAKwG,KAAKstM,GAAO3hN,MAAO4hN,KAAez+M,GAElD,OADAy9M,GAAyBhxM,IAAIiyM,EAAID,EAAWziF,KAAOyiF,EAAWziF,OAAS,CAACyiF,IACjElsK,GAAKmsK,EAChB,CAoBR,CACA,SAASC,GAAuBzgN,GAC5B,MAAqB,oBAAVA,EACA+/M,GAAa//M,IAGpBA,aAAiB4/M,gBAhGzB,SAAwCY,GAEpC,GAAIlB,GAAmB5xM,IAAI8yM,GACvB,OACJ,MAAMhjK,EAAO,IAAI4pB,SAAQ,CAAC7xD,EAASglH,KAC/B,MAAMmmF,EAAWA,KACbF,EAAGtwJ,oBAAoB,WAAYutH,GACnC+iC,EAAGtwJ,oBAAoB,QAASjqD,GAChCu6M,EAAGtwJ,oBAAoB,QAASjqD,EAAM,EAEpCw3K,EAAWA,KACbloK,IACAmrM,GAAU,EAERz6M,EAAQA,KACVs0H,EAAOimF,EAAGv6M,OAAS,IAAIi3H,aAAa,aAAc,eAClDwjF,GAAU,EAEdF,EAAGvwJ,iBAAiB,WAAYwtH,GAChC+iC,EAAGvwJ,iBAAiB,QAAShqD,GAC7Bu6M,EAAGvwJ,iBAAiB,QAAShqD,EAAM,IAGvCq5M,GAAmB/wM,IAAIiyM,EAAIhjK,EAC/B,CAyEQmjK,CAA+B3gN,GAC/Bi/M,GAAcj/M,EAzJVm/M,KACHA,GAAoB,CACjBa,YACAY,eACAC,SACAX,UACAN,kBAoJG,IAAIkB,MAAM9gN,EAAO0/M,IAErB1/M,EACX,CACA,SAASq0C,GAAKr0C,GAGV,GAAIA,aAAiB+gN,WACjB,OA3IR,SAA0BrmF,GACtB,MAAMJ,EAAU,IAAIlzD,SAAQ,CAAC7xD,EAASglH,KAClC,MAAMmmF,EAAWA,KACbhmF,EAAQxqE,oBAAoB,UAAW8wJ,GACvCtmF,EAAQxqE,oBAAoB,QAASjqD,EAAM,EAEzC+6M,EAAUA,KACZzrM,EAAQ8+B,GAAKqmF,EAAQz3G,SACrBy9L,GAAU,EAERz6M,EAAQA,KACVs0H,EAAOG,EAAQz0H,OACfy6M,GAAU,EAEdhmF,EAAQzqE,iBAAiB,UAAW+wJ,GACpCtmF,EAAQzqE,iBAAiB,QAAShqD,EAAM,IAe5C,OAbAq0H,EACK9nG,MAAMxyB,IAGHA,aAAiBkgN,WACjBb,GAAiB9wM,IAAIvO,EAAO06H,EAChC,IAGC3yH,OAAM,SAGX03M,GAAsBlxM,IAAI+rH,EAASI,GAC5BJ,CACX,CA4Ge2mF,CAAiBjhN,GAG5B,GAAIw/M,GAAe9xM,IAAI1N,GACnB,OAAOw/M,GAAet/M,IAAIF,GAC9B,MAAM29B,EAAW8iL,GAAuBzgN,GAOxC,OAJI29B,IAAa39B,IACbw/M,GAAejxM,IAAIvO,EAAO29B,GAC1B8hL,GAAsBlxM,IAAIovB,EAAU39B,IAEjC29B,CACX,CACA,MAAM2iL,GAAUtgN,GAAUy/M,GAAsBv/M,IAAIF,GCrIpD,MAAMkhN,GAAc,CAAC,MAAO,SAAU,SAAU,aAAc,SACxDC,GAAe,CAAC,MAAO,MAAO,SAAU,SACxCC,GAAgB,IAAI9yM,IAC1B,SAAS+yM,GAAU5jL,EAAQje,GACvB,KAAMie,aAAkBuiL,cAClBxgM,KAAQie,GACM,kBAATje,EACP,OAEJ,GAAI4hM,GAAclhN,IAAIsf,GAClB,OAAO4hM,GAAclhN,IAAIsf,GAC7B,MAAM8hM,EAAiB9hM,EAAKvc,QAAQ,aAAc,IAC5Cs+M,EAAW/hM,IAAS8hM,EACpBE,EAAUL,GAAa7jM,SAASgkM,GACtC,KAEEA,KAAmBC,EAAWV,SAAWD,gBAAgBl5L,aACrD85L,IAAWN,GAAY5jM,SAASgkM,GAClC,OAEJ,MAAM50K,EAAS9kC,eAAgB65M,GAE3B,MAAMjB,EAAK7hN,KAAKshN,YAAYwB,EAAWD,EAAU,YAAc,YAC/D,IAAI/jL,EAAS+iL,EAAGv+C,MAAM,QAAA72B,EAAAltG,UAAA58B,OAHmBQ,EAAI,IAAAY,MAAA0oI,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJvpI,EAAIupI,EAAA,GAAAntG,UAAAmtG,GAW7C,OAPIk2E,IACA9jL,EAASA,EAAOhwB,MAAM3L,EAAKi0D,iBAMjBqR,QAAQ/sD,IAAI,CACtBojB,EAAO6jL,MAAmBx/M,GAC1B0/M,GAAWhB,EAAGhjK,QACd,EACR,EAEA,OADA4jK,GAAc7yM,IAAIiR,EAAMktB,GACjBA,CACX,CDgCIgzK,GC/BUgC,KAAQ,IACfA,EACHxhN,IAAKA,CAACu9B,EAAQje,EAAMmgM,IAAa0B,GAAU5jL,EAAQje,IAASkiM,EAASxhN,IAAIu9B,EAAQje,EAAMmgM,GACvFjyM,IAAKA,CAAC+vB,EAAQje,MAAW6hM,GAAU5jL,EAAQje,IAASkiM,EAASh0M,IAAI+vB,EAAQje,KD4BzD49B,CAASsiK,UE9FhBiC,GACX/gN,WAAAA,CAA6BkuH,GAAA,KAAS,UAATA,EAG7B8yF,qBAAAA,GAIE,OAHkBjjN,KAAKmwH,UAAU6uF,eAI9B5vL,KAAIyvL,IACH,GAmBR,SAAkCA,GAChC,MAAMt9F,EAAYs9F,EAASjB,eAC3B,MAAsB,aAAf,OAAAr8F,QAAS,IAATA,OAAS,EAATA,EAAWtmG,KACpB,CAtBYioM,CAAyBrE,GAAW,CACtC,MAAMzE,EAAUyE,EAASlB,eACzB,MAAO,GAAGvD,EAAQr2J,WAAWq2J,EAAQ7hK,SACtC,CACC,OAAO,IACR,IAEFx5B,QAAOokM,GAAaA,IACpBl/M,KAAK,4CCxBCmS,GAAS,IAAI0pM,GAAO,4uBC+BpB/C,GAAqB,YAErBqG,GAAsB,CACjC,CAACC,IAAU,YACX,CAACC,IAAgB,mBACjB,CAACC,IAAgB,iBACjB,CAACC,IAAsB,wBACvB,CAACC,IAAe,iBAChB,CAACC,IAAqB,wBACtB,CAACC,IAAW,YACZ,CAACC,IAAiB,mBAClB,CAACC,IAAe,YAChB,CAACC,IAAkB,oBACnB,CAACC,IAAqB,mBACtB,CAACC,IAAgB,UACjB,CAACC,IAAsB,iBACvB,CAACC,IAAoB,WACrB,CAACC,IAA0B,kBAC3B,CAACC,IAAgB,WACjB,CAACC,IAAsB,kBACvB,CAACC,IAAkB,YACnB,CAACC,IAAwB,mBACzB,CAACC,IAAmB,UACpB,CAACC,IAAyB,iBAC1B,CAACC,IAAc,WACf,CAACC,IAAoB,kBACrB,CAACC,IAAgB,WACjB,CAACC,IAAsB,kBACvB,CAACC,IAAa,cACd,UAAW,UACX,CAACC,IAAc,eCjDJC,GAAQ,IAAIr1M,IAKZs1M,GAAc,IAAIt1M,IAQlBu1M,GAAc,IAAIv1M,IAOf,SAAAw1M,GACdC,EACA7jG,GAEA,IACG6jG,EAAwBj1F,UAAUyuF,aAAar9F,EACjD,CAAC,MAAOn5G,IACPgO,GAAOiqM,MACL,aAAa9+F,EAAUp7G,4CAA4Ci/M,EAAIj/M,OACvEiC,GAEH,CACH,CAoBM,SAAUi9M,GACd9jG,GAEA,MAAM+jG,EAAgB/jG,EAAUp7G,KAChC,GAAI++M,GAAYn2M,IAAIu2M,GAKlB,OAJAlvM,GAAOiqM,MACL,sDAAsDiF,OAGjD,EAGTJ,GAAYt1M,IAAI01M,EAAe/jG,GAG/B,IAAK,MAAM6jG,KAAOJ,GAAMn1M,SACtBs1M,GAAcC,EAAwB7jG,GAGxC,IAAK,MAAMgkG,KAAaN,GAAYp1M,SAClCs1M,GAAcI,EAAoChkG,GAGpD,OAAO,CACT,CAWgB,SAAAikG,GACdJ,EACAj/M,GAEA,MAAMs/M,EAAuBL,EAAwBj1F,UAClD2uF,YAAY,aACZnB,aAAa,CAAEn8F,UAAU,IAI5B,OAHIikG,GACGA,EAAoBC,mBAEnBN,EAAwBj1F,UAAU2uF,YAAY34M,EACxD,CAwCM,SAAUw/M,GACd/4M,GAEA,YAA+C5L,IAAvC4L,EAA0Bo1G,QACpC,CCzIA,MA2Ca4jG,GAAgB,IAAIzL,GAC/B,MACA,WA7CiC,CACjC,SACE,6EAEF,eAAyB,iCACzB,gBACE,kFACF,cAAwB,kDACxB,qBAA+B,uCAC/B,aACE,0EACF,uBACE,6EAEF,uBACE,wDACF,WACE,gFACF,UACE,qFACF,UACE,mFACF,aACE,sFACF,sCACE,0GACF,iCACE,oEClCS0L,GAcX5jN,WAAAA,CACE8tB,EACA8mH,EACA1mB,GANQ,KAAU,YAAG,EAQrBnwH,KAAK8lN,SAAgB3kN,OAAAA,OAAAA,CAAAA,EAAAA,GACrBnB,KAAKqkJ,QAAeljJ,OAAAA,OAAAA,CAAAA,EAAAA,GACpBnB,KAAK0P,MAAQmnI,EAAO1wI,KACpBnG,KAAK+lN,gCACHlvE,EAAOmvE,+BACThmN,KAAK+7J,WAAa5rC,EAClBnwH,KAAKmwH,UAAUyuF,aACb,IAAIjxI,GAAU,OAAO,IAAM3tE,MAAM,WAIrC,kCAAIgmN,GAEF,OADAhmN,KAAKimN,iBACEjmN,KAAK+lN,gCAGd,kCAAIC,CAA+B7jL,GACjCniC,KAAKimN,iBACLjmN,KAAK+lN,gCAAkC5jL,EAGzC,QAAIh8B,GAEF,OADAnG,KAAKimN,iBACEjmN,KAAK0P,MAGd,WAAIqgB,GAEF,OADA/vB,KAAKimN,iBACEjmN,KAAK8lN,SAGd,UAAIjvE,GAEF,OADA72I,KAAKimN,iBACEjmN,KAAKqkJ,QAGd,aAAIl0B,GACF,OAAOnwH,KAAK+7J,WAGd,aAAImqD,GACF,OAAOlmN,KAAKmmN,WAGd,aAAID,CAAU/jL,GACZniC,KAAKmmN,WAAahkL,EAOV8jL,cAAAA,GACR,GAAIjmN,KAAKkmN,UACP,MAAMN,GAAc7/K,OAAO,cAAsB,CAAEs9K,QAASrjN,KAAK0P,SCtChE,MAAM02M,sBAoEGC,GACdP,GACc,IAAdQ,EAAY,UAAH,6CAAG,CAAC,EAETv2L,EAAU+1L,EAEd,GAAyB,kBAAdQ,EAAwB,CAEjCA,EAAY,CAAEngN,KADDmgN,EAEd,CAED,MAAMzvE,EAAM,eACV1wI,KAAM42M,GACNiJ,gCAAgC,GAC7BM,GAECngN,EAAO0wI,EAAO1wI,KAEpB,GAAoB,kBAATA,IAAsBA,EAC/B,MAAMy/M,GAAc7/K,OAA8B,gBAChDs9K,QAASp/K,OAAO99B,KAMpB,GAFA4pB,IAAAA,EAAY6pL,OAEP7pL,EACH,MAAM61L,GAAc7/K,OAAO,cAG7B,MAAMwgL,EAAcvB,GAAMzjN,IAAI4E,GAC9B,GAAIogN,EAAa,CAEf,GACE7L,GAAU3qL,EAASw2L,EAAYx2L,UAC/B2qL,GAAU7jE,EAAQ0vE,EAAY1vE,QAE9B,OAAO0vE,EAEP,MAAMX,GAAc7/K,OAA+B,iBAAEs9K,QAASl9M,GAEjE,CAED,MAAMgqH,EAAY,IAAIuuF,GAAmBv4M,GACzC,IAAK,MAAMo7G,KAAa2jG,GAAYr1M,SAClCsgH,EAAUyuF,aAAar9F,GAGzB,MAAMilG,EAAS,IAAIX,GAAgB91L,EAAS8mH,EAAQ1mB,GAIpD,OAFA60F,GAAMp1M,IAAIzJ,EAAMqgN,GAETA,CACT,UA4NgBC,GACdC,EACAnuK,EACA2kE,SAIA,IAAIn5D,EAAmD,QAAzC,EAAAq/J,GAAoBsD,UAAqB,QAAAA,EACnDxpG,IACFn5D,GAAW,IAAIm5D,KAEjB,MAAMypG,EAAkB5iK,EAAQjkB,MAAM,SAChC8mL,EAAkBruK,EAAQzY,MAAM,SACtC,GAAI6mL,GAAmBC,EAAiB,CACtC,MAAMv6F,EAAU,CACd,+BAA+BtoE,oBAA0BxL,OAgB3D,OAdIouK,GACFt6F,EAAQhpH,KACN,iBAAiB0gD,sDAGjB4iK,GAAmBC,GACrBv6F,EAAQhpH,KAAK,OAEXujN,GACFv6F,EAAQhpH,KACN,iBAAiBk1C,2DAGrBniC,GAAOgH,KAAKivG,EAAQpoH,KAAK,KAE1B,CACDohN,GACE,IAAI13I,GACF,GAAG5pB,aACH,KAAM,CAAGA,UAASxL,aAAU,WAIlC,CCraA,MAAMsuK,GAAU,8BACVC,GAAa,EACbC,GAAa,2BASnB,IAAIC,GAAiD,KACrD,SAASC,KA2BP,OA1BKD,KACHA,GR5BJ,SAAgB7gN,EAAMoyC,GAA0D,IAAjD,QAAE2uK,EAAO,QAAEC,EAAO,SAAEn2D,EAAQ,WAAE7kC,GAAY5sF,UAAA58B,OAAA,QAAA3B,IAAAu+B,UAAA,GAAAA,UAAA,GAAG,CAAC,EACzE,MAAMw8F,EAAUqrF,UAAU3zK,KAAKttC,EAAMoyC,GAC/B8uK,EAAc3xK,GAAKqmF,GAoBzB,OAnBIorF,GACAprF,EAAQzqE,iBAAiB,iBAAkBxa,IACvCqwK,EAAQzxK,GAAKqmF,EAAQz3G,QAASwyB,EAAMwwK,WAAYxwK,EAAMywK,WAAY7xK,GAAKqmF,EAAQulF,aAAcxqK,EAAM,IAGvGowK,GACAnrF,EAAQzqE,iBAAiB,WAAYxa,GAAUowK,EAE/CpwK,EAAMwwK,WAAYxwK,EAAMywK,WAAYzwK,KAExCuwK,EACKxzL,MAAMu3B,IACH+gE,GACA/gE,EAAGkG,iBAAiB,SAAS,IAAM66D,MACnC6kC,GACA5lG,EAAGkG,iBAAiB,iBAAkBxa,GAAUk6G,EAASl6G,EAAMwwK,WAAYxwK,EAAMywK,WAAYzwK,IACjG,IAEC1tC,OAAM,SACJi+M,CACX,CQKgBG,CAAcX,GAASC,GAAY,CAC7CK,QAASA,CAAC/7J,EAAIk8J,KAMZ,GACO,IADCA,EAEJ,IACEl8J,EAAGq8J,kBAAkBV,GACtB,CAAC,MAAO3+M,IAIP4jB,QAAQ5O,KAAKhV,GACd,CACJ,IAEFgB,OAAMhB,IACP,MAAMw9M,GAAc7/K,OAA0B,YAC5C2hL,qBAAsBt/M,EAAEgJ,SACxB,KAGC41M,EACT,CAyBO/9M,eAAe0+M,GACpBvC,EACAwC,GAEA,IACE,MACM/F,SADWoF,MACH3F,YAAYyF,GAAY,aAChC5F,EAAcU,EAAGV,YAAY4F,UAC7B5F,EAAY0G,IAAID,EAAiBE,GAAW1C,UAC5CvD,EAAGhjK,IACV,CAAC,MAAOz2C,IACP,GAAIA,cAAa6xM,GACf7jM,GAAOgH,KAAKhV,GAAEgJ,aACT,CACL,MAAM22M,EAAcnC,GAAc7/K,OAA2B,WAC3D2hL,qBAAkC,OAAXt/M,SAAA,IAAAA,QAAA,EAAAA,GAAagJ,UAEtCgF,GAAOgH,KAAK2qM,EAAY32M,QACzB,CACF,CACH,CAEA,SAAS02M,GAAW1C,GAClB,MAAO,GAAGA,EAAIj/M,QAAQi/M,EAAIr1L,QAAQi4L,OACpC,OCxEaC,GAyBXhmN,WAAAA,CAA6BkuH,GAAA,KAAS,UAATA,EAT7B,KAAgB,iBAAiC,KAU/C,MAAMi1F,EAAMplN,KAAKmwH,UAAU2uF,YAAY,OAAOnB,eAC9C39M,KAAKkoN,SAAW,IAAIC,GAAqB/C,GACzCplN,KAAKooN,wBAA0BpoN,KAAKkoN,SAASrmE,OAAOhuH,MAAKvP,IACvDtkB,KAAKqoN,iBAAmB/jM,EACjBA,KAWX,sBAAMohM,WACJ,IACE,MAMM4C,EANiBtoN,KAAKmwH,UACzB2uF,YAAY,mBACZnB,eAI0BsF,wBACvB7iJ,EAAOmoJ,KACb,GAAyC,OAAd,QAAvB,EAAAvoN,KAAKqoN,wBAAkB,eAAAG,cACzBxoN,KAAKqoN,uBAAyBroN,KAAKooN,wBAEM,OAAd,QAAvB,EAAApoN,KAAKqoN,wBAAkB,eAAAG,aACzB,OAKJ,GACExoN,KAAKqoN,iBAAiBI,wBAA0BroJ,GAChDpgE,KAAKqoN,iBAAiBG,WAAW/+M,MAC/Bi/M,GAAuBA,EAAoBtoJ,OAASA,IAGtD,OAYF,OATEpgE,KAAKqoN,iBAAiBG,WAAWnlN,KAAK,CAAE+8D,OAAMkoJ,UAGhDtoN,KAAKqoN,iBAAiBG,WACpBxoN,KAAKqoN,iBAAiBG,WAAWzpM,QAAO2pM,IACtC,MAAMC,EAAc,IAAI3uJ,KAAK0uJ,EAAoBtoJ,MAAM3gC,UAEvD,OADYu6B,KAAKC,MACJ0uJ,GA9EuB,MA8E6B,IAE9D3oN,KAAKkoN,SAASU,UAAU5oN,KAAKqoN,iBACrC,CAAC,MAAOjgN,IACPgO,GAAOgH,KAAKhV,GACb,EAUH,yBAAMygN,SACJ,IAKE,GAJ8B,OAA1B7oN,KAAKqoN,wBACDroN,KAAKooN,wBAI0B,OAAd,QAAvB,EAAApoN,KAAKqoN,wBAAkB,eAAAG,aACqB,IAA5CxoN,KAAKqoN,iBAAiBG,WAAW7lN,OAEjC,MAAO,GAET,MAAMy9D,EAAOmoJ,MAEP,iBAAEO,EAAgB,cAAEC,YAmC9BC,GAC0B,IAA1BC,EAAU,UAAH,6CAjJgB,KAwJvB,MAAMH,EAA4C,GAElD,IAAIC,EAAgBC,EAAgB5kN,QACpC,IAAK,MAAMskN,KAAuBM,EAAiB,CAEjD,MAAME,EAAiBJ,EAAiBx4L,MACtCm7B,GAAMA,EAAG68J,QAAUI,EAAoBJ,QAEzC,GAAKY,GAgBH,GAHAA,EAAeC,MAAM9lN,KAAKqlN,EAAoBtoJ,MAG1CgpJ,GAAWN,GAAoBG,EAAS,CAC1CC,EAAeC,MAAMx7M,MACrB,KACD,OAbD,GAJAm7M,EAAiBzlN,KAAK,CACpBilN,MAAOI,EAAoBJ,MAC3Ba,MAAO,CAACT,EAAoBtoJ,QAE1BgpJ,GAAWN,GAAoBG,EAAS,CAG1CH,EAAiBn7M,MACjB,KACD,CAYHo7M,EAAgBA,EAAc3kN,MAAM,EACrC,CACD,MAAO,CACL0kN,mBACAC,gBAEJ,CAhFkDM,CAC1CrpN,KAAKqoN,iBAAiBG,YAElBc,EAAexQ,GACnBz0M,KAAK1C,UAAU,CAAE42C,QAAS,EAAGiwK,WAAYM,KAgB3C,OAbA9oN,KAAKqoN,iBAAiBI,sBAAwBroJ,EAC1C2oJ,EAAcpmN,OAAS,GAEzB3C,KAAKqoN,iBAAiBG,WAAaO,QAI7B/oN,KAAKkoN,SAASU,UAAU5oN,KAAKqoN,oBAEnCroN,KAAKqoN,iBAAiBG,WAAa,GAE9BxoN,KAAKkoN,SAASU,UAAU5oN,KAAKqoN,mBAE7BiB,CACR,CAAC,MAAOlhN,IAEP,OADAgO,GAAOgH,KAAKhV,IACL,EACR,GAIL,SAASmgN,KAGP,OAFc,IAAIvuJ,MAELm+E,cAAcv6F,UAAU,EAAG,GAC1C,OAkDauqK,GAEXlmN,WAAAA,CAAmBmjN,GAAA,KAAG,IAAHA,EACjBplN,KAAKupN,wBAA0BvpN,KAAKwpN,+BAEtC,kCAAMA,GACJ,mBrBtDF,IACE,MAA4B,kBAAdpC,SACf,CAAC,MAAOh/M,IACP,OAAO,CACR,CACH,CqBiDSqhN,IrBvCA,IAAIhhJ,SAAQ,CAAC7xD,EAASglH,KAC3B,IACE,IAAI8tF,GAAoB,EACxB,MAAMC,EACJ,0DACI5tF,EAAU1mH,KAAK+xM,UAAU3zK,KAAKk2K,GACpC5tF,EAAQ6tF,UAAY,KAClB7tF,EAAQz3G,OAAOuoF,QAEV68G,GACHr0M,KAAK+xM,UAAUyC,eAAeF,GAEhC/yM,GAAQ,EAAK,EAEfmlH,EAAQ+tF,gBAAkB,KACxBJ,GAAW,CAAK,EAGlB3tF,EAAQ18E,QAAU,WAChBu8E,GAAoB,QAAb,EAAAG,EAAQz0H,aAAK,eAAE8J,UAAW,GAAG,CAEvC,CAAC,MAAO9J,GACPs0H,EAAOt0H,EACR,KqBoBIusB,MAAK,KAAM,IACXzqB,OAAM,KAAM,IAMnB,UAAMy4I,GAEJ,SAD8B7hJ,KAAKupN,wBAG5B,CACL,MAAMQ,QDxLL9gN,eACLm8M,GAEA,IACE,MACMvD,SADWoF,MACH3F,YAAYyF,IACpBziM,QAAeu9L,EAAGV,YAAY4F,IAAYxlN,IAAIumN,GAAW1C,IAI/D,aADMvD,EAAGhjK,KACFv6B,CACR,CAAC,MAAOlc,IACP,GAAIA,cAAa6xM,GACf7jM,GAAOgH,KAAKhV,GAAEgJ,aACT,CACL,MAAM22M,EAAcnC,GAAc7/K,OAAyB,WACzD2hL,qBAAkC,OAAXt/M,SAAA,IAAAA,QAAA,EAAAA,GAAagJ,UAEtCgF,GAAOgH,KAAK2qM,EAAY32M,QACzB,CACF,CACH,CCmKuC44M,CAA4BhqN,KAAKolN,KAClE,OAAI,OAAA2E,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBvB,YACfuB,EAEA,CAAEvB,WAAY,GAExB,CARC,MAAO,CAAEA,WAAY,IAWzB,eAAMI,CAAUqB,SAEd,SAD8BjqN,KAAKupN,wBAG5B,CACL,MAAMW,QAAiClqN,KAAK6hJ,OAC5C,OAAO8lE,GAA2B3nN,KAAKolN,IAAK,CAC1CqD,sBAEE,QADA,EAAAwB,EAAiBxB,6BACjB,QAAAyB,EAAyBzB,sBAC3BD,WAAYyB,EAAiBzB,YAEhC,EAGH,SAAM99M,CAAIu/M,SAER,SAD8BjqN,KAAKupN,wBAG5B,CACL,MAAMW,QAAiClqN,KAAK6hJ,OAC5C,OAAO8lE,GAA2B3nN,KAAKolN,IAAK,CAC1CqD,sBAEE,QADA,EAAAwB,EAAiBxB,6BACjB,QAAAyB,EAAyBzB,sBAC3BD,WAAY,IACP0B,EAAyB1B,cACzByB,EAAiBzB,aAGzB,GASC,SAAUY,GAAWJ,GAEzB,OAAOlQ,GAELz0M,KAAK1C,UAAU,CAAE42C,QAAS,EAAGiwK,WAAYQ,KACzCrmN,MACJ,CCxRM,IAAiCu6G,MCMhB,GDLrBmoG,GACE,IAAI13I,GACF,mBACAwiD,GAAa,IAAI6yF,GAA0B7yF,IAAU,YAIzDk1F,GACE,IAAI13I,GACF,aACAwiD,GAAa,IAAI83F,GAAqB93F,IAAU,YAMpDs2F,GAAgBtgN,GAAMoyC,GAAS2kE,IAE/BupG,GAAgBtgN,GAAMoyC,GAAS,WAE/BkuK,GAAgB,UAAW,IE1B7BA,wBAA+B,OCuBxB,SAAS0D,GAAOjoN,EAAGkG,GACtB,IAAI4W,EAAI,CAAC,EACT,IAAK,IAAIjI,KAAK7U,EAAOf,OAAO4nB,UAAUC,eAAe3U,KAAKnS,EAAG6U,IAAM3O,EAAEu8B,QAAQ5tB,GAAK,IAC9EiI,EAAEjI,GAAK7U,EAAE6U,IACb,GAAS,MAAL7U,GAAqD,oBAAjCf,OAAOsvL,sBACtB,KAAIvtL,EAAI,EAAb,IAAgB6T,EAAI5V,OAAOsvL,sBAAsBvuL,GAAIgB,EAAI6T,EAAEpU,OAAQO,IAC3DkF,EAAEu8B,QAAQ5tB,EAAE7T,IAAM,GAAK/B,OAAO4nB,UAAU4nK,qBAAqBt8K,KAAKnS,EAAG6U,EAAE7T,MACvE8b,EAAEjI,EAAE7T,IAAMhB,EAAE6U,EAAE7T,IAF4B,CAItD,OAAO8b,CACX,CAuD6B7d,OAAO4kC,OA0GX5kC,OAAO4kC,OCwLhC,SAASqkL,KAIP,MAAO,CACL,wCACE,0LAIN,CASO,MASMC,GAA6BD,GAuD7BE,GAA8B,IAAInQ,GAG7C,OAAQ,WAlFD,CACL,wCACE,4LC7XAoQ,GAAY,IAAIzK,GAAO,2BAuBb0K,GAAU5xM,GACxB,GAAI2xM,GAAU1K,UAAYZ,GAASM,MAAO,4BADFp8M,EAAc,iCAAdA,EAAc,kBAEpDonN,GAAUjjN,MAAM,SAAS8+M,QAAiBxtM,OAAUzV,EACrD,CACH,UCWgBsnN,GACdC,GACkB,2BAAfzsH,EAAe,iCAAfA,EAAe,kBAElB,MAAM0sH,GAAoBD,KAAezsH,EAC3C,UAagB2sH,GACdF,GACkB,2BAAfzsH,EAAe,iCAAfA,EAAe,kBAElB,OAAO0sH,GAAoBD,KAAezsH,EAC5C,UAEgB4sH,GACd/mE,EACArhJ,EACA2O,GAEA,MAAM05M,EACA3pN,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAAA,MAAoC,CACxC,CAACsB,GAAO2O,IAOV,OALgB,IAAI+oM,GAClB,OACA,WACA2Q,GAEa/kL,OAAOtjC,EAAM,CAC1B4gN,QAASv/D,EAAK39I,MAElB,CAEM,SAAU4kN,GACdjnE,GAEA,OAAO+mE,GACL/mE,EAEA,+IAEJ,CAsBA,SAAS6mE,GACPD,GACkB,2BAAfzsH,EAAe,iCAAfA,EAAe,kBAElB,GAA0B,kBAAfysH,EAAyB,CAClC,MAAMjoN,EAAOw7F,EAAK,GACZ+sH,EAAa,IAAI/sH,EAAK75F,MAAM,IAKlC,OAJI4mN,EAAW,KACbA,EAAW,GAAG3H,QAAUqH,EAAWvkN,MAG7BukN,EAA4BO,cAAcllL,OAChDtjC,KACGuoN,EAEN,CAED,OAAOV,GAA4BvkL,OACjC2kL,KACIzsH,EAER,CAeM,SAAUitH,GACdC,EACAT,GAGA,IAAKS,EAAW,4BAFbltH,EAAe,iCAAfA,EAAe,kBAGhB,MAAM0sH,GAAoBD,KAAezsH,EAC1C,CACH,CA4FM,SAAUmtH,GAAUC,GAGxB,MAAMj6M,EAAU,8BAAgCi6M,EAMhD,MALAb,GAAUp5M,GAKJ,IAAIhP,MAAMgP,EAClB,CASgB,SAAAk6M,GACdH,EACA/5M,GAEK+5M,GACHC,GAAUh6M,EAEd,UCvRgBm6M,WACd,MAAwB,qBAATl2M,OAAqC,QAAb,EAAAA,KAAKyoD,gBAAQ,eAAEtxB,OAAS,EACjE,UAEgBg/K,KACd,MAA+B,UAAxBC,MAA2D,WAAxBA,IAC5C,UAEgBA,WACd,MAAwB,qBAATp2M,OAAqC,QAAb,EAAAA,KAAKyoD,gBAAQ,eAAEutE,WAAa,IACrE,UCJgBqgF,KACd,QACuB,qBAAd54F,WACPA,WACA,WAAYA,WACgB,mBAArBA,UAAU64F,SAMhBH,iB9BsFH,MAAMpvF,EACc,kBAAXwvF,OACHA,OAAOxvF,QACY,kBAAZyvF,QACPA,QAAQzvF,aACRp7H,EACN,MAA0B,kBAAZo7H,QAAuCp7H,IAAfo7H,EAAQ/kH,EAChD,C8B7FyBy0M,IAAwB,eAAgBh5F,aAEtDA,UAAU64F,MAIrB,OCVaI,GAIX9pN,WAAAA,CACmBA,EACA+pN,GADA,KAAU,WAAVC,EACA,KAAS,UAATD,EAGjBV,GACEU,EAAYC,EACZ,+CAEFjsN,KAAKksN,S/BMa,qBAAX1wK,WAGJA,OAAgB,SAAKA,OAAiB,UAAKA,OAAiB,WAC/D,oDAAoDr5C,KAAK63M,OAmFpC,kBAAdlnF,WAAmD,gBAAzBA,UAAmB,Q+B1FtDvxH,GAAAA,GACE,OAAKmqN,KAQE1rN,KAAKksN,SAAWlsN,KAAKgsN,UAAYhsN,KAAKisN,WANpClvM,KAAKoV,IAAI,IAAkBnyB,KAAKisN,aC7B7B,SAAAE,GAAat1E,EAAwBrtC,GACnD8hH,GAAYz0E,EAAOu1E,SAAU,sCAC7B,MAAM,IAAExrJ,GAAQi2E,EAAOu1E,SAEvB,OAAK5iH,EAIE,GAAG5oC,IAAM4oC,EAAK75E,WAAW,KAAO65E,EAAKplG,MAAM,GAAKolG,IAH9C5oC,CAIX,OCVayrJ,GAKX,iBAAO7qD,CACL8qD,EACAC,EACAC,GAEAxsN,KAAKssN,UAAYA,EACbC,IACFvsN,KAAKusN,YAAcA,GAEjBC,IACFxsN,KAAKwsN,aAAeA,GAIxB,YAAO7kE,GACL,OAAI3nJ,KAAKssN,UACAtsN,KAAKssN,UAEM,qBAATj3M,MAAwB,UAAWA,KACrCA,KAAKsyI,MAEY,qBAAf5uD,YAA8BA,WAAW4uD,MAC3C5uD,WAAW4uD,MAEC,qBAAVA,MACFA,WAETyjE,GACE,mHAIJ,cAAOh/K,GACL,OAAIpsC,KAAKusN,YACAvsN,KAAKusN,YAEM,qBAATl3M,MAAwB,YAAaA,KACvCA,KAAKo3M,QAEY,qBAAf1zH,YAA8BA,WAAW0zH,QAC3C1zH,WAAW0zH,QAEG,qBAAZA,QACFA,aAETrB,GACE,qHAIJ,eAAOt0E,GACL,OAAI92I,KAAKwsN,aACAxsN,KAAKwsN,aAEM,qBAATn3M,MAAwB,aAAcA,KACxCA,KAAKwyI,SAEY,qBAAf9uD,YAA8BA,WAAW8uD,SAC3C9uD,WAAW8uD,SAEI,qBAAbA,SACFA,cAETujE,GACE,uHC4CC,MAAMsB,GAAyD,CAEpE,oBAAoE,wBAEpE,qBAAgE,iBAGhE,mBAA6D,gBAE7D,qBAAgE,iBAGhE,iBAA8D,iBAE9D,iBAA8D,mBAG9D,0BAAyE,qBAGzE,aAAsD,uBACtD,wBAA0E,wBAG1E,qBAAoE,qBACpE,sBAAqE,qBACrE,iCACyC,4BAGzC,iBAA4D,iBAG5D,gBAAyD,iBACzD,4BAC2C,oBAE3C,iBAA8D,sBAC9D,iBAA8D,sBAE9D,iBAA4D,iBAG5D,+BAC8C,wBAC9C,iBAA0D,qBAC1D,cAAwD,qBACxD,eAAyD,qBAGzD,4BAC2C,oBAC3C,oCACmD,sCAGnD,aAAsD,4BACtD,qBAAsE,0BACtE,wBAAuE,qBACvE,qBAAsE,0BACtE,gBAAyD,eAKzD,6BAC4C,2BAC5C,oBAAoE,4BAGpE,wBAA4E,0BAG5E,qBAAsE,6BAGtE,+BACmC,+BACnC,yBAAwE,8BACxE,0BAAuE,4BACvE,+BACmC,+BACnC,qBAC8C,+BAC9C,6BAC4C,uCAG5C,iCAA4E,iBAG5E,sBAAwE,wBACxE,wBAA4E,0BAC5E,wBAA4E,0BAC5E,yBACwC,2BACxC,oBAAoE,sBACpE,0BACyC,4BACzC,0BACyC,4BACzC,iBAA8D,oBClInDC,GAAyB,IAAIZ,GAAM,IAAQ,KAExC,SAAAa,GACd9oE,EACA/nB,GAEA,OAAI+nB,EAAK+oE,WAAa9wF,EAAQ8wF,SACrB,OAAP,wBACK9wF,GACH,CAAA8wF,SAAU/oE,EAAK+oE,WAGZ9wF,CACT,CAEO9yH,eAAe6jN,GACpBhpE,EACA/1G,EACAy7D,EACAuyB,GAGA,OAAOgxF,GAA+BjpE,EAFtCkpE,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAuD,CAAC,GAEI/jN,UAC1D,IAAIsE,EAAO,CAAC,EACRkF,EAAS,CAAC,EACVspH,IACa,QAAXhuF,EACFt7B,EAASspH,EAETxuH,EAAO,CACLA,KAAMlJ,KAAK1C,UAAUo6H,KAK3B,MAAMnT,EAAQmyF,GAAY,OAAD,QACvBt2M,IAAKq/I,EAAKjN,OAAOo2E,QACdx6M,IACFrO,MAAM,GAEHgoC,QAAiB03G,EAAsBopE,wBAC7C9gL,EAAQ,gBAA2B,mBAE/B03G,EAAKqpE,eACP/gL,EAAqC,qBAAG03G,EAAKqpE,cAG/C,MAAMC,EAAS,eACbr/K,SACA3B,WACG7+B,GAWL,MnC1DqB,qBAAdulH,WACiB,uBAAxBA,UAAUquB,YmCsDRisE,EAAUn5K,eAAiB,eAGtBo4K,GAAc1kE,OAAd0kE,CACLgB,GAAgBvpE,EAAMA,EAAKjN,OAAOy2E,QAAS9jH,EAAMof,GACjDwkG,EACD,GAEL,CAEOnkN,eAAe8jN,GACpBjpE,EACAkpE,EACAO,GAECzpE,EAAsB0pE,kBAAmB,EAC1C,MAAM1C,EAAgB3pN,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAAA,IAAqB6rN,GAC3C,IACE,MAAMS,EAAiB,IAAIC,GAAyB5pE,GAC9ChN,QAA2BruE,QAAQklJ,KAAwB,CAC/DJ,IACAE,EAAe9xF,UAKjB8xF,EAAeG,sBAEf,MAAMt1M,QAAaw+H,EAASx+H,OAC5B,GAAI,qBAAsBA,EACxB,MAAMu1M,GAAiB/pE,EAAuC,2CAAAxrI,GAGhE,GAAIw+H,EAASvxH,MAAQ,iBAAkBjN,GACrC,OAAOA,EACF,CACL,MAAMw1M,EAAeh3E,EAASvxH,GAAKjN,EAAKw1M,aAAex1M,EAAKhR,MAAM8J,SAC3D28M,EAAiBC,GAAsBF,EAAah2M,MAAM,OACjE,GAAwB,qCAApBi2M,EACF,MAAMF,GACJ/pE,EAEA,4BAAAxrI,GAEG,GAAwB,iBAApBy1M,EACT,MAAMF,GAAiB/pE,EAAkC,uBAAAxrI,GACpD,GAAwB,kBAApBy1M,EACT,MAAMF,GAAiB/pE,EAAmC,gBAAAxrI,GAE5D,MAAM21M,EACJnD,EAASiD,IACRA,EACE7qL,cACA5+B,QAAQ,UAAW,KACxB,GAAI0pN,EACF,MAAMnD,GAAwB/mE,EAAMmqE,EAAWD,GAE/CvD,GAAM3mE,EAAMmqE,EAEf,CACF,CAAC,MAAO7lN,IACP,GAAIA,cAAa6xM,GACf,MAAM7xM,GAKRqiN,GAAM3mE,EAA4C,0BAAE,QAAW7/G,OAAO77B,KACvE,CACH,CAEOa,eAAeilN,GACpBpqE,EACA/1G,EACAy7D,EACAuyB,GACyD,IAAzDixF,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAuD,CAAC,EAExD,MAAMmB,QAAwBrB,GAC5BhpE,EACA/1G,EACAy7D,EACAuyB,EACAixF,GAQF,MANI,yBAA0BmB,GAC5B1D,GAAM3mE,EAAkC,8BACtCsqE,gBAAiBD,IAIdA,CACT,CAEM,SAAUd,GACdvpE,EACAn+C,EACA6D,EACAof,GAEA,MAAMt5D,EAAO,GAAGq2C,IAAO6D,KAAQof,IAE/B,OAAMk7B,EAAsBjN,OAAOu1E,SAI5BD,GAAaroE,EAAKjN,OAA0BvnF,GAH1C,GAAGw0F,EAAKjN,OAAOw3E,eAAe/+J,GAIzC,CAEM,SAAUg/J,GACdC,GAEA,OAAQA,GACN,IAAK,UACH,MAAgC,UAClC,IAAK,QACH,MAA8B,QAChC,IAAK,MACH,MAA4B,MAC9B,QACE,MAAsD,gCAE5D,CAEA,MAAMb,GAiBJzrN,WAAAA,CAA6B6hJ,GAAA,KAAI,KAAJA,EAbrB,KAAK,MAAe,KACnB,KAAO,QAAG,IAAIr7E,SAAW,CAAChnE,EAAGm6H,KACpC57H,KAAK8/I,MAAQz3E,YAAW,IACfuzD,EACLgvF,GAAa5qN,KAAK8jJ,KAA2C,4BAE9D6oE,GAAuBprN,MAAM,IAGlCqsN,mBAAAA,GACErlJ,aAAavoE,KAAK8/I,iBAWN+tE,GACd/pE,EACArhJ,EACAq0I,GAEA,MAAM9xH,EAAgC,CACpCq+L,QAASv/D,EAAK39I,MAGZ2wI,EAASx2E,QACXt7C,EAAYs7C,MAAQw2E,EAASx2E,OAE3Bw2E,EAAS03E,cACXxpM,EAAYwpM,YAAc13E,EAAS03E,aAGrC,MAAMlnN,EAAQsjN,GAAa9mE,EAAMrhJ,EAAMuiB,GAIvC,OADC1d,EAAM4yM,WAAwCuU,eAAiB33E,EACzDxvI,CACT,CC9QM,SAAUonN,GACdC,GAEA,YACiB3tN,IAAf2tN,QACkD3tN,IAAjD2tN,EAAkCC,UAEvC,OASaC,GAWX5sN,WAAAA,CAAY60I,GACV,GARF,KAAO,QAAW,GAKlB,KAAyB,0BAAwC,QAGjC91I,IAA1B81I,EAASg4E,aACX,MAAM,IAAI1sN,MAAM,0BAGlBpC,KAAK+uN,QAAUj4E,EAASg4E,aAAah3M,MAAM,KAAK,GAChD9X,KAAKgvN,0BAA4Bl4E,EAASk4E,0BAS5CC,2BAAAA,CAA4BC,GAC1B,IACGlvN,KAAKgvN,2BACoC,IAA1ChvN,KAAKgvN,0BAA0BrsN,OAE/B,OAAO,KAGT,IAAK,MAAMqsN,KAA6BhvN,KAAKgvN,0BAC3C,GACEA,EAA0BnQ,UAC1BmQ,EAA0BnQ,WAAaqQ,EAEvC,OAAOZ,GACLU,EAA0BG,kBAIhC,OAAO,KASTC,iBAAAA,CAAkBF,GAChB,MAE4B,YAD1BlvN,KAAKivN,4BAA4BC,IAEiB,UAAlDlvN,KAAKivN,4BAA4BC,IC1EhCjmN,eAAeomN,GACpBvrE,EACA/nB,GAEA,OAAO+wF,GAILhpE,EAGA,4BAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CCeO9yH,eAAeqmN,GACpBxrE,EACA/nB,GAEA,OAAO+wF,GACLhpE,EAGA,6BAAA/nB,EAEJ,CCjFM,SAAUwzF,GACdC,GAEA,GAAKA,EAGL,IAEE,MAAMpvJ,EAAO,IAAIpG,KAAK51B,OAAOorL,IAE7B,IAAKrrL,MAAMi8B,EAAKwgI,WAEd,OAAOxgI,EAAKqvJ,aAEf,CAAC,MAAOrnN,KAIX,CCsDA,SAASsnN,GAA4BC,GACnC,OAAyB,IAAlBvrL,OAAOurL,EAChB,CAEM,SAAUC,GAAYlnI,GAC1B,MAAOmnI,EAAW7iJ,EAAS8iJ,GAAapnI,EAAM5wE,MAAM,KACpD,QACgB9W,IAAd6uN,QACY7uN,IAAZgsE,QACchsE,IAAd8uN,EAGA,OADAtF,GAAU,kDACH,KAGT,IACE,MAAM9qF,EAAUu5E,GAAajsI,GAC7B,OAAK0yD,EAIEr7H,KAAK2S,MAAM0oH,IAHhB8qF,GAAU,uCACH,KAGV,CAAC,MAAOpiN,IAKP,OAJAoiN,GACE,2CACC,OAAApiN,SAAA,IAAAA,QAAA,EAAAA,GAAa/F,YAET,IACR,CACH,CAKM,SAAU0tN,GAAgBrnI,GAC9B,MAAMsnI,EAAcJ,GAAYlnI,GAIhC,OAHAwiI,GAAQ8E,EAAa,kBACrB9E,GAAmC,qBAApB8E,EAAYC,IAAqB,kBAChD/E,GAAmC,qBAApB8E,EAAYE,IAAqB,kBACzC9rL,OAAO4rL,EAAYC,KAAO7rL,OAAO4rL,EAAYE,IACtD,CC3GOjnN,eAAeknN,GACpBxsG,EACAgY,GAGA,GAFkB,UAAH,8CAGb,OAAOA,EAET,IACE,aAAaA,CACd,CAAC,MAAOvzH,IAOP,MANIA,cAAa6xM,IAUrB,SAA2B,GAAuB,IAAvB,KAAEx3M,GAAqB,EAChD,MACW,uBAATA,GACS,4BAATA,CAEJ,CAfsC2tN,CAAkBhoN,KAC9Cu7G,EAAKmgC,KAAKusE,cAAgB1sG,SACtBA,EAAKmgC,KAAKwsE,UAIdloN,EACP,CACH,OCbamoN,GAUXtuN,WAAAA,CAA6B0hH,GAAA,KAAI,KAAJA,EATrB,KAAS,WAAG,EAMZ,KAAO,QAAe,KACtB,KAAA6sG,aAA0C,IAIlDC,MAAAA,GACMzwN,KAAK0wN,YAIT1wN,KAAK0wN,WAAY,EACjB1wN,KAAK2wN,YAGPC,KAAAA,GACO5wN,KAAK0wN,YAIV1wN,KAAK0wN,WAAY,EACI,OAAjB1wN,KAAK6wN,SACPtoJ,aAAavoE,KAAK6wN,UAIdC,WAAAA,CAAYC,SAClB,GAAIA,EAAU,CACZ,MAAMC,EAAWhxN,KAAKwwN,aAKtB,OAJAxwN,KAAKwwN,aAAezzM,KAAKoV,IACH,EAApBnyB,KAAKwwN,aAAgB,MAGhBQ,CACR,CAAM,CAELhxN,KAAKwwN,aAAe,IACpB,MACMQ,GADsD,QAA5C,EAAAhxN,KAAK2jH,KAAKstG,gBAAgBr+F,sBAAkB,WACjC54D,KAAKC,MAAQ,IAExC,OAAOl9C,KAAKC,IAAI,EAAGg0M,EACpB,EAGKL,QAAAA,GAAyB,IAAhBI,EAAW,UAAH,8CACvB,IAAK/wN,KAAK0wN,UAER,OAGF,MAAMM,EAAWhxN,KAAK8wN,YAAYC,GAClC/wN,KAAK6wN,QAAUxoJ,YAAWp/D,gBAClBjJ,KAAKyI,WAAW,GACrBuoN,GAGG,eAAMvoN,GACZ,UACQzI,KAAK2jH,KAAKutG,YAAW,EAC5B,CAAC,MAAO9oN,IASP,YALE,iCADoB,OAAnBA,SAAA,IAAAA,QAAA,EAAAA,GAAqB3F,OAGtBzC,KAAK2wN,UAAwB,GAIhC,CACD3wN,KAAK2wN,kBCnFIQ,GAIXlvN,WAAAA,CACUA,EACAmvN,GADA,KAAS,UAATC,EACA,KAAW,YAAXD,EAERpxN,KAAKsxN,kBAGCA,eAAAA,GACNtxN,KAAKuxN,eAAiBhC,GAAyBvvN,KAAKoxN,aACpDpxN,KAAKwxN,aAAejC,GAAyBvvN,KAAKqxN,WAGpDI,KAAAA,CAAMnxH,GACJtgG,KAAKqxN,UAAY/wH,EAAS+wH,UAC1BrxN,KAAKoxN,YAAc9wH,EAAS8wH,YAC5BpxN,KAAKsxN,kBAGPt6E,MAAAA,GACE,MAAO,CACLq6E,UAAWrxN,KAAKqxN,UAChBD,YAAapxN,KAAKoxN,cChBjBnoN,eAAeyoN,GAAqB/tG,SACzC,MAAMmgC,EAAOngC,EAAKmgC,KACZ6tE,QAAgBhuG,EAAKutG,aACrBp6E,QAAiBq5E,GACrBxsG,EACA2rG,GAAexrE,EAAM,CAAE6tE,aAGzBzG,GAAQ,OAAAp0E,QAAA,IAAAA,OAAA,EAAAA,EAAU86E,MAAMjvN,OAAQmhJ,EAAM,kBAEtC,MAAM+tE,EAAc/6E,EAAS86E,MAAM,GAEnCjuG,EAAKmuG,sBAAsBD,GAE3B,MAAME,GAA8C,QAA5B,EAAAF,EAAYG,wBAAgB,eAAErvN,QAClDsvN,GAAoBJ,EAAYG,kBAChC,GAEEE,EA8CR,SACEC,EACAC,GAEA,MAAMC,EAAUF,EAASpzM,QACvB+L,IAAMsnM,EAAQ3oN,MAAK/B,GAAKA,EAAE4qN,aAAexnM,EAAEwnM,eAE7C,MAAO,IAAID,KAAYD,EACzB,CAtDuBG,CAAkB5uG,EAAKuuG,aAAcH,GAOpDS,EAAiB7uG,EAAK8uG,YACtBC,IACF/uG,EAAKrjD,OAASuxJ,EAAYc,iBAAkB,OAAAT,QAAY,IAAZA,OAAY,EAAZA,EAAcvvN,QACxD8vN,IAAeD,GAAyBE,EAExCE,EAAiC,CACrCC,IAAKhB,EAAYiB,QACjBtuL,YAAaqtL,EAAYrtL,aAAe,KACxCuuL,SAAUlB,EAAYmB,UAAY,KAClC1yJ,MAAOuxJ,EAAYvxJ,OAAS,KAC5B2yJ,cAAepB,EAAYoB,gBAAiB,EAC5CzE,YAAaqD,EAAYrD,aAAe,KACxC3B,SAAUgF,EAAYhF,UAAY,KAClCqF,eACA5xH,SAAU,IAAI6wH,GAAaU,EAAYR,UAAWQ,EAAYT,aAC9DqB,eAGFtxN,OAAOqK,OAAOm4G,EAAMivG,EACtB,CA8BM,SAAUX,GAAoBtT,GAClC,OAAOA,EAAUvvL,KAAKkyB,IAAA,eAAEgxK,GAAyB,EAAVzT,EAAQ,KAAzB,gBACpB,MAAO,CACLyT,aACAO,IAAKhU,EAASqU,OAAS,GACvB1uL,YAAaq6K,EAASr6K,aAAe,KACrC87B,MAAOu+I,EAASv+I,OAAS,KACzBkuJ,YAAa3P,EAAS2P,aAAe,KACrCuE,SAAUlU,EAASmU,UAAY,KAChC,GAEL,OC3EaG,GAAblxN,WAAAA,GACE,KAAY,aAAkB,KAC9B,KAAW,YAAkB,KAC7B,KAAc,eAAkB,KAEhC,aAAImxN,GACF,OACGpzN,KAAK4yH,gBACN54D,KAAKC,MAAQj6D,KAAK4yH,eAAqC,IAI3DygG,wBAAAA,CACEv8E,GAEAo0E,GAAQp0E,EAAS66E,QAAS,kBAC1BzG,GAC8B,qBAArBp0E,EAAS66E,QAAuB,kBAGzCzG,GACmC,qBAA1Bp0E,EAASw8E,aAA4B,kBAG9C,MAAMC,EACJ,cAAez8E,GAA0C,qBAAvBA,EAASy8E,UACvCnvL,OAAO0yG,EAASy8E,WAChBxD,GAAgBj5E,EAAS66E,SAC/B3xN,KAAKwzN,0BACH18E,EAAS66E,QACT76E,EAASw8E,aACTC,GAIJE,iBAAAA,CAAkB9B,GAChBzG,GAA2B,IAAnByG,EAAQhvN,OAAc,kBAC9B,MAAM4wN,EAAYxD,GAAgB4B,GAClC3xN,KAAKwzN,0BAA0B7B,EAAS,KAAM4B,GAGhD,cAAMhnH,CACJu3C,GAGA,OAFe,UAAH,gDAES9jJ,KAAK0zN,aAAgB1zN,KAAKozN,WAI/ClI,GAAQlrN,KAAKszN,aAAcxvE,EAAM,sBAE7B9jJ,KAAKszN,oBACDtzN,KAAK2zN,QAAQ7vE,EAAM9jJ,KAAKszN,cACvBtzN,KAAK0zN,aAGP,MAVE1zN,KAAK0zN,YAahBE,iBAAAA,GACE5zN,KAAKszN,aAAe,KAGd,aAAMK,CAAQ7vE,EAAoB+vE,GACxC,MAAM,YAAEH,EAAW,aAAEJ,EAAY,UAAEC,SC1ChCtqN,eACL66I,EACAwvE,GAEA,MAAMx8E,QACEi2E,GACJjpE,EACA,CAAC,GACD76I,UACE,MAAMsE,EAAOwtM,GAAY,CACvB,WAAc,gBACd,cAAiBuY,IAChBlvN,MAAM,IACH,aAAE0vN,EAAY,OAAE7G,GAAWnpE,EAAKjN,OAChCj2E,EAAMysJ,GACVvpE,EACAgwE,EAAY,YAEZ,OAAO7G,KAGH7gL,QAAiB03G,EAAsBopE,wBAG7C,OAFA9gL,EAAQ,gBAA2B,oCAE5BigL,GAAc1kE,OAAd0kE,CAAsBzrJ,EAAK,CAChC7yB,OAAuB,OACvB3B,UACA7+B,QACA,IAKR,MAAO,CACLmmN,YAAa58E,EAASi9E,aACtBR,UAAWz8E,EAASk9E,WACpBV,aAAcx8E,EAASm9E,cAE3B,CDI2DC,CACrDpwE,EACA+vE,GAEF7zN,KAAKwzN,0BACHE,EACAJ,EACAlvL,OAAOmvL,IAIHC,yBAAAA,CACNE,EACAJ,EACAa,GAEAn0N,KAAKszN,aAAeA,GAAgB,KACpCtzN,KAAK0zN,YAAcA,GAAe,KAClC1zN,KAAK4yH,eAAiB54D,KAAKC,MAAuB,IAAfk6J,EAGrC,eAAOC,CAAS/Q,EAAiB53M,GAC/B,MAAM,aAAE6nN,EAAY,YAAEI,EAAW,eAAE9gG,GAAmBnnH,EAEhD4oN,EAAU,IAAIlB,GAuBpB,OAtBIG,IACFpI,GAAgC,kBAAjBoI,EAAyD,kBACtEjQ,YAEFgR,EAAQf,aAAeA,GAErBI,IACFxI,GAA+B,kBAAhBwI,EAAwD,kBACrErQ,YAEFgR,EAAQX,YAAcA,GAEpB9gG,IACFs4F,GAC4B,kBAAnBt4F,EAEP,kBACEywF,YAGJgR,EAAQzhG,eAAiBA,GAEpByhG,EAGTr9E,MAAAA,GACE,MAAO,CACLs8E,aAActzN,KAAKszN,aACnBI,YAAa1zN,KAAK0zN,YAClB9gG,eAAgB5yH,KAAK4yH,gBAIzB0hG,OAAAA,CAAQrD,GACNjxN,KAAK0zN,YAAczC,EAAgByC,YACnC1zN,KAAKszN,aAAerC,EAAgBqC,aACpCtzN,KAAK4yH,eAAiBq+F,EAAgBr+F,eAGxC2hG,MAAAA,GACE,OAAOpzN,OAAOqK,OAAO,IAAI2nN,GAAmBnzN,KAAKg3I,UAGnDw9E,eAAAA,GACE,OAAOpJ,GAAU,oBE9HrB,SAASqJ,GACPtJ,EACA9H,GAEA6H,GACuB,kBAAdC,GAA+C,qBAAdA,EAExC,kBAAE9H,WAEN,OAEaqR,GAwBXzyN,WAAAA,CAAYq/C,OAAA,IAAEuxK,EAAG,KAAE/uE,EAAI,gBAAEmtE,GAAe,EAAKjhM,EAAjCm6L,GAAAA,EAAAA,CAAAA,MAAAA,OAAAA,oBAtBH,KAAAmI,WAAiC,WAoBzB,KAAAqC,iBAAmB,IAAIpE,GAAiBvwN,MA6CjD,KAAc,eAAuB,KACrC,KAAc,eAA+B,KA3CnDA,KAAK6yN,IAAMA,EACX7yN,KAAK8jJ,KAAOA,EACZ9jJ,KAAKixN,gBAAkBA,EACvBjxN,KAAK0zN,YAAczC,EAAgByC,YACnC1zN,KAAKwkC,YAAcxU,EAAIwU,aAAe,KACtCxkC,KAAKsgE,MAAQtwC,EAAIswC,OAAS,KAC1BtgE,KAAKizN,cAAgBjjM,EAAIijM,gBAAiB,EAC1CjzN,KAAKwuN,YAAcx+L,EAAIw+L,aAAe,KACtCxuN,KAAK+yN,SAAW/iM,EAAI+iM,UAAY,KAChC/yN,KAAKyyN,YAAcziM,EAAIyiM,cAAe,EACtCzyN,KAAK6sN,SAAW78L,EAAI68L,UAAY,KAChC7sN,KAAKkyN,aAAeliM,EAAIkiM,aAAe,IAAIliM,EAAIkiM,cAAgB,GAC/DlyN,KAAKsgG,SAAW,IAAI6wH,GAClBnhM,EAAIqhM,gBAAarwN,EACjBgvB,EAAIohM,kBAAepwN,GAIvB,gBAAMkwN,CAAW0D,GACf,MAAMlB,QAAoBvD,GACxBnwN,KACAA,KAAKixN,gBAAgB1kH,SAASvsG,KAAK8jJ,KAAM8wE,IAU3C,OARA1J,GAAQwI,EAAa1zN,KAAK8jJ,KAAM,kBAE5B9jJ,KAAK0zN,cAAgBA,IACvB1zN,KAAK0zN,YAAcA,QACb1zN,KAAK8jJ,KAAK+wE,sBAAsB70N,MACtCA,KAAK8jJ,KAAKgxE,0BAA0B90N,OAG/B0zN,EAGTqB,gBAAAA,CAAiBH,GACf,OPhEG3rN,eACL06G,GACoB,IAApBixG,EAAe,UAAH,8CAEZ,MAAMI,EAAe5Y,GAAmBz4F,GAClCj7B,QAAcssI,EAAa9D,WAAW0D,GACtCK,EAASrF,GAAYlnI,GAE3BwiI,GACE+J,GAAUA,EAAOhF,KAAOgF,EAAOC,WAAaD,EAAO/E,IACnD8E,EAAalxE,KAAI,kBAGnB,MAAMqxE,EACuB,kBAApBF,EAAOE,SAAwBF,EAAOE,cAAWn0N,EAEpDo0N,EAAqC,OAAAD,QAAQ,IAARA,OAAQ,EAARA,EAA6B,iBAExE,MAAO,CACLF,SACAvsI,QACA2sI,SAAU9F,GACRG,GAA4BuF,EAAOC,YAErCI,aAAc/F,GACZG,GAA4BuF,EAAO/E,MAErCt9F,eAAgB28F,GACdG,GAA4BuF,EAAOhF,MAErCmF,eAAgBA,GAAkB,KAClCG,oBAAoB,OAAAJ,QAAA,IAAAA,OAAA,EAAAA,EAAkC,wBAAK,KAE/D,CO+BWJ,CAAiB/0N,KAAM40N,GAGhCY,MAAAA,GACE,OHvCGvsN,eAAsB06G,GAC3B,MAAMqxG,EAA6B5Y,GAAmBz4F,SAChD+tG,GAAqBsD,SAKrBA,EAAalxE,KAAK+wE,sBAAsBG,GAC9CA,EAAalxE,KAAKgxE,0BAA0BE,EAC9C,CG8BWQ,CAAOx1N,MAMhBs0N,OAAAA,CAAQ3wG,GACF3jH,OAAS2jH,IAGbunG,GAAQlrN,KAAK6yN,MAAQlvG,EAAKkvG,IAAK7yN,KAAK8jJ,KAAM,kBAC1C9jJ,KAAKwkC,YAAcm/E,EAAKn/E,YACxBxkC,KAAK+yN,SAAWpvG,EAAKovG,SACrB/yN,KAAKsgE,MAAQqjD,EAAKrjD,MAClBtgE,KAAKizN,cAAgBtvG,EAAKsvG,cAC1BjzN,KAAKwuN,YAAc7qG,EAAK6qG,YACxBxuN,KAAKyyN,YAAc9uG,EAAK8uG,YACxBzyN,KAAK6sN,SAAWlpG,EAAKkpG,SACrB7sN,KAAKkyN,aAAevuG,EAAKuuG,aAAa9iM,KAAIqmM,GAAY,OAAJ,UAAUA,KAC5Dz1N,KAAKsgG,SAASmxH,MAAM9tG,EAAKrjB,UACzBtgG,KAAKixN,gBAAgBqD,QAAQ3wG,EAAKstG,kBAGpCsD,MAAAA,CAAOzwE,GACL,MAAM4xE,EAAU,IAAIhB,GACfvzN,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAAA,MAAI,CACP2iJ,OACAmtE,gBAAiBjxN,KAAKixN,gBAAgBsD,YAGxC,OADAmB,EAAQp1H,SAASmxH,MAAMzxN,KAAKsgG,UACrBo1H,EAGTC,SAAAA,CAAUl3K,GAERysK,IAASlrN,KAAK41N,eAAgB51N,KAAK8jJ,KAAM,kBACzC9jJ,KAAK41N,eAAiBn3K,EAClBz+C,KAAK61N,iBACP71N,KAAK8xN,sBAAsB9xN,KAAK61N,gBAChC71N,KAAK61N,eAAiB,MAI1B/D,qBAAAA,CAAsB2D,GAChBz1N,KAAK41N,eACP51N,KAAK41N,eAAeH,GAGpBz1N,KAAK61N,eAAiBJ,EAI1BK,sBAAAA,GACE91N,KAAK20N,iBAAiBlE,SAGxBsF,qBAAAA,GACE/1N,KAAK20N,iBAAiB/D,QAGxB,8BAAMoF,CACJl/E,GACc,IAAd0+E,EAAS,UAAH,8CAEFS,GAAkB,EAEpBn/E,EAAS66E,SACT76E,EAAS66E,UAAY3xN,KAAKixN,gBAAgByC,cAE1C1zN,KAAKixN,gBAAgBoC,yBAAyBv8E,GAC9Cm/E,GAAkB,GAGhBT,SACI9D,GAAqB1xN,YAGvBA,KAAK8jJ,KAAK+wE,sBAAsB70N,MAClCi2N,GACFj2N,KAAK8jJ,KAAKgxE,0BAA0B90N,MAIxC,YAAMqW,GACJ,GAAIsvM,GAAqB3lN,KAAK8jJ,KAAKshE,KACjC,OAAO38I,QAAQmzD,OACbmvF,GAAgD/qN,KAAK8jJ,OAGzD,MAAM6tE,QAAgB3xN,KAAKkxN,aAO3B,aANMf,GAAqBnwN,KT3LxBiJ,eACL66I,EACA/nB,GAEA,OAAO+wF,GACLhpE,EAGA,6BAAA/nB,EAEJ,CSiLqCm6F,CAAcl2N,KAAK8jJ,KAAM,CAAE6tE,aAC5D3xN,KAAKixN,gBAAgB2C,oBAKd5zN,KAAK8jJ,KAAKwsE,UAGnBt5E,MAAAA,GACE,OAAO,OAAP,sBACE67E,IAAK7yN,KAAK6yN,IACVvyJ,MAAOtgE,KAAKsgE,YAASt/D,EACrBiyN,cAAejzN,KAAKizN,cACpBzuL,YAAaxkC,KAAKwkC,kBAAexjC,EACjCyxN,YAAazyN,KAAKyyN,YAClBM,SAAU/yN,KAAK+yN,eAAY/xN,EAC3BwtN,YAAaxuN,KAAKwuN,kBAAextN,EACjC6rN,SAAU7sN,KAAK6sN,eAAY7rN,EAC3BkxN,aAAclyN,KAAKkyN,aAAa9iM,KAAIqmM,GAAY,OAAJ,UAAUA,KACtDxE,gBAAiBjxN,KAAKixN,gBAAgBj6E,SAGtCm/E,iBAAkBn2N,KAAKm2N,kBACpBn2N,KAAKsgG,SAAS02C,UAAQ,CAGzBi2E,OAAQjtN,KAAK8jJ,KAAKjN,OAAOo2E,OACzB5J,QAASrjN,KAAK8jJ,KAAK39I,OAMvB,gBAAImtN,GACF,OAAOtzN,KAAKixN,gBAAgBqC,cAAgB,GAG9C,gBAAO8C,CAAUtyE,EAAoBr4I,uBACnC,MAAM+4B,EAAgC,QAAlB,EAAA/4B,EAAO+4B,mBAAW,aAAIxjC,EACpCs/D,EAAoB,QAAZ,EAAA70D,EAAO60D,aAAK,aAAIt/D,EACxBwtN,EAAgC,QAAlB,EAAA/iN,EAAO+iN,mBAAW,aAAIxtN,EACpC+xN,EAA0B,QAAf,EAAAtnN,EAAOsnN,gBAAQ,aAAI/xN,EAC9B6rN,EAA0B,QAAf,EAAAphN,EAAOohN,gBAAQ,aAAI7rN,EAC9Bm1N,EAA0C,QAAvB,EAAA1qN,EAAO0qN,wBAAgB,aAAIn1N,EAC9CqwN,EAA4B,QAAhB,EAAA5lN,EAAO4lN,iBAAS,aAAIrwN,EAChCowN,EAAgC,QAAlB,EAAA3lN,EAAO2lN,mBAAW,aAAIpwN,GACpC,IACJ6xN,EAAG,cACHI,EAAa,YACbR,EAAW,aACXP,EACAjB,gBAAiBoF,GACf5qN,EAEJy/M,GAAQ2H,GAAOwD,EAAyBvyE,EAAM,kBAE9C,MAAMmtE,EAAkBkC,GAAgBiB,SACtCp0N,KAAKmG,KACLkwN,GAGFnL,GAAuB,kBAAR2H,EAAkB/uE,EAAM,kBACvC2wE,GAAwBjwL,EAAas/G,EAAK39I,MAC1CsuN,GAAwBn0J,EAAOwjF,EAAK39I,MACpC+kN,GAC2B,mBAAlB+H,EACPnvE,EAAI,kBAGNonE,GACyB,mBAAhBuH,EACP3uE,EAAI,kBAGN2wE,GAAwBjG,EAAa1qE,EAAK39I,MAC1CsuN,GAAwB1B,EAAUjvE,EAAK39I,MACvCsuN,GAAwB5H,EAAU/oE,EAAK39I,MACvCsuN,GAAwB0B,EAAkBryE,EAAK39I,MAC/CsuN,GAAwBpD,EAAWvtE,EAAK39I,MACxCsuN,GAAwBrD,EAAattE,EAAK39I,MAC1C,MAAMw9G,EAAO,IAAI+wG,GAAS,CACxB7B,MACA/uE,OACAxjF,QACA2yJ,gBACAzuL,cACAiuL,cACAM,WACAvE,cACA3B,WACAoE,kBACAI,YACAD,gBAWF,OARIc,GAAgBnuN,MAAMC,QAAQkuN,KAChCvuG,EAAKuuG,aAAeA,EAAa9iM,KAAIqmM,GAAYt0N,OAAAA,OAAAA,CAAAA,EAAMs0N,MAGrDU,IACFxyG,EAAKwyG,iBAAmBA,GAGnBxyG,EAQT,iCAAa2yG,CACXxyE,EACAyyE,GAC4B,IAA5B9D,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GAEA,MAAMxB,EAAkB,IAAIkC,GAC5BlC,EAAgBoC,yBAAyBkD,GAGzC,MAAM5yG,EAAO,IAAI+wG,GAAS,CACxB7B,IAAK0D,EAAgBzD,QACrBhvE,OACAmtE,kBACAwB,gBAKF,aADMf,GAAqB/tG,GACpBA,EAQT,wCAAa6yG,CACX1yE,EACAhN,EACA66E,GAEA,MAAME,EAAc/6E,EAAS86E,MAAM,GACnC1G,QAAgClqN,IAAxB6wN,EAAYiB,QAAuB,kBAE3C,MAAMZ,OAC6BlxN,IAAjC6wN,EAAYG,iBACRC,GAAoBJ,EAAYG,kBAChC,GAEAS,IACFZ,EAAYvxJ,OAASuxJ,EAAYc,iBAAkB,OAAAT,QAAY,IAAZA,OAAY,EAAZA,EAAcvvN,QAE/DsuN,EAAkB,IAAIkC,GAC5BlC,EAAgBwC,kBAAkB9B,GAGlC,MAAMhuG,EAAO,IAAI+wG,GAAS,CACxB7B,IAAKhB,EAAYiB,QACjBhvE,OACAmtE,kBACAwB,gBAIIG,EAAiC,CACrCC,IAAKhB,EAAYiB,QACjBtuL,YAAaqtL,EAAYrtL,aAAe,KACxCuuL,SAAUlB,EAAYmB,UAAY,KAClC1yJ,MAAOuxJ,EAAYvxJ,OAAS,KAC5B2yJ,cAAepB,EAAYoB,gBAAiB,EAC5CzE,YAAaqD,EAAYrD,aAAe,KACxC3B,SAAUgF,EAAYhF,UAAY,KAClCqF,eACA5xH,SAAU,IAAI6wH,GACZU,EAAYR,UACZQ,EAAYT,aAEdqB,cACIZ,EAAYvxJ,OAASuxJ,EAAYc,iBAClC,OAAAT,QAAY,IAAZA,OAAY,EAAZA,EAAcvvN,SAInB,OADAxB,OAAOqK,OAAOm4G,EAAMivG,GACbjvG,GC/WX,MAAM8yG,GAAuC,IAAI9mN,IAE3C,SAAU+mN,GAAgBz9G,GAC9BqyG,GAAYryG,aAAerjG,SAAU,+BACrC,IAAIwwD,EAAWqwJ,GAAcl1N,IAAI03G,GAEjC,OAAI7yC,GACFklJ,GACEllJ,aAAoB6yC,EACpB,kDAEK7yC,IAGTA,EAAW,IAAK6yC,EAChBw9G,GAAc7mN,IAAIqpG,EAAK7yC,GAChBA,EACT,OCrBauwJ,GAAb10N,WAAAA,GAEW,KAAAgZ,KAA4B,OACrC,KAAO,QAAqC,CAAC,EAE7C,kBAAM27M,GACJ,OAAO,EAGT,UAAMC,CAAKpyN,EAAapD,GACtBrB,KAAK82N,QAAQryN,GAAOpD,EAGtB,UAAM01N,CAAiCtyN,GACrC,MAAMpD,EAAQrB,KAAK82N,QAAQryN,GAC3B,YAAiBzD,IAAVK,EAAsB,KAAQA,EAGvC,aAAM21N,CAAQvyN,UACLzE,KAAK82N,QAAQryN,GAGtBwyN,YAAAA,CAAavqF,EAAcwqF,IAK3BC,eAAAA,CAAgBzqF,EAAcwqF,KA1BvBP,GAAI,KAAW,OAqCjB,MAAMS,GAAmCT,YC9BhCU,GACd5yN,EACAwoN,EACA5J,GAEA,MAAO,YAA4B5+M,KAAOwoN,KAAU5J,GACtD,OAEaiU,GAKXr1N,WAAAA,CACSs1N,EACUzzE,EACA0zE,GAFV,KAAW,YAAXD,EACU,KAAI,KAAJzzE,EACA,KAAO,QAAP0zE,EAEjB,MAAM,OAAE3gF,EAAM,KAAE1wI,GAASnG,KAAK8jJ,KAC9B9jJ,KAAKy3N,YAAcJ,GAAoBr3N,KAAKw3N,QAAS3gF,EAAOo2E,OAAQ9mN,GACpEnG,KAAK03N,mBAAqBL,GAAoB,cAE5CxgF,EAAOo2E,OACP9mN,GAEFnG,KAAK23N,kBAAoB7zE,EAAK8zE,gBAAgB/wJ,KAAKi9E,GACnD9jJ,KAAKu3N,YAAYN,aAAaj3N,KAAKy3N,YAAaz3N,KAAK23N,mBAGvDE,cAAAA,CAAel0G,GACb,OAAO3jH,KAAKu3N,YAAYV,KAAK72N,KAAKy3N,YAAa9zG,EAAKqzB,UAGtD,oBAAM8gF,GACJ,MAAMC,QAAa/3N,KAAKu3N,YAAYR,KAAoB/2N,KAAKy3N,aAC7D,OAAOM,EAAOrD,GAAS0B,UAAUp2N,KAAK8jJ,KAAMi0E,GAAQ,KAGtDC,iBAAAA,GACE,OAAOh4N,KAAKu3N,YAAYP,QAAQh3N,KAAKy3N,aAGvCQ,0BAAAA,GACE,OAAOj4N,KAAKu3N,YAAYV,KACtB72N,KAAK03N,mBACL13N,KAAKu3N,YAAYt8M,MAIrB,oBAAMi9M,CAAeC,GACnB,GAAIn4N,KAAKu3N,cAAgBY,EACvB,OAGF,MAAM9H,QAAoBrwN,KAAK83N,iBAK/B,aAJM93N,KAAKg4N,oBAEXh4N,KAAKu3N,YAAcY,EAEf9H,EACKrwN,KAAK63N,eAAexH,QAD7B,EAKFh6M,SACErW,KAAKu3N,YAAYJ,gBAAgBn3N,KAAKy3N,YAAaz3N,KAAK23N,mBAG1D,mBAAa5xL,CACX+9G,EACAs0E,GAC2B,IAA3BZ,EAAU,UAAH,6CAAoB,WAE3B,IAAKY,EAAqBz1N,OACxB,OAAO,IAAI20N,GACTZ,GAAaU,IACbtzE,EACA0zE,GAKJ,MAAMa,SACE5vJ,QAAQ/sD,IACZ08M,EAAqBhpM,KAAInmB,UACvB,SAAUsuN,EAAYX,eACpB,OAAOW,CAEO,MAGpBx4M,QAAOw4M,GAAeA,IAGxB,IAAIe,EACFD,EAAsB,IACtB3B,GAAkCU,IAEpC,MAAM3yN,EAAM4yN,GAAoBG,EAAS1zE,EAAKjN,OAAOo2E,OAAQnpE,EAAK39I,MAIlE,IAAIoyN,EAAqC,KAIzC,IAAK,MAAMhB,KAAea,EACxB,IACE,MAAML,QAAaR,EAAYR,KAAoBtyN,GACnD,GAAIszN,EAAM,CACR,MAAMp0G,EAAO+wG,GAAS0B,UAAUtyE,EAAMi0E,GAClCR,IAAgBe,IAClBC,EAAgB50G,GAElB20G,EAAsBf,EACtB,KACD,CACF,CAAC,SAAO,CAKX,MAAMiB,EAAqBH,EAAsBt5M,QAC/ChI,GAAKA,EAAE0hN,wBAIT,OACGH,EAAoBG,uBACpBD,EAAmB71N,QAKtB21N,EAAsBE,EAAmB,GACrCD,SAGID,EAAoBzB,KAAKpyN,EAAK8zN,EAAcvhF,gBAK9CvuE,QAAQ/sD,IACZ08M,EAAqBhpM,KAAInmB,UACvB,GAAIsuN,IAAgBe,EAClB,UACQf,EAAYP,QAAQvyN,EAC3B,CAAC,SAAO,CACV,KAGE,IAAI6yN,GAAuBgB,EAAqBx0E,EAAM0zE,IArBpD,IAAIF,GAAuBgB,EAAqBx0E,EAAM0zE,ICrH7D,SAAUkB,GAAgBv3E,GAC9B,MAAMr5F,EAAKq5F,EAAUj+G,cACrB,GAAI4kB,EAAGnpC,SAAS,WAAampC,EAAGnpC,SAAS,SAAWmpC,EAAGnpC,SAAS,UAC9D,MAAyB,QACpB,GAAIg6M,GAAY7wK,GAErB,MAA4B,WACvB,GAAIA,EAAGnpC,SAAS,SAAWmpC,EAAGnpC,SAAS,YAC5C,MAAsB,KACjB,GAAImpC,EAAGnpC,SAAS,SACrB,MAAwB,OACnB,GAAIi6M,GAAW9wK,GACpB,MAA2B,UACtB,GAAIA,EAAGnpC,SAAS,SACrB,MAAwB,OACnB,GAAIk6M,GAAc/wK,GAEvB,MAA8B,aACzB,GAAIgxK,GAAShxK,GAElB,MAAyB,QACpB,GAAIixK,GAAUjxK,GACnB,MAA0B,SACrB,IACJA,EAAGnpC,SAAS,YAAcq6M,GAAalxK,MACvCA,EAAGnpC,SAAS,SAEb,MAA0B,SACrB,GAAIs6M,GAAWnxK,GAEpB,MAA2B,UACtB,CAEL,MAAMjmB,EAAK,kCACL5a,EAAUk6H,EAAUrhH,MAAM+B,GAChC,GAAwB,KAAb,OAAP5a,QAAO,IAAPA,OAAO,EAAPA,EAAStkB,QACX,OAAOskB,EAAQ,EAElB,CACD,MAAyB,OAC3B,UAEgB2xM,KAAuB,IAAZ9wK,EAAK,UAAH,6CAAGkyJ,KAC9B,MAAO,aAAa73M,KAAK2lD,EAC3B,UAEgBixK,KACd,MAAMjxK,GAD8B,UAAH,6CAAGkyJ,MACf92K,cACrB,OACE4kB,EAAGnpC,SAAS,aACXmpC,EAAGnpC,SAAS,aACZmpC,EAAGnpC,SAAS,YACZmpC,EAAGnpC,SAAS,UAEjB,UAEgBq6M,KAAyB,IAAZlxK,EAAK,UAAH,6CAAGkyJ,KAChC,MAAO,WAAW73M,KAAK2lD,EACzB,UAEgB6wK,KAAwB,IAAZ7wK,EAAK,UAAH,6CAAGkyJ,KAC/B,MAAO,YAAY73M,KAAK2lD,EAC1B,UAEgBmxK,KAAuB,IAAZnxK,EAAK,UAAH,6CAAGkyJ,KAC9B,MAAO,WAAW73M,KAAK2lD,EACzB,UAEgB+wK,KAA0B,IAAZ/wK,EAAK,UAAH,6CAAGkyJ,KACjC,MAAO,cAAc73M,KAAK2lD,EAC5B,UAEgBgxK,KAAqB,IAAZhxK,EAAK,UAAH,6CAAGkyJ,KAC5B,MAAO,SAAS73M,KAAK2lD,EACvB,UAEgBoxK,KAAmB,IAAZpxK,EAAK,UAAH,6CAAGkyJ,KAC1B,MACE,oBAAoB73M,KAAK2lD,IACxB,aAAa3lD,KAAK2lD,IAAO,UAAU3lD,KAAK2lD,EAE7C,UAagBqxK,KACd,kBnDIA,MAAMrxK,EAAKkyJ,KACX,OAAOlyJ,EAAGnjB,QAAQ,UAAY,GAAKmjB,EAAGnjB,QAAQ,aAAe,CAC/D,CmDNSy0L,IAAkD,KAAvC19K,SAAsBikB,YAC1C,CAEgB,SAAA05J,KAAqC,IAApBvxK,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAakyJ,KAE5C,OACEkf,GAAOpxK,IACPmxK,GAAWnxK,IACXgxK,GAAShxK,IACT+wK,GAAc/wK,IACd,iBAAiB3lD,KAAK2lD,IACtB6wK,GAAY7wK,EAEhB,UCpHgBwxK,GACdC,GACkC,IAE9BC,EAFJC,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAgC,GAGhC,OAAQF,GACN,IAAK,UAEHC,EAAmBd,GAAgB1e,MACnC,MACF,IAAK,SAIHwf,EAAmB,GAAGd,GAAgB1e,SAAYuf,IAClD,MACF,QACEC,EAAmBD,EAEvB,MAAMG,EAAqBD,EAAW92N,OAClC82N,EAAWx1N,KAAK,KAChB,mBACJ,MAAO,GAAGu1N,YAAiDpT,MAAesT,GAC5E,OCrCaC,GAGX13N,WAAAA,CAA6B6hJ,GAAA,KAAI,KAAJA,EAFZ,KAAK,MAAsB,GAI5C81E,YAAAA,CACEn7K,EACAnQ,GAIA,MAAMurL,EACJl2G,GAEA,IAAIl7C,SAAQ,CAAC7xD,EAASglH,KACpB,IAIEhlH,EAHe6nC,EAASklE,GAIzB,CAAC,MAAOv7G,IAEPwzH,EAAOxzH,GACR,KAGLyxN,EAAgBvrL,QAAUA,EAC1BtuC,KAAKw0E,MAAMnxE,KAAKw2N,GAEhB,MAAM/qN,EAAQ9O,KAAKw0E,MAAM7xE,OAAS,EAClC,MAAO,KAGL3C,KAAKw0E,MAAM1lE,GAAS,IAAM25D,QAAQ7xD,SAAS,EAI/C,mBAAMkjN,CAAcC,GAClB,GAAI/5N,KAAK8jJ,KAAKusE,cAAgB0J,EAC5B,OAMF,MAAMC,EAAkC,GACxC,IACE,IAAK,MAAMC,KAAuBj6N,KAAKw0E,YAC/BylJ,EAAoBF,GAGtBE,EAAoB3rL,SACtB0rL,EAAa32N,KAAK42N,EAAoB3rL,QAG3C,CAAC,MAAOlmC,IAGP4xN,EAAan/D,UACb,IAAK,MAAMvsH,KAAW0rL,EACpB,IACE1rL,GACD,CAAC,MAAO7sC,IAKX,MAAMzB,KAAK8jJ,KAAKmnE,cAAcllL,OAAoC,iBAChEm0L,gBAA6B,OAAX9xN,SAAA,IAAAA,QAAA,EAAAA,GAAagJ,SAElC,SC/DQ+oN,GAOXl4N,WAAAA,CAAY60I,eAEV,MAAMsjF,EAAkBtjF,EAASujF,sBACjCr6N,KAAKq6N,sBAAwB,CAAC,EAE9Br6N,KAAKq6N,sBAAsBC,kBACQ,QAAjC,EAAAF,EAAgBE,yBAAiB,QApBH,EAqB5BF,EAAgBG,oBAClBv6N,KAAKq6N,sBAAsBE,kBACzBH,EAAgBG,wBAE+Bv5N,IAA/Co5N,EAAgBI,6BAClBx6N,KAAKq6N,sBAAsBI,wBACzBL,EAAgBI,iCAE+Bx5N,IAA/Co5N,EAAgBM,6BAClB16N,KAAKq6N,sBAAsBM,wBACzBP,EAAgBM,iCAE6B15N,IAA7Co5N,EAAgBQ,2BAClB56N,KAAKq6N,sBAAsBO,yBACzBR,EAAgBQ,+BAEqC55N,IAArDo5N,EAAgBS,mCAClB76N,KAAKq6N,sBAAsBQ,iCACzBT,EAAgBS,kCAGpB76N,KAAKmvN,iBAAmBr4E,EAASq4E,iBACH,kCAA1BnvN,KAAKmvN,mBACPnvN,KAAKmvN,iBAAmB,OAI1BnvN,KAAK86N,iCACoD,QAAvD,EAAyC,QAAzC,EAAAhkF,EAASgkF,wCAAgC,eAAE72N,KAAK,WAAO,WAEzDjE,KAAK+6N,qBAAwD,QAAjC,EAAAjkF,EAASikF,4BAAwB,SAC7D/6N,KAAKg7N,cAAgBlkF,EAASkkF,cAGhCC,gBAAAA,CAAiBz6J,mBACf,MAAMkjE,EAA2C,CAC/CuxE,SAAS,EACTimB,eAAgBl7N,MAelB,OAXAA,KAAKm7N,8BAA8B36J,EAAUkjE,GAC7C1jI,KAAKo7N,iCAAiC56J,EAAUkjE,GAGhDA,EAAOuxE,UAAPvxE,EAAOuxE,QAAyC,QAA7B,EAAAvxE,EAAO23F,8BAAsB,UAChD33F,EAAOuxE,UAAPvxE,EAAOuxE,QAAyC,QAA7B,EAAAvxE,EAAO43F,8BAAsB,UAChD53F,EAAOuxE,UAAPvxE,EAAOuxE,QAA0C,QAA9B,EAAAvxE,EAAO+2F,+BAAuB,UACjD/2F,EAAOuxE,UAAPvxE,EAAOuxE,QAA0C,QAA9B,EAAAvxE,EAAOi3F,+BAAuB,UACjDj3F,EAAOuxE,UAAPvxE,EAAOuxE,QAA2C,QAA/B,EAAAvxE,EAAOk3F,gCAAwB,UAClDl3F,EAAOuxE,UAAPvxE,EAAOuxE,QAAmD,QAAvC,EAAAvxE,EAAOm3F,wCAAgC,UAEnDn3F,EASDy3F,6BAAAA,CACN36J,EACAkjE,GAEA,MAAM42F,EAAoBt6N,KAAKq6N,sBAAsBC,kBAC/CC,EAAoBv6N,KAAKq6N,sBAAsBE,kBACjDD,IACF52F,EAAO23F,uBAAyB76J,EAAS79D,QAAU23N,GAEjDC,IACF72F,EAAO43F,uBAAyB96J,EAAS79D,QAAU43N,GAU/Ca,gCAAAA,CACN56J,EACAkjE,GAWA,IAAI63F,EARJv7N,KAAKw7N,uCACH93F,GACkC,GACA,GACF,GACQ,GAI1C,IAAK,IAAIxgI,EAAI,EAAGA,EAAIs9D,EAAS79D,OAAQO,IACnCq4N,EAAe/6J,EAASv+B,OAAO/+B,GAC/BlD,KAAKw7N,uCACH93F,EACkC63F,GAAgB,KAChDA,GAAgB,IACgBA,GAAgB,KAChDA,GAAgB,IACcA,GAAgB,KAC9CA,GAAgB,IACsBv7N,KAAK86N,iCAAiCn8M,SAC5E48M,IAiBAC,sCAAAA,CACN93F,EACA82F,EACAE,EACAE,EACAC,GAEI76N,KAAKq6N,sBAAsBI,0BAC7B/2F,EAAO+2F,0BAAP/2F,EAAO+2F,wBAA4BD,IAEjCx6N,KAAKq6N,sBAAsBM,0BAC7Bj3F,EAAOi3F,0BAAPj3F,EAAOi3F,wBAA4BD,IAEjC16N,KAAKq6N,sBAAsBO,2BAC7Bl3F,EAAOk3F,2BAAPl3F,EAAOk3F,yBAA6BA,IAElC56N,KAAKq6N,sBAAsBQ,mCAC7Bn3F,EAAOm3F,mCAAPn3F,EAAOm3F,iCACLA,WC5FKY,GAqCXx5N,WAAAA,CACkBmjN,EACCsW,EACAC,EACD9kF,GAHA,KAAG,IAAHuuE,EACC,KAAwB,yBAAxBsW,EACA,KAAuB,wBAAvBC,EACD,KAAM,OAAN9kF,EAxClB,KAAW,YAAgB,KAC3B,KAAc,eAA0B,KAChC,KAAA+kF,WAAanzJ,QAAQ7xD,UAGrB,KAAAilN,sBAAwB,IAAIC,GAAmB97N,MAC/C,KAAA+7N,oBAAsB,IAAID,GAAmB97N,MACpC,KAAAg8N,iBAAmB,IAAIrC,GAAoB35N,MACpD,KAAY,aAAwB,KACpC,KAAyB,2BAAG,EACnB,KAAuC,wCAAW,EAInE,KAAgB,kBAAG,EACnB,KAAc,gBAAG,EACjB,KAAQ,UAAG,EACX,KAAsB,uBAAyB,KAC/C,KAAsB,uBAAyC,KAC/D,KAAa,cACXsqN,GACF,KAAqB,sBAA2B,KAChD,KAAuB,wBAAoC,CAAC,EAC5D,KAAsB,uBAAkC,KACxD,KAAuB,wBAA2C,CAAC,EAM3D,KAAe,qBAA8BtpN,EAErD,KAAY,aAAkB,KAC9B,KAAQ,SAAkB,KAC1B,KAAAghH,SAAyB,CAAEi6G,mCAAmC,GA2pBtD,KAAU,WAAa,GAnpB7Bj8N,KAAKmG,KAAOi/M,EAAIj/M,KAChBnG,KAAKk8N,cAAgBrlF,EAAOslF,iBAG9BC,0BAAAA,CACEhE,EACAiE,GA4CA,OA1CIA,IACFr8N,KAAKs8N,uBAAyB5F,GAAa2F,IAK7Cr8N,KAAKu8N,uBAAyBv8N,KAAKw0E,OAAMvrE,kBACvC,IAAIjJ,KAAKw8N,WAITx8N,KAAKy8N,yBAA2BnF,GAAuBvxL,OACrD/lC,KACAo4N,IAGEp4N,KAAKw8N,UAAT,CAMA,GAA+B,QAA3B,EAAAx8N,KAAKs8N,8BAAsB,eAAEI,uBAE/B,UACQ18N,KAAKs8N,uBAAuBK,YAAY38N,KAC/C,CAAC,MAAOoI,WAKLpI,KAAK48N,sBAAsBP,GAEjCr8N,KAAK68N,iBAAoC,QAAlB,EAAA78N,KAAKqwN,mBAAa,eAAAwC,MAAO,KAE5C7yN,KAAKw8N,WAITx8N,KAAK88N,gBAAiB,EArBrB,CAqByB,IAGrB98N,KAAKu8N,uBAMd,qBAAM3E,GACJ,GAAI53N,KAAKw8N,SACP,OAGF,MAAM74G,QAAa3jH,KAAK+8N,oBAAoBjF,iBAE5C,OAAK93N,KAAKqwN,aAAgB1sG,EAMtB3jH,KAAKqwN,aAAe1sG,GAAQ3jH,KAAKqwN,YAAYwC,MAAQlvG,EAAKkvG,KAE5D7yN,KAAKg9N,aAAa1I,QAAQ3wG,cAGpB3jH,KAAKqwN,YAAYa,yBAMnBlxN,KAAKi9N,mBAAmBt5G,GAAqC,QAjBnE,EAoBM,sCAAMu5G,CACZvL,GAEA,IACE,MAAM76E,QAAiBw4E,GAAetvN,KAAM,CAAE2xN,YACxChuG,QAAa+wG,GAAS8B,4BAC1Bx2N,KACA82I,EACA66E,SAEI3xN,KAAKm9N,uBAAuBx5G,EACnC,CAAC,MAAOlzG,GACPub,QAAQ5O,KACN,qEACA3M,SAEIzQ,KAAKm9N,uBAAuB,KACnC,EAGK,2BAAMP,CACZP,SAEA,GAAI1W,GAAqB3lN,KAAKolN,KAAM,CAClC,MAAMuM,EAAU3xN,KAAKolN,IAAIpjG,SAASo7G,YAClC,OAAIzL,EAGK,IAAIlpJ,SAAc7xD,IACvByxD,YAAW,IACTroE,KAAKk9N,iCAAiCvL,GAAS99L,KAC7Cjd,EACAA,IAEH,IAGI5W,KAAKm9N,uBAAuB,KAEtC,CAGD,MAAME,QACGr9N,KAAK+8N,oBAAoBjF,iBAClC,IAAIwF,EAAoBD,EACpBE,GAAyB,EAC7B,GAAIlB,GAAyBr8N,KAAK62I,OAAO2mF,WAAY,OAC7Cx9N,KAAKy9N,sCACX,MAAMC,EAAuC,QAAjB,EAAA19N,KAAK29N,oBAAY,eAAExH,iBACzCyH,EAAqC,OAAjBN,QAAA,IAAAA,OAAA,EAAAA,EAAmBnH,iBACvC7xM,QAAetkB,KAAK69N,kBAAkBxB,GAOxCqB,GAAuBA,IAAwBE,KAC3C,OAANt5M,QAAM,IAANA,OAAM,EAANA,EAAQq/F,QAER25G,EAAoBh5M,EAAOq/F,KAC3B45G,GAAyB,EAE5B,CAGD,IAAKD,EACH,OAAOt9N,KAAKm9N,uBAAuB,MAGrC,IAAKG,EAAkBnH,iBAAkB,CAGvC,GAAIoH,EACF,UACQv9N,KAAKg8N,iBAAiBlC,cAAcwD,EAC3C,CAAC,MAAOl1N,IACPk1N,EAAoBD,EAGpBr9N,KAAKs8N,uBAAwBwB,wBAAwB99N,MAAM,IACzDyoE,QAAQmzD,OAAOxzH,KAElB,CAGH,OAAIk1N,EACKt9N,KAAK+9N,+BAA+BT,GAEpCt9N,KAAKm9N,uBAAuB,KAEtC,CAQD,OANAjS,GAAQlrN,KAAKs8N,uBAAwBt8N,KAAM,wBACrCA,KAAKy9N,sCAMTz9N,KAAK29N,cACL39N,KAAK29N,aAAaxH,mBAAqBmH,EAAkBnH,iBAElDn2N,KAAKm9N,uBAAuBG,GAG9Bt9N,KAAK+9N,+BAA+BT,GAGrC,uBAAMO,CACZG,GAkBA,IAAI15M,EAAgC,KACpC,IAGEA,QAAetkB,KAAKs8N,uBAAwB2B,oBAC1Cj+N,KACAg+N,GACA,EAEH,CAAC,MAAO51N,UAGDpI,KAAKk+N,iBAAiB,KAC7B,CAED,OAAO55M,EAGD,oCAAMy5M,CACZp6G,GAEA,UACQ+tG,GAAqB/tG,EAC5B,CAAC,MAAOv7G,IACP,GAEE,iCADoB,OAAnBA,SAAA,IAAAA,QAAA,EAAAA,GAAqB3F,MAKtB,OAAOzC,KAAKm9N,uBAAuB,KAEtC,CAED,OAAOn9N,KAAKm9N,uBAAuBx5G,GAGrCw6G,iBAAAA,GACEn+N,KAAKmtN,wBzBzVP,GAAyB,qBAAdr6F,UACT,OAAO,KAET,MAAMsrG,EAAuCtrG,UAC7C,OAEGsrG,EAAkBtkI,WAAaskI,EAAkBtkI,UAAU,IAG5DskI,EAAkB5wL,UAElB,IAEJ,CyB4UwB6wL,GAGtB,aAAMlgB,GACJn+M,KAAKw8N,UAAW,EAGlB,uBAAM8B,CAAkBC,GACtB,GAAI5Y,GAAqB3lN,KAAKolN,KAC5B,OAAO38I,QAAQmzD,OACbmvF,GAAgD/qN,OAKpD,MAAM2jH,EAAO46G,EACRniB,GAAmBmiB,GACpB,KAQJ,OAPI56G,GACFunG,GACEvnG,EAAKmgC,KAAKjN,OAAOo2E,SAAWjtN,KAAK62I,OAAOo2E,OACxCjtN,KAAI,sBAIDA,KAAKi9N,mBAAmBt5G,GAAQA,EAAK4wG,OAAOv0N,OAGrD,wBAAMi9N,CACJt5G,GACyC,IAAzC66G,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GAEA,IAAIx+N,KAAKw8N,SAeT,OAZI74G,GACFunG,GACElrN,KAAK6sN,WAAalpG,EAAKkpG,SACvB7sN,KAAI,sBAKHw+N,SACGx+N,KAAKg8N,iBAAiBlC,cAAcn2G,GAGrC3jH,KAAKw0E,OAAMvrE,gBACVjJ,KAAKm9N,uBAAuBx5G,GAClC3jH,KAAKy+N,qBAAqB,IAI9B,aAAMnO,GACJ,OAAI3K,GAAqB3lN,KAAKolN,KACrB38I,QAAQmzD,OACbmvF,GAAgD/qN,cAI9CA,KAAKg8N,iBAAiBlC,cAAc,OAEtC95N,KAAK0+N,4BAA8B1+N,KAAKs8N,+BACpCt8N,KAAKk+N,iBAAiB,MAKvBl+N,KAAKi9N,mBAAmB,MAAqC,IAGtE/E,cAAAA,CAAeX,GACb,OAAI5R,GAAqB3lN,KAAKolN,KACrB38I,QAAQmzD,OACbmvF,GAAgD/qN,OAG7CA,KAAKw0E,OAAMvrE,gBACVjJ,KAAK+8N,oBAAoB7E,eAAexB,GAAaa,GAAa,IAI5EoH,mBAAAA,GACE,OAAqB,MAAjB3+N,KAAK6sN,SACA7sN,KAAK4+N,sBAEL5+N,KAAK6+N,wBAAwB7+N,KAAK6sN,UAI7C,sBAAMoO,CAAiBz6J,GAChBxgE,KAAK8+N,oCACF9+N,KAAK++N,wBAIb,MAAM7D,EACJl7N,KAAK8+N,6BAIP,OACE5D,EAAeF,gBACfh7N,KAAKg/N,wCAEEv2J,QAAQmzD,OACb57H,KAAKirN,cAAcllL,OAAO,6CAExB,CAAC,IAKAm1L,EAAeD,iBAAiBz6J,GAGzCs+J,0BAAAA,GACE,OAAsB,OAAlB9+N,KAAK6sN,SACA7sN,KAAKi/N,uBAELj/N,KAAKk/N,wBAAwBl/N,KAAK6sN,UAI7C,2BAAMkS,GACJ,MAAMjoF,QCxcH7tI,eACL66I,GAGA,OAAOgpE,GAILhpE,EAGA,2BAAA8oE,GAAmB9oE,EATrB/nB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAoC,CAAC,GAWvC,CD2b2BojG,CAAmBn/N,MAEpCk7N,EAAyC,IAAIf,GACjDrjF,GAGoB,OAAlB92I,KAAK6sN,SACP7sN,KAAKi/N,uBAAyB/D,EAE9Bl7N,KAAKk/N,wBAAwBl/N,KAAK6sN,UAAYqO,EAIlDkE,eAAAA,GACE,OAAOp/N,KAAK+8N,oBAAoBxF,YAAYt8M,KAG9CokN,eAAAA,CAAgBvU,GACd9qN,KAAKirN,cAAgB,IAAI9Q,GACvB,OACA,WACC2Q,KAILwU,kBAAAA,CACE5jB,EACAp0M,EACAi4N,GAEA,OAAOv/N,KAAKw/N,sBACVx/N,KAAK67N,sBACLngB,EACAp0M,EACAi4N,GAIJE,sBAAAA,CACEhhL,EACAnQ,GAEA,OAAOtuC,KAAKg8N,iBAAiBpC,aAAan7K,EAAUnQ,GAGtDoxL,gBAAAA,CACEhkB,EACAp0M,EACAi4N,GAEA,OAAOv/N,KAAKw/N,sBACVx/N,KAAK+7N,oBACLrgB,EACAp0M,EACAi4N,GAIJI,cAAAA,GACE,OAAO,IAAIl3J,SAAQ,CAAC7xD,EAASglH,KAC3B,GAAI57H,KAAKqwN,YACPz5M,QACK,CACL,MAAMkuI,EAAc9kJ,KAAKs/N,oBAAmB,KAC1Cx6E,IACAluI,GAAS,GACRglH,EACJ,KAOL,uBAAMgkG,CAAkBl3I,GACtB,GAAI1oF,KAAKqwN,YAAa,CACpB,MAEMt0F,EAA8B,CAClCu2F,WAAY,YACZuN,UAAiC,eACjCn3I,QACAipI,cANoB3xN,KAAKqwN,YAAYa,cAQlB,MAAjBlxN,KAAK6sN,WACP9wF,EAAQ8wF,SAAW7sN,KAAK6sN,gBThfzB5jN,eACL66I,EACA/nB,GAEA,OAAO+wF,GACLhpE,EAGA,kCAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CSweY+jG,CAAY9/N,KAAM+7H,EACzB,EAGHib,MAAAA,SACE,MAAO,CACLi2E,OAAQjtN,KAAK62I,OAAOo2E,OACpBuQ,WAAYx9N,KAAK62I,OAAO2mF,WACxBna,QAASrjN,KAAKmG,KACdkqN,YAA8B,QAAjB,EAAArwN,KAAKg9N,oBAAY,eAAEhmF,UAIpC,sBAAMknF,CACJv6G,EACA04G,GAEA,MAAM0D,QAAwB//N,KAAKy9N,oCACjCpB,GAEF,OAAgB,OAAT14G,EACHo8G,EAAgB/H,oBAChB+H,EAAgBlI,eAAel0G,GAG7B,yCAAM85G,CACZpB,GAEA,IAAKr8N,KAAK0+N,2BAA4B,CACpC,MAAM/lN,EACH0jN,GAAyB3F,GAAa2F,IACvCr8N,KAAKs8N,uBACPpR,GAAQvyM,EAAU3Y,KAAM,kBACxBA,KAAK0+N,iCAAmCpH,GAAuBvxL,OAC7D/lC,KACA,CAAC02N,GAAa/9M,EAASqnN,uBAAsB,gBAG/ChgO,KAAK29N,mBACG39N,KAAK0+N,2BAA2B5G,gBACzC,CAED,OAAO93N,KAAK0+N,2BAGd,wBAAMuB,CAAmB5oN,WAOvB,OAJIrX,KAAK88N,sBACD98N,KAAKw0E,OAAMvrE,eAGI,QAAnB,EAAAjJ,KAAKg9N,oBAAc,eAAA7G,oBAAqB9+M,EACnCrX,KAAKg9N,cAGS,QAAnB,EAAAh9N,KAAK29N,oBAAc,eAAAxH,oBAAqB9+M,EACnCrX,KAAK29N,aAGP,KAGT,2BAAM9I,CAAsBlxG,GAC1B,GAAIA,IAAS3jH,KAAKqwN,YAChB,OAAOrwN,KAAKw0E,OAAMvrE,SAAYjJ,KAAKm9N,uBAAuBx5G,KAK9DmxG,yBAAAA,CAA0BnxG,GACpBA,IAAS3jH,KAAKqwN,aAChBrwN,KAAKy+N,sBAIT/xF,IAAAA,GACE,MAAO,GAAG1sI,KAAK62I,OAAO2mF,cAAcx9N,KAAK62I,OAAOo2E,UAAUjtN,KAAKmG,OAGjE2vN,sBAAAA,GACE91N,KAAKkgO,2BAA4B,EAC7BlgO,KAAKqwN,aACPrwN,KAAKg9N,aAAalH,yBAItBC,qBAAAA,GACE/1N,KAAKkgO,2BAA4B,EAC7BlgO,KAAKqwN,aACPrwN,KAAKg9N,aAAajH,wBAKtB,gBAAIiH,GACF,OAAOh9N,KAAKqwN,YAGNoO,mBAAAA,WACN,IAAKz+N,KAAK88N,eACR,OAGF98N,KAAK+7N,oBAAoBzpM,KAAKtyB,KAAKqwN,aAEnC,MAAM8P,EAAsC,QAAzB,EAAkB,QAAlB,EAAAngO,KAAKqwN,mBAAa,eAAAwC,WAAO,aACxC7yN,KAAK68N,kBAAoBsD,IAC3BngO,KAAK68N,gBAAkBsD,EACvBngO,KAAK67N,sBAAsBvpM,KAAKtyB,KAAKqwN,cAIjCmP,qBAAAA,CACNY,EACA1kB,EACAp0M,EACAi4N,GAEA,GAAIv/N,KAAKw8N,SACP,MAAO,OAGT,MAAM33K,EACsB,oBAAnB62J,EACHA,EACAA,EAAeppL,KAAKu0C,KAAK60I,GAE/B,IAAI2kB,GAAiB,EAErB,MAAM1kG,EAAU37H,KAAK88N,eACjBr0J,QAAQ7xD,UACR5W,KAAKu8N,uBAWT,GAVArR,GAAQvvF,EAAS37H,KAAM,kBAGvB27H,EAAQ9nG,MAAK,KACPwsM,GAGJx7K,EAAG7kD,KAAKqwN,YAAY,IAGQ,oBAAnB3U,EAA+B,CACxC,MAAM52D,EAAcs7E,EAAaE,YAC/B5kB,EACAp0M,EACAi4N,GAEF,MAAO,KACLc,GAAiB,EACjBv7E,GAAa,CAEhB,CAAM,CACL,MAAMA,EAAcs7E,EAAaE,YAAY5kB,GAC7C,MAAO,KACL2kB,GAAiB,EACjBv7E,GAAa,CAEhB,EAQK,4BAAMq4E,CACZx5G,GAEI3jH,KAAKqwN,aAAerwN,KAAKqwN,cAAgB1sG,GAC3C3jH,KAAKg9N,aAAajH,wBAEhBpyG,GAAQ3jH,KAAKkgO,2BACfv8G,EAAKmyG,yBAGP91N,KAAKqwN,YAAc1sG,EAEfA,QACI3jH,KAAK+8N,oBAAoBlF,eAAel0G,SAExC3jH,KAAK+8N,oBAAoB/E,oBAI3BxjJ,KAAAA,CAAM1qC,GAIZ,OADA9pC,KAAK47N,WAAa57N,KAAK47N,WAAW/nM,KAAKiW,EAAQA,GACxC9pC,KAAK47N,WAGd,uBAAYmB,GAEV,OADA7R,GAAQlrN,KAAKy8N,mBAAoBz8N,KAAM,kBAChCA,KAAKy8N,mBAKd8D,aAAAA,CAAcC,GACPA,IAAaxgO,KAAKy5N,WAAW96M,SAAS6hN,KAG3CxgO,KAAKy5N,WAAWp2N,KAAKm9N,GAIrBxgO,KAAKy5N,WAAWt6F,OAChBn/H,KAAKk8N,cAAgB5C,GACnBt5N,KAAK62I,OAAO0iF,eACZv5N,KAAKygO,mBAGTA,cAAAA,GACE,OAAOzgO,KAAKy5N,WAEd,2BAAMvM,SAEJ,MAAM9gL,EAAkC,CACtC,mBAA+BpsC,KAAKk8N,eAGlCl8N,KAAKolN,IAAIr1L,QAAQi4L,QACnB57K,EAAQ,oBAA+BpsC,KAAKolN,IAAIr1L,QAAQi4L,OAI1D,MAAM0Y,QAIF,QAJ2B,EAAA1gO,KAAK07N,yBACjC/d,aAAa,CACZn8F,UAAU,WAEV,eAAAqnG,uBACA6X,IACFt0L,EAAQ,qBAAgCs0L,GAI1C,MAAMC,QAAsB3gO,KAAK4gO,oBAKjC,OAJID,IACFv0L,EAAQ,uBAAmCu0L,GAGtCv0L,EAGT,uBAAMw0L,SACJ,MAAMC,QAEF,QAF8B,EAAA7gO,KAAK27N,wBACpChe,aAAa,CAAEn8F,UAAU,WACxB,eAAAjV,YAUJ,OATI,OAAAs0H,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBv5N,iB5B3yBJsR,GACvB,GAAI2xM,GAAU1K,UAAYZ,GAASK,KAAM,4BADFn8M,EAAc,iCAAdA,EAAc,kBAEnDonN,GAAUntM,KAAK,SAASgpM,QAAiBxtM,OAAUzV,EACpD,CACH,C4B4yBM29N,CACE,2CAA2CD,EAAoBv5N,SAG5D,OAAAu5N,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBn4I,OAU1B,SAAUq4I,GAAUj9E,GACxB,OAAOs4D,GAAmBt4D,EAC5B,CAGA,MAAMg4E,GAMJ75N,WAAAA,CAAqB6hJ,GAAA,KAAI,KAAJA,EALb,KAAQ,SAA8B,KACrC,KAAAw8E,YnDhzBK,SACdt0E,EACAuvD,GAEA,MAAMylB,EAAQ,IAAI1lB,GAAiBtvD,EAAUuvD,GAC7C,OAAOylB,EAAMh7E,UAAUn/E,KAAKm6J,EAC9B,CmD0yB8CC,EAC1CxsE,GAAaz0J,KAAKy0J,SAAWA,IAK/B,QAAIniI,GAEF,OADA44L,GAAQlrN,KAAKy0J,SAAUz0J,KAAK8jJ,KAAM,kBAC3B9jJ,KAAKy0J,SAASniI,KAAKu0C,KAAK7mE,KAAKy0J,WE51BxC,IAAIysE,GAAyC,CAC3C,YAAMC,GACJ,MAAM,IAAI/+N,MAAM,oCAGlBg/N,kBAAmB,GACnBC,0BAA2B,GAC3BC,WAAY,IAOR,SAAUC,GAAQ3gK,GACtB,OAAOsgK,GAAmBC,OAAOvgK,EACnC,CAcM,SAAU4gK,GAAsBn3N,GACpC,MAAO,KAAKA,IAAS0S,KAAK08F,MAAsB,IAAhB18F,KAAK4pD,WACvC,OCpBa86J,GAaXx/N,WAAAA,CAAYy/N,GATH,KAAI,KAPmC,uBAiB9C1hO,KAAK8jJ,KAAOi9E,GAAUW,GAQxB,YAAMC,GAEgB,IADpB73L,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAiB,SACjB8qL,EAAe,UAAH,8CAuCZ,SAASgN,EACP7S,EACAn4M,EACAglH,GAEA,MAAM+yF,EAAanzK,OAAOmzK,WACtBD,GAAaC,GACfA,EAAWC,WAAWiT,OAAM,KAC1BlT,EAAWC,WACRkT,QAAQ/S,EAAS,CAAEjlL,WACnBjW,MAAK60D,IACJ9xE,EAAQ8xE,EAAM,IAEft/E,OAAM,KACLwN,EA/EY,eA+EO,GACnB,IAGNglH,EAAOx5H,MAAM,2CAIjB,OAAO,IAAIqmE,SAAgB,CAAC7xD,EAASglH,MA3DrC3yH,eAA+B66I,GAC7B,IAAK8wE,EAAc,CACjB,GAAqB,MAAjB9wE,EAAK+oE,UAAkD,MAA9B/oE,EAAK86E,sBAChC,OAAO96E,EAAK86E,sBAAsB7P,QAEpC,GACmB,MAAjBjrE,EAAK+oE,eAC2C7rN,IAAhD8iJ,EAAK+6E,wBAAwB/6E,EAAK+oE,UAElC,OAAO/oE,EAAK+6E,wBAAwB/6E,EAAK+oE,UAAUkC,OAEtD,CAED,OAAO,IAAItmJ,SAAgBx/D,MAAO2N,EAASglH,KACzCyzF,GAAmBvrE,EAAM,CACvBi+E,WAAmC,kBACnCxpL,QAAoC,yBAEnC1kB,MAAKijH,IACJ,QAA8B91I,IAA1B81I,EAASg4E,aAEN,CACL,MAAMj4E,EAAS,IAAIg4E,GAAgB/3E,GAMnC,OALqB,MAAjBgN,EAAK+oE,SACP/oE,EAAK86E,sBAAwB/nF,EAE7BiN,EAAK+6E,wBAAwB/6E,EAAK+oE,UAAYh2E,EAEzCjgI,EAAQigI,EAAOk4E,QACvB,CATCnzF,EAAO,IAAIx5H,MAAM,2CASlB,IAEFgH,OAAM9B,IACLs0H,EAAOt0H,EAAM,GACb,KA2BN06N,CAAgBhiO,KAAK8jJ,MAClBjwH,MAAKk7L,IACJ,IAAK6F,GAAgBlG,GAAalzK,OAAOmzK,YACvCiT,EAAuB7S,EAASn4M,EAASglH,OACpC,CACL,GAAsB,qBAAXpgF,OAIT,YAHAogF,EACE,IAAIx5H,MAAM,mDAId,IAAIw+D,EDtFPsgK,GAAmBG,0BCuFG,IAAfzgK,EAAIj+D,SACNi+D,GAAOmuJ,GAETkT,GACWrhK,GACR/sC,MAAK,KACJ+tM,EAAuB7S,EAASn4M,EAASglH,EAAO,IAEjDxyH,OAAM9B,IACLs0H,EAAOt0H,EAAM,GAElB,KAEF8B,OAAM9B,IACLs0H,EAAOt0H,EAAM,GACb,KAKH2B,eAAei5N,GACpBp+E,EACA/nB,EACAjyF,GACmB,IAAnBq4L,EAAc,UAAH,8CAEX,MAAMC,EAAW,IAAIX,GAA4B39E,GACjD,IAAIu+E,EACJ,IACEA,QAAwBD,EAAST,OAAO73L,EACzC,CAAC,MAAOxiC,GACP+6N,QAAwBD,EAAST,OAAO73L,GAAQ,EACjD,CACD,MAAMw4L,EAAa,OAAH,UAAQvmG,GAUxB,OATKomG,EAGHhhO,OAAOqK,OAAO82N,EAAY,CAAE,YAAeD,IAF3ClhO,OAAOqK,OAAO82N,EAAY,CAAED,oBAI9BlhO,OAAOqK,OAAO82N,EAAY,CAAE,WAAc,oBAC1CnhO,OAAOqK,OAAO82N,EAAY,CACxB,iBAA+C,yBAE1CA,CACT,CAOOr5N,eAAes5N,GACpBC,EACAzmG,EACA0mG,EACAC,SAEA,GAE0B,QADxB,EAAAF,EACG7D,6BAAqB,eACpBvP,kBAAkB,2BACtB,CACA,MAAMuT,QAA6BT,GACjCM,EACAzmG,EACA0mG,EACe,eAAfA,GAEF,OAAOC,EAAaF,EAAcG,EACnC,CACC,OAAOD,EAAaF,EAAczmG,GAAS3yH,OAAMH,UAC/C,GAAmB,iCAAf3B,EAAM7E,KAA0D,CAClEupB,QAAQC,IACN,GAAGw2M,iIAEL,MAAME,QAA6BT,GACjCM,EACAzmG,EACA0mG,EACe,eAAfA,GAEF,OAAOC,EAAaF,EAAcG,EACnC,CACC,OAAOl6J,QAAQmzD,OAAOt0H,EACvB,GAGP,UClLgBs7N,GACd9+E,EACAljF,EACA7wC,GAEA,MAAM8yM,EAAe9B,GAAUj9E,GAC/BonE,GACE2X,EAAarV,iBACbqV,EAAY,0BAId3X,GACE,eAAe/oN,KAAKy+D,GACpBiiK,EAAY,2BAId,MAAMC,KAAoB,OAAA/yM,QAAA,IAAAA,OAAA,EAAAA,EAAS+yM,iBAE7Bz3F,EAAW03F,GAAgBniK,IAC3B,KAAE+kC,EAAI,KAAEojB,GAuBhB,SAA4BnoD,GAI1B,MAAMyqE,EAAW03F,GAAgBniK,GAC3BkoD,EAAY,mBAAmB5hG,KAAK05C,EAAIm8D,OAAOsO,EAAS1oI,SAC9D,IAAKmmH,EACH,MAAO,CAAEnjB,KAAM,GAAIojB,KAAM,MAE3B,MAAMi6G,EAAcl6G,EAAU,GAAGhxG,MAAM,KAAKnK,OAAS,GAC/Cs1N,EAAgB,qBAAqB/7M,KAAK87M,GAChD,GAAIC,EAAe,CACjB,MAAMt9H,EAAOs9H,EAAc,GAC3B,MAAO,CAAEt9H,OAAMojB,KAAMm6G,GAAUF,EAAYjmG,OAAOp3B,EAAKhjG,OAAS,IACjE,CAAM,CACL,MAAOgjG,EAAMojB,GAAQi6G,EAAYlrN,MAAM,KACvC,MAAO,CAAE6tF,OAAMojB,KAAMm6G,GAAUn6G,GAChC,CACH,CAzCyBo6G,CAAmBviK,GACpCwiK,EAAmB,OAATr6G,EAAgB,GAAK,IAAIA,IAGzC85G,EAAahsF,OAAOu1E,SAAW,CAAExrJ,IAAK,GAAGyqE,MAAa1lC,IAAOy9H,MAC7DP,EAAa7gH,SAASi6G,mCAAoC,EAC1D4G,EAAaQ,eAAiBliO,OAAOg9K,OAAO,CAC1Cx4E,OACAojB,OACAsiB,SAAUA,EAAS/mI,QAAQ,IAAK,IAChCyrB,QAAS5uB,OAAOg9K,OAAO,CAAE2kD,sBAGtBA,GAyCP,WACE,SAASQ,IACP,MAAMh/I,EAAK5oC,SAASS,cAAc,KAC5BonL,EAAMj/I,EAAGxjD,MACfwjD,EAAGk/I,UACD,oEACFD,EAAIniM,SAAW,QACfmiM,EAAI9tL,MAAQ,OACZ8tL,EAAIp8F,gBAAkB,UACtBo8F,EAAIttL,OAAS,qBACbstL,EAAI5sL,MAAQ,UACZ4sL,EAAIE,OAAS,MACbF,EAAIr/J,KAAO,MACXq/J,EAAI1nC,OAAS,MACb0nC,EAAIj1K,OAAS,QACbi1K,EAAI9vC,UAAY,SAChBnvG,EAAG4qC,UAAUxkH,IAAI,6BACjBgxC,SAASnuC,KAAKw+C,YAAYu4B,GAGL,qBAAZt4D,SAAmD,oBAAjBA,QAAQ0X,MACnD1X,QAAQ0X,KACN,gIAKkB,qBAAX8X,QAA8C,qBAAbE,WACd,YAAxBA,SAAS22E,WACX72E,OAAO8V,iBAAiB,mBAAoBgyK,GAE5CA,IAGN,CA1EII,EAEJ,CAEA,SAASX,GAAgBniK,GACvB,MAAM+iK,EAAc/iK,EAAIj8B,QAAQ,KAChC,OAAOg/L,EAAc,EAAI,GAAK/iK,EAAIm8D,OAAO,EAAG4mG,EAAc,EAC5D,CAsBA,SAAST,GAAUE,GACjB,IAAKA,EACH,OAAO,KAET,MAAMr6G,EAAO3kF,OAAOg/L,GACpB,OAAIj/L,MAAM4kF,GACD,KAEFA,CACT,OCtFa66G,GAEX3hO,WAAAA,CAOWqwN,EASAuR,GATA,KAAU,WAAVvR,EASA,KAAY,aAAZuR,EAQX7sF,MAAAA,GACE,OAAOo0E,GAAU,mBAInB0Y,mBAAAA,CAAoBC,GAClB,OAAO3Y,GAAU,mBAGnB4Y,cAAAA,CACED,EACAE,GAEA,OAAO7Y,GAAU,mBAGnB8Y,4BAAAA,CAA6BH,GAC3B,OAAO3Y,GAAU,oBCCdniN,eAAek7N,GACpBrgF,EACA/nB,GAEA,OAAO+wF,GACLhpE,EAGA,6BAAA/nB,EAEJ,CCvCO9yH,eAAem7N,GACpBtgF,EACA/nB,GAEA,OAAOmyF,GAILpqE,EAGA,yCAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CCZM,MAAOsoG,WAA4BT,GAEvC3hO,WAAAA,CAEWqiO,EAEAC,EACTV,GAEwC,IAA/BW,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAA2B,KAEpC5kO,MAAM,WAAqBikO,GAPlB,KAAM,OAANS,EAEA,KAAS,UAATC,EAGA,KAAS,UAATC,EAMX,4BAAOC,CACLnkK,EACAE,GAEA,OAAO,IAAI6jK,GACT/jK,EACAE,EAAQ,YAMZ,wBAAOkkK,CACLpkK,EACAqkK,GAGA,OAAO,IAAIN,GACT/jK,EACAqkK,EAAO,YAJT9X,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAA0B,MAW5B71E,MAAAA,GACE,MAAO,CACL12E,MAAOtgE,KAAKskO,OACZ9jK,SAAUxgE,KAAKukO,UACfV,aAAc7jO,KAAK6jO,aACnBhX,SAAU7sN,KAAKwkO,WAYnB,eAAOpQ,CAAS97M,GACd,MAAM1L,EAAsB,kBAAT0L,EAAoBjU,KAAK2S,MAAMsB,GAAQA,EAC1D,IAAO,OAAH1L,QAAG,IAAHA,OAAG,EAAHA,EAAK0zD,SAAY,OAAH1zD,QAAG,IAAHA,OAAG,EAAHA,EAAK4zD,UAAU,CAC/B,GAAyB,aAArB5zD,EAAIi3N,aACN,OAAO7jO,KAAKykO,sBAAsB73N,EAAI0zD,MAAO1zD,EAAI4zD,UAC5C,GAAyB,cAArB5zD,EAAIi3N,aACb,OAAO7jO,KAAK0kO,kBAAkB93N,EAAI0zD,MAAO1zD,EAAI4zD,SAAU5zD,EAAIigN,SAE9D,CACD,OAAO,KAIT,yBAAMiX,CAAoBhgF,GACxB,OAAQ9jJ,KAAK6jO,cACX,IAAK,WAOH,OAAOtB,GACLz+E,EAPyC,CACzC8gF,mBAAmB,EACnBtkK,MAAOtgE,KAAKskO,OACZ9jK,SAAUxgE,KAAKukO,UACfxC,WAAmC,mBAMnC,qBAAAqC,IAEJ,IAAK,YACH,OChGDn7N,eACL66I,EACA/nB,GAEA,OAAOmyF,GAILpqE,EAGA,0CAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CDmFe8oG,CAAoB/gF,EAAM,CAC/BxjF,MAAOtgE,KAAKskO,OACZK,QAAS3kO,KAAKukO,YAElB,QACE9Z,GAAM3mE,EAAM,mBAKlB,oBAAMkgF,CACJlgF,EACA6tE,GAEA,OAAQ3xN,KAAK6jO,cACX,IAAK,WAQH,OAAOtB,GACLz+E,EAR6B,CAC7B6tE,UACAiT,mBAAmB,EACnBtkK,MAAOtgE,KAAKskO,OACZ9jK,SAAUxgE,KAAKukO,UACfxC,WAAmC,mBAMnC,iBAAAoC,IAEJ,IAAK,YACH,OC1GDl7N,eACL66I,EACA/nB,GAEA,OAAOmyF,GAILpqE,EAGA,0CAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CD6Fe+oG,CAA8BhhF,EAAM,CACzC6tE,UACArxJ,MAAOtgE,KAAKskO,OACZK,QAAS3kO,KAAKukO,YAElB,QACE9Z,GAAM3mE,EAAM,mBAKlBogF,4BAAAA,CAA6BpgF,GAC3B,OAAO9jJ,KAAK8jO,oBAAoBhgF,IE9H7B76I,eAAe87N,GACpBjhF,EACA/nB,GAEA,OAAOmyF,GACLpqE,EAGA,oCAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CCDM,MAAOipG,WAAwBpB,GAArC3hO,WAAAA,uBAqBU,KAAY,aAAkB,KAGtC,kBAAOgjO,CAAYxyN,GACjB,MAAMyyN,EAAO,IAAIF,GAAgBvyN,EAAO6/M,WAAY7/M,EAAOoxN,cA4B3D,OA1BIpxN,EAAOk/M,SAAWl/M,EAAOihN,aAEvBjhN,EAAOk/M,UACTuT,EAAKvT,QAAUl/M,EAAOk/M,SAGpBl/M,EAAOihN,cACTwR,EAAKxR,YAAcjhN,EAAOihN,aAIxBjhN,EAAO07B,QAAU17B,EAAO0yN,eAC1BD,EAAK/2L,MAAQ17B,EAAO07B,OAGlB17B,EAAO0yN,eACTD,EAAKC,aAAe1yN,EAAO0yN,eAEpB1yN,EAAO2yN,YAAc3yN,EAAO4yN,kBAErCH,EAAKxR,YAAcjhN,EAAO2yN,WAC1BF,EAAKI,OAAS7yN,EAAO4yN,kBAErB5a,GAAM,kBAGDya,EAITluF,MAAAA,GACE,MAAO,CACL26E,QAAS3xN,KAAK2xN,QACd+B,YAAa1zN,KAAK0zN,YAClB4R,OAAQtlO,KAAKslO,OACbn3L,MAAOnuC,KAAKmuC,MACZg3L,aAAcnlO,KAAKmlO,aACnB7S,WAAYtyN,KAAKsyN,WACjBuR,aAAc7jO,KAAK6jO,cAavB,eAAOzP,CAAS97M,GACd,MAAM1L,EAAsB,kBAAT0L,EAAoBjU,KAAK2S,MAAMsB,GAAQA,GACpD,WAAEg6M,EAAU,aAAEuR,GAAiDj3N,EAAhCqxF,EAAgCksH,GAAAA,EAA/D,+BACN,IAAKmI,IAAeuR,EAClB,OAAO,KAGT,MAAMqB,EAAO,IAAIF,GAAgB1S,EAAYuR,GAM7C,OALAqB,EAAKvT,QAAU1zH,EAAK0zH,cAAW3wN,EAC/BkkO,EAAKxR,YAAcz1H,EAAKy1H,kBAAe1yN,EACvCkkO,EAAKI,OAASrnI,EAAKqnI,OACnBJ,EAAK/2L,MAAQ8vD,EAAK9vD,MAClB+2L,EAAKC,aAAelnI,EAAKknI,cAAgB,KAClCD,EAITpB,mBAAAA,CAAoBhgF,GAElB,OAAOihF,GAAcjhF,EADL9jJ,KAAKulO,gBAKvBvB,cAAAA,CACElgF,EACA6tE,GAEA,MAAM51F,EAAU/7H,KAAKulO,eAErB,OADAxpG,EAAQ41F,QAAUA,EACXoT,GAAcjhF,EAAM/nB,GAI7BmoG,4BAAAA,CAA6BpgF,GAC3B,MAAM/nB,EAAU/7H,KAAKulO,eAErB,OADAxpG,EAAQypG,YAAa,EACdT,GAAcjhF,EAAM/nB,GAGrBwpG,YAAAA,GACN,MAAMxpG,EAAgC,CACpC0pG,WApJkB,mBAqJlBb,mBAAmB,GAGrB,GAAI5kO,KAAKmlO,aACPppG,EAAQopG,aAAenlO,KAAKmlO,iBACvB,CACL,MAAMO,EAAmC,CAAC,EACtC1lO,KAAK2xN,UACP+T,EAAmB,SAAI1lO,KAAK2xN,SAE1B3xN,KAAK0zN,cACPgS,EAAuB,aAAI1lO,KAAK0zN,aAE9B1zN,KAAKslO,SACPI,EAA6B,mBAAI1lO,KAAKslO,QAGxCI,EAAqB,WAAI1lO,KAAKsyN,WAC1BtyN,KAAKmuC,QAAUnuC,KAAKmlO,eACtBO,EAAgB,MAAI1lO,KAAKmuC,OAG3B4tF,EAAQ2pG,SAAW3qB,GAAY2qB,EAChC,CAED,OAAO3pG,GCrFX,MAAM4pG,GAEF,CACF,eAAwD,kBC/EpD,MAAOC,WAA4BhC,GACvC3hO,WAAAA,CAAqCwQ,GACnC7S,MAAM,QAAD,SAD8B,KAAM,OAAN6S,EAKrC,wBAAOozN,CACLC,EACAC,GAEA,OAAO,IAAIH,GAAoB,CAAEE,iBAAgBC,qBAInD,yBAAOC,CACLxX,EACAyX,GAEA,OAAO,IAAIL,GAAoB,CAAEpX,cAAayX,mBAIhDnC,mBAAAA,CAAoBhgF,GAClB,ODcG76I,eACL66I,EACA/nB,GAEA,OAAOmyF,GAILpqE,EAGA,4CAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CC3BWmqG,CAAsBpiF,EAAM9jJ,KAAKmmO,4BAI1CnC,cAAAA,CACElgF,EACA6tE,GAEA,ODqBG1oN,eACL66I,EACA/nB,GAEA,MAAM+a,QAAiBo3E,GAIrBpqE,EAAI,4CAGJ8oE,GAAmB9oE,EAAM/nB,IAE3B,GAAI+a,EAASmvF,eACX,MAAMpY,GAAiB/pE,EAAuC,2CAAAhN,GAEhE,OAAOA,CACT,CCtCWsvF,CAAoBtiF,EACzB3iJ,OAAAA,OAAAA,CAAAwwN,WACG3xN,KAAKmmO,6BAKZjC,4BAAAA,CAA6BpgF,GAC3B,OD2CG76I,eACL66I,EACA/nB,GAMA,OAAOmyF,GAILpqE,EAAI,4CAGJ8oE,GAAmB9oE,EAXL,+BACX/nB,GAAO,CACVsqG,UAAW,YAUXV,GAEJ,CC7DWW,CAA6BxiF,EAAM9jJ,KAAKmmO,4BAIjDA,wBAAAA,GACE,MAAM,eAAEF,EAAc,YAAEzX,EAAW,eAAEsX,EAAc,iBAAEC,GACnD/lO,KAAKyS,OACP,OAAIwzN,GAAkBzX,EACb,CAAEyX,iBAAgBzX,eAGpB,CACL+X,YAAaT,EACbrjO,KAAMsjO,GAKV/uF,MAAAA,GACE,MAAMpqI,EAA8B,CAClC0lN,WAAYtyN,KAAKsyN,YAenB,OAbItyN,KAAKyS,OAAO+7M,cACd5hN,EAAI4hN,YAAcxuN,KAAKyS,OAAO+7M,aAE5BxuN,KAAKyS,OAAOwzN,iBACdr5N,EAAIq5N,eAAiBjmO,KAAKyS,OAAOwzN,gBAE/BjmO,KAAKyS,OAAOszN,mBACdn5N,EAAIm5N,iBAAmB/lO,KAAKyS,OAAOszN,kBAEjC/lO,KAAKyS,OAAOqzN,iBACdl5N,EAAIk5N,eAAiB9lO,KAAKyS,OAAOqzN,gBAG5Bl5N,EAIT,eAAOwnN,CAAS97M,GACM,kBAATA,IACTA,EAAOjU,KAAK2S,MAAMsB,IAGpB,MAAM,eAAEwtN,EAAc,iBAAEC,EAAgB,YAAEvX,EAAW,eAAEyX,GACrD3tN,EACF,OACGytN,GACAD,GACAtX,GACAyX,EAKI,IAAIL,GAAoB,CAC7BE,iBACAC,mBACAvX,cACAyX,mBAPO,YC7CAO,GAiCXvkO,WAAAA,CAAYwkO,mBACV,MAAMC,EAAexrB,GAAkBC,GAAmBsrB,IACpDxZ,EAAyC,QAAhC,EAAAyZ,EAAgC,sBAAI,KAC7CjkO,EAAoC,QAA7B,EAAAikO,EAA6B,uBAAI,KACxCL,EApFV,SAAmBlpN,GACjB,OAAQA,GACN,IAAK,eACH,MAAyC,gBAC3C,IAAK,gBACH,MAA0C,iBAC5C,IAAK,SACH,MAAwC,eAC1C,IAAK,cACH,MAAwC,eAC1C,IAAK,uBACH,MAAmD,0BACrD,IAAK,6BACH,MAAyD,gCAC3D,QACE,OAAO,KAEb,CAmEsBwpN,CAAuC,QAA7B,EAAAD,EAA6B,oBAAI,MAE7Dxb,GAAQ+B,GAAUxqN,GAAQ4jO,EAAW,kBACrCrmO,KAAKitN,OAASA,EACdjtN,KAAKqmO,UAAYA,EACjBrmO,KAAKyC,KAAOA,EACZzC,KAAK4mO,YAAmD,QAArC,EAAAF,EAAqC,2BAAI,KAC5D1mO,KAAKmtN,aAAqD,QAAtC,EAAAuZ,EAAsC,4BAAI,KAC9D1mO,KAAK6sN,SAA6C,QAAlC,EAAA6Z,EAAkC,wBAAI,KAYxD,gBAAOG,CAAUzvL,GACf,MAAMqvL,EAjFV,SAAuB7lK,GACrB,MAAMxpB,EAAO8jK,GAAkBC,GAAmBv6I,IAAY,KAGxDkmK,EAAiB1vL,EACnB8jK,GAAkBC,GAAmB/jK,IAAqB,aAC1D,KAEE2vL,EAAc7rB,GAAkBC,GAAmBv6I,IACzC,aAKhB,OAH0BmmK,EACtB7rB,GAAkBC,GAAmB4rB,IAAoB,KACzD,OACwBA,GAAeD,GAAkB1vL,GAAQwpB,CACvE,CAkEuBomK,CAAc5vL,GACjC,IACE,OAAO,IAAIovL,GAAcC,EAC1B,CAAC,MAAMnlL,GACN,OAAO,IACR,SCzHQ2lL,GAAbhlO,WAAAA,GAkBW,KAAAqwN,WAAa2U,GAAkBC,YAoBxC,iBAAOC,CAAW7mK,EAAeE,GAC/B,OAAO6jK,GAAoBI,sBAAsBnkK,EAAOE,GAyB1D,yBAAO4mK,CACL9mK,EACA+mK,GAEA,MAAMC,EAAgBd,GAAcK,UAAUQ,GAG9C,OAFAnc,GAAQoc,EAAe,kBAEhBjD,GAAoBK,kBACzBpkK,EACAgnK,EAAc7kO,KACd6kO,EAAcza,WAtEFoa,GAAAA,YAA8C,WAI9CA,GAAAA,8BACc,WAIdA,GAAAA,0BACU,kBCXNM,GAWpBtlO,WAAAA,CAAqBqwN,GAAA,KAAU,WAAVA,EATrB,KAAmB,oBAAkB,KAE7B,KAAgB,iBAAqB,CAAC,EAc9CkV,kBAAAA,CAAmBra,GACjBntN,KAAKynO,oBAAsBta,EAa7Bua,mBAAAA,CAAoBC,GAElB,OADA3nO,KAAK4nO,iBAAmBD,EACjB3nO,KAMT6nO,mBAAAA,GACE,OAAO7nO,KAAK4nO,kBCZV,MAAgBE,WACZP,GADVtlO,WAAAA,uBAKU,KAAM,OAAa,GAO3B8lO,QAAAA,CAASz4N,GAKP,OAHKtP,KAAKgoO,OAAOrpN,SAASrP,IACxBtP,KAAKgoO,OAAO3kO,KAAKiM,GAEZtP,KAMTioO,SAAAA,GACE,MAAO,IAAIjoO,KAAKgoO,SCrBd,MAAOE,WAA6BJ,GAOxC7lO,WAAAA,GACErC,MAAM,gBAeR,iBAAOunO,CAAWzT,GAChB,OAAOsR,GAAgBC,YAAY,CACjC3S,WAAY4V,GAAqBhB,YACjCrD,aAAcqE,GAAqBC,wBACnCzU,gBASJ,2BAAO0U,CACLC,GAEA,OAAOH,GAAqBI,2BAC1BD,GAUJ,0BAAOE,CAAoBjhO,GACzB,OAAO4gO,GAAqBI,2BACzBhhO,EAAM4yM,YAAc,CAAC,GAIlB,iCAAOouB,CAA2B,GAEhB,IADxB7Z,eAAgB+Z,GACQ,EACxB,IAAKA,KAAmB,qBAAsBA,GAC5C,OAAO,KAGT,IAAKA,EAAcC,iBACjB,OAAO,KAGT,IACE,OAAOP,GAAqBf,WAAWqB,EAAcC,iBACtD,CAAC,MAAMnnL,GACN,OAAO,IACR,GArEa4mL,GAAAA,wBACQ,eAERA,GAAAA,YAAkD,eCF9D,MAAOQ,WAA2BZ,GAMtC7lO,WAAAA,GACErC,MAAM,cACNI,KAAK+nO,SAAS,WAgBhB,iBAAOZ,CACLxV,EACA+B,GAEA,OAAOsR,GAAgBC,YAAY,CACjC3S,WAAYoW,GAAmBxB,YAC/BrD,aAAc6E,GAAmBC,sBACjChX,UACA+B,gBASJ,2BAAO0U,CACLC,GAEA,OAAOK,GAAmBJ,2BACxBD,GASJ,0BAAOE,CAAoBjhO,GACzB,OAAOohO,GAAmBJ,2BACvBhhO,EAAM4yM,YAAc,CAAC,GAIlB,iCAAOouB,CAA2B,GAEhB,IADxB7Z,eAAgB+Z,GACQ,EACxB,IAAKA,EACH,OAAO,KAGT,MAAM,aAAEI,EAAY,iBAAEH,GACpBD,EACF,IAAKI,IAAiBH,EAEpB,OAAO,KAGT,IACE,OAAOC,GAAmBvB,WAAWyB,EAAcH,EACpD,CAAC,MAAMnnL,GACN,OAAO,IACR,GA5EaonL,GAAAA,sBAA0D,aAE1DA,GAAAA,YAA8C,aCJ1D,MAAOG,WAA2Bf,GAMtC7lO,WAAAA,GACErC,MAAM,cAQR,iBAAOunO,CAAWzT,GAChB,OAAOsR,GAAgBC,YAAY,CACjC3S,WAAYuW,GAAmB3B,YAC/BrD,aAAcgF,GAAmBC,sBACjCpV,gBASJ,2BAAO0U,CACLC,GAEA,OAAOQ,GAAmBP,2BACxBD,GAUJ,0BAAOE,CAAoBjhO,GACzB,OAAOuhO,GAAmBP,2BACvBhhO,EAAM4yM,YAAc,CAAC,GAIlB,iCAAOouB,CAA2B,GAEhB,IADxB7Z,eAAgB+Z,GACQ,EACxB,IAAKA,KAAmB,qBAAsBA,GAC5C,OAAO,KAGT,IAAKA,EAAcC,iBACjB,OAAO,KAGT,IACE,OAAOI,GAAmB1B,WAAWqB,EAAcC,iBACpD,CAAC,MAAMnnL,GACN,OAAO,IACR,GA7DaunL,GAAAA,sBAA0D,aAE1DA,GAAAA,YAA8C,aCW1D,MAAOE,WAA4BjB,GAMvC7lO,WAAAA,GACErC,MAAM,eASR,iBAAOunO,CAAWz+I,EAAe48I,GAC/B,OAAON,GAAgBC,YAAY,CACjC3S,WAAYyW,GAAoB7B,YAChCrD,aAAckF,GAAoBC,uBAClC5D,WAAY18I,EACZ28I,iBAAkBC,IAStB,2BAAO8C,CACLC,GAEA,OAAOU,GAAoBT,2BACzBD,GAUJ,0BAAOE,CAAoBjhO,GACzB,OAAOyhO,GAAoBT,2BACxBhhO,EAAM4yM,YAAc,CAAC,GAIlB,iCAAOouB,CAA2B,GAEhB,IADxB7Z,eAAgB+Z,GACQ,EACxB,IAAKA,EACH,OAAO,KAET,MAAM,iBAAEC,EAAgB,iBAAEpD,GACxBmD,EACF,IAAKC,IAAqBpD,EACxB,OAAO,KAGT,IACE,OAAO0D,GAAoB5B,WAAWsB,EAAkBpD,EACzD,CAAC,MAAM/jL,GACN,OAAO,IACR,GAhEaynL,GAAAA,uBAA6D,cAE7DA,GAAAA,YAAgD,oBCxDrDE,GAQXhnO,WAAAA,CAAYwQ,GACVzS,KAAK2jH,KAAOlxG,EAAOkxG,KACnB3jH,KAAKsyN,WAAa7/M,EAAO6/M,WACzBtyN,KAAKyuN,eAAiBh8M,EAAOg8M,eAC7BzuN,KAAKkpO,cAAgBz2N,EAAOy2N,cAG9B,iCAAa5S,CACXxyE,EACAolF,EACA3S,GAC4B,IAA5B9D,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GAEA,MAAM9uG,QAAa+wG,GAAS4B,qBAC1BxyE,EACAyyE,EACA9D,GAEIH,EAAa6W,GAAsB5S,GAOzC,OANiB,IAAI0S,GAAmB,CACtCtlH,OACA2uG,aACA7D,eAAgB8H,EAChB2S,kBAKJ,0BAAaE,CACXzlH,EACAulH,EACApyF,SAEMnzB,EAAKqyG,yBAAyBl/E,GAAuB,GAC3D,MAAMw7E,EAAa6W,GAAsBryF,GACzC,OAAO,IAAImyF,GAAmB,CAC5BtlH,OACA2uG,aACA7D,eAAgB33E,EAChBoyF,mBAKN,SAASC,GACPryF,GAEA,OAAIA,EAASw7E,WACJx7E,EAASw7E,WAGd,gBAAiBx7E,EACK,QAGnB,IACT,CChEM,MAAOuyF,WACHpvB,GAKRh4M,WAAAA,CACE6hJ,EACAx8I,EACS4hO,EACAvlH,SAET/jH,MAAM0H,EAAM7E,KAAM6E,EAAM8J,SAHf,KAAa,cAAb83N,EACA,KAAI,KAAJvlH,EAITxiH,OAAOm/C,eAAetgD,KAAMqpO,GAAiBtgN,WAC7C/oB,KAAKk6M,WAAa,CAChBmJ,QAASv/D,EAAK39I,KACd0mN,SAAuB,QAAb,EAAA/oE,EAAK+oE,gBAAQ,aAAI7rN,EAC3BotN,gBAAiB9mN,EAAM4yM,WAAYkU,gBACnC8a,iBAIJ,6BAAOI,CACLxlF,EACAx8I,EACA4hO,EACAvlH,GAEA,OAAO,IAAI0lH,GAAiBvlF,EAAMx8I,EAAO4hO,EAAevlH,IAItD,SAAU4lH,GACdzlF,EACAolF,EACA/B,EACAxjH,GAOA,OAJgD,mBAA9CulH,EACI/B,EAAWjD,6BAA6BpgF,GACxCqjF,EAAWrD,oBAAoBhgF,IAEd16I,OAAM9B,IAC3B,GAAmB,oCAAfA,EAAM7E,KACR,MAAM4mO,GAAiBC,uBACrBxlF,EACAx8I,EACA4hO,EACAvlH,GAIJ,MAAMr8G,CAAK,GAEf,CC3BO2B,eAAeugO,GACpB7lH,EACAwjH,GACuB,IAAvBsC,EAAkB,UAAH,8CAEf,MAAM3yF,QAAiBq5E,GACrBxsG,EACAwjH,EAAWnD,eAAergH,EAAKmgC,WAAYngC,EAAKutG,cAChDuY,GAEF,OAAOR,GAAmBG,cAAczlH,EAA0B,OAAAmzB,EACpE,CCzCO7tI,eAAeygO,GACpB/lH,EACAwjH,GACuB,IAAvBsC,EAAkB,UAAH,8CAEf,MAAM,KAAE3lF,GAASngC,EACjB,GAAIgiG,GAAqB7hE,EAAKshE,KAC5B,OAAO38I,QAAQmzD,OACbmvF,GAAgDjnE,IAGpD,MAAMolF,EAAgB,iBAEtB,IACE,MAAMpyF,QAAiBq5E,GACrBxsG,EACA4lH,GACEzlF,EACAolF,EACA/B,EACAxjH,GAEF8lH,GAEFve,GAAQp0E,EAAS66E,QAAS7tE,EAAM,kBAChC,MAAM7tB,EAAS25F,GAAY94E,EAAS66E,SACpCzG,GAAQj1F,EAAQ6tB,EAAM,kBAEtB,MAAQ6lF,IAAK7W,GAAY78F,EAGzB,OAFAi1F,GAAQvnG,EAAKkvG,MAAQC,EAAShvE,EAAM,iBAE7BmlF,GAAmBG,cAAczlH,EAAMulH,EAAepyF,EAC9D,CAAC,MAAO1uI,IAKP,KAHmC,yBAA9B,OAAAA,SAAA,IAAAA,QAAA,EAAAA,GAAqB3F,OACxBgoN,GAAM3mE,EAAM,iBAER17I,EACP,CACH,CCrCOa,eAAe2gO,GACpB9lF,EACAqjF,GACuB,IAAvBsC,EAAkB,UAAH,8CAEf,GAAI9jB,GAAqB7hE,EAAKshE,KAC5B,OAAO38I,QAAQmzD,OACbmvF,GAAgDjnE,IAGpD,MAAMolF,EAAgB,SAChBpyF,QAAiByyF,GACrBzlF,EACAolF,EACA/B,GAEIkB,QAAuBY,GAAmB3S,qBAC9CxyE,EACAolF,EACApyF,GAMF,OAHK2yF,SACG3lF,EAAKm5E,mBAAmBoL,EAAe1kH,MAExC0kH,CACT,CAgBOp/N,eAAe4gO,GACpB/lF,EACAqjF,GAEA,OAAOyC,GAAsB7I,GAAUj9E,GAAOqjF,EAChD,CCpBAl+N,eAAe6gO,GAAsBhmF,GACnC,MAAM++E,EAAe9B,GAAUj9E,GAC3B++E,EAAa/D,oCACT+D,EAAa9D,uBAEvB,CCuC6B,IAAInmJ,QCvE1B,MAAMmxJ,GAAwB,cCLfC,GACpB/nO,WAAAA,CACqBA,EACVgZ,GADU,KAAgB,iBAAhBgvN,EACV,KAAI,KAAJhvN,EAGX27M,YAAAA,GACE,IACE,OAAK52N,KAAK82N,SAGV92N,KAAK82N,QAAQoT,QAAQH,GAAuB,KAC5C/pO,KAAK82N,QAAQqT,WAAWJ,IACjBthK,QAAQ7xD,SAAQ,IAJd6xD,QAAQ7xD,SAAQ,EAK1B,CAAC,MAAM0qC,GACN,OAAOmnB,QAAQ7xD,SAAQ,EACxB,EAGHigN,IAAAA,CAAKpyN,EAAapD,GAEhB,OADArB,KAAK82N,QAAQoT,QAAQzlO,EAAKJ,KAAK1C,UAAUN,IAClConE,QAAQ7xD,UAGjBmgN,IAAAA,CAAiCtyN,GAC/B,MAAM6T,EAAOtY,KAAK82N,QAAQsT,QAAQ3lO,GAClC,OAAOgkE,QAAQ7xD,QAAQ0B,EAAOjU,KAAK2S,MAAMsB,GAAQ,MAGnD0+M,OAAAA,CAAQvyN,GAEN,OADAzE,KAAK82N,QAAQqT,WAAW1lO,GACjBgkE,QAAQ7xD,UAGjB,WAAckgN,GACZ,OAAO92N,KAAKiqO,oBC5BhB,MAAMI,WACIL,GAKR/nO,WAAAA,GACErC,OAAM,IAAM47C,OAAO8uL,cAAc,SAGlB,KAAA3S,kBAAoB,CACnC7gL,EACAyzL,IACSvqO,KAAKwqO,eAAe1zL,EAAOyzL,GACrB,KAAS,UAA8C,CAAC,EACxD,KAAU,WAAkC,CAAC,EAGtD,KAAS,UAAe,KAGf,KAAiB,kBAAGlR,KAC5B,KAAqB,uBAAG,EAEzBoR,iBAAAA,CACN5lL,GAGA,IAAK,MAAMpgD,KAAOtD,OAAOgW,KAAKnX,KAAKihE,WAAY,CAE7C,MAAMjiC,EAAWh/B,KAAK82N,QAAQsT,QAAQ3lO,GAChCimO,EAAW1qO,KAAK2qO,WAAWlmO,GAG7Bu6B,IAAa0rM,GACf7lL,EAAGpgD,EAAKimO,EAAU1rM,EAErB,EAGKwrM,cAAAA,CAAe1zL,GAAiC,IAAZyzL,EAAO,UAAH,8CAE9C,IAAKzzL,EAAMryC,IAMT,YALAzE,KAAKyqO,mBACH,CAAChmO,EAAammO,EAA0B5rM,KACtCh/B,KAAK6qO,gBAAgBpmO,EAAKu6B,EAAS,IAMzC,MAAMv6B,EAAMqyC,EAAMryC,IAId8lO,EAGFvqO,KAAK8qO,iBAIL9qO,KAAK+qO,cAGP,MAAMC,EAAmBA,KAGvB,MAAMC,EAAcjrO,KAAK82N,QAAQsT,QAAQ3lO,IACpC8lO,GAAQvqO,KAAK2qO,WAAWlmO,KAASwmO,IAKtCjrO,KAAK6qO,gBAAgBpmO,EAAKwmO,EAAY,EAGlCA,EAAcjrO,KAAK82N,QAAQsT,QAAQ3lO,GAEvC00N,MACA8R,IAAgBn0L,EAAM9X,UACtB8X,EAAM9X,WAAa8X,EAAM4zL,SAMzBriK,WAAW2iK,EAzFqB,IA2FhCA,IAIIH,eAAAA,CAAgBpmO,EAAapD,GACnCrB,KAAK2qO,WAAWlmO,GAAOpD,EACvB,MAAM4/D,EAAYjhE,KAAKihE,UAAUx8D,GACjC,GAAIw8D,EACF,IAAK,MAAMoF,KAAYtiE,MAAM4E,KAAKs4D,GAChCoF,EAAShlE,EAAQgD,KAAK2S,MAAM3V,GAASA,GAKnC6pO,YAAAA,GACNlrO,KAAK+qO,cAEL/qO,KAAKmrO,UAAYC,aAAY,KAC3BprO,KAAKyqO,mBACH,CAAChmO,EAAaimO,EAAyB1rM,KACrCh/B,KAAKwqO,eACH,IAAIa,aAAa,UAAW,CAC1B5mO,MACAimO,WACA1rM,cAES,EACZ,GAEJ,GA3H6B,KA+H1B+rM,WAAAA,GACF/qO,KAAKmrO,YACPG,cAActrO,KAAKmrO,WACnBnrO,KAAKmrO,UAAY,MAIbI,cAAAA,GACN/vL,OAAO8V,iBAAiB,UAAWtxD,KAAK23N,mBAGlCmT,cAAAA,GACNtvL,OAAO+V,oBAAoB,UAAWvxD,KAAK23N,mBAG7CV,YAAAA,CAAaxyN,EAAa4hE,GACmB,IAAvCllE,OAAOgW,KAAKnX,KAAKihE,WAAWt+D,SAK1B3C,KAAKwrO,kBACPxrO,KAAKkrO,eAELlrO,KAAKurO,kBAGJvrO,KAAKihE,UAAUx8D,KAClBzE,KAAKihE,UAAUx8D,GAAO,IAAIgG,IAE1BzK,KAAK2qO,WAAWlmO,GAAOzE,KAAK82N,QAAQsT,QAAQ3lO,IAE9CzE,KAAKihE,UAAUx8D,GAAKiG,IAAI27D,GAG1B8wJ,eAAAA,CAAgB1yN,EAAa4hE,GACvBrmE,KAAKihE,UAAUx8D,KACjBzE,KAAKihE,UAAUx8D,GAAK4R,OAAOgwD,GAEM,IAA7BrmE,KAAKihE,UAAUx8D,GAAKkwC,aACf30C,KAAKihE,UAAUx8D,IAIiB,IAAvCtD,OAAOgW,KAAKnX,KAAKihE,WAAWt+D,SAC9B3C,KAAK8qO,iBACL9qO,KAAK+qO,eAMT,UAAMlU,CAAKpyN,EAAapD,SAChBzB,MAAMi3N,KAAKpyN,EAAKpD,GACtBrB,KAAK2qO,WAAWlmO,GAAOJ,KAAK1C,UAAUN,GAGxC,UAAM01N,CAAiCtyN,GACrC,MAAMpD,QAAczB,MAAMm3N,KAAQtyN,GAElC,OADAzE,KAAK2qO,WAAWlmO,GAAOJ,KAAK1C,UAAUN,GAC/BA,EAGT,aAAM21N,CAAQvyN,SACN7E,MAAMo3N,QAAQvyN,UACbzE,KAAK2qO,WAAWlmO,IAvLlB4lO,GAAI,KAAY,QAiMlB,MAAMoB,GAAuCpB,GC7MpD,MAAMqB,WACI1B,GAKR/nO,WAAAA,GACErC,OAAM,IAAM47C,OAAOmwL,gBAAgB,WAGrC1U,YAAAA,CAAavqF,EAAcwqF,IAK3BC,eAAAA,CAAgBzqF,EAAcwqF,KAXvBwU,GAAI,KAAc,UAuBpB,MAAME,GAAyCF,SCtBzCG,GAUX5pO,WAAAA,CAA6B6pO,GAAA,KAAW,YAAXA,EANZ,KAAW,YAIxB,CAAC,EAGH9rO,KAAK23N,kBAAoB33N,KAAK+rO,YAAYllK,KAAK7mE,MASjD,mBAAO02N,CAAaoV,GAIlB,MAAMttB,EAAmBx+M,KAAKgsO,UAAU17M,MAAK0wL,GAC3CA,EAASirB,cAAcH,KAEzB,GAAIttB,EACF,OAAOA,EAET,MAAM0tB,EAAc,IAAIL,GAASC,GAEjC,OADA9rO,KAAKgsO,UAAU3oO,KAAK6oO,GACbA,EAGDD,aAAAA,CAAcH,GACpB,OAAO9rO,KAAK8rO,cAAgBA,EAatB,iBAAMC,CAGZj1L,GACA,MAAMq1L,EAAer1L,GACf,QAAEs1L,EAAO,UAAEC,EAAS,KAAEp6N,GAASk6N,EAAal6N,KAE5CinI,EACJl5I,KAAKssO,YAAYD,GACnB,KAAK,OAAAnzF,QAAQ,IAARA,OAAQ,EAARA,EAAUvkG,MACb,OAGFw3L,EAAaI,MAAM,GAAG37G,YAAY,CAChC8S,OAAmB,MACnB0oG,UACAC,cAGF,MAAMzxG,EAAW72H,MAAM4E,KAAKuwI,GAAU9pH,KAAInmB,SACxCgrJ,EAAQk4E,EAAat7I,OAAQ5+E,KAEzB6kI,QChEJ,SACJlc,GAEA,OAAOnyD,QAAQ/sD,IACbk/G,EAASxrG,KAAInmB,UACX,IAEE,MAAO,CACLmwI,WAAW,EACX/3I,YAHkBs6H,EAKrB,CAAC,MAAOj6F,GACP,MAAO,CACL03G,WAAW,EACX13G,SAEH,KAGP,CD6C2B8qM,CAAY5xG,GACnCuxG,EAAaI,MAAM,GAAG37G,YAAY,CAChC8S,OAAoB,OACpB0oG,UACAC,YACAv1F,aAWJ21F,UAAAA,CACEJ,EACAK,GAE6C,IAAzCvrO,OAAOgW,KAAKnX,KAAKssO,aAAa3pO,QAChC3C,KAAK8rO,YAAYx6K,iBAAiB,UAAWtxD,KAAK23N,mBAG/C33N,KAAKssO,YAAYD,KACpBrsO,KAAKssO,YAAYD,GAAa,IAAI5hO,KAGpCzK,KAAKssO,YAAYD,GAAW3hO,IAAIgiO,GAUlCC,YAAAA,CACEN,EACAK,GAEI1sO,KAAKssO,YAAYD,IAAcK,GACjC1sO,KAAKssO,YAAYD,GAAWh2N,OAAOq2N,GAEhCA,GAAqD,IAArC1sO,KAAKssO,YAAYD,GAAW13L,aACxC30C,KAAKssO,YAAYD,GAGmB,IAAzClrO,OAAOgW,KAAKnX,KAAKssO,aAAa3pO,QAChC3C,KAAK8rO,YAAYv6K,oBAAoB,UAAWvxD,KAAK23N,oBEvIrD,SAAUiV,KAAyC,IAAxBviO,EAAS,UAAH,6CAAG,GAAIwiO,EAAS,UAAH,6CAAG,GACjDlmK,EAAS,GACb,IAAK,IAAIzjE,EAAI,EAAGA,EAAI2pO,EAAQ3pO,IAC1ByjE,GAAU5pD,KAAK08F,MAAsB,GAAhB18F,KAAK4pD,UAE5B,OAAOt8D,EAASs8D,CAClB,CFS0BklK,GAAS,UAAe,SGOrCiB,GAGX7qO,WAAAA,CAA6B68B,GAAA,KAAM,OAANA,EAFZ,KAAAo6G,SAAW,IAAIzuI,IASxBsiO,oBAAAA,CAAqB94E,GACvBA,EAAQ+4E,iBACV/4E,EAAQ+4E,eAAe75G,MAAM5hE,oBAC3B,UACA0iG,EAAQhjH,WAEVgjH,EAAQ+4E,eAAe75G,MAAMtmB,SAE/B7sG,KAAKk5I,SAAS7iI,OAAO49I,GAgBvB,WAAMg5E,CACJZ,EACAp6N,GAC8B,IAA9BkpH,EAAU,UAAH,6CAAuB,GAE9B,MAAM6xG,EACsB,qBAAnB/5G,eAAiC,IAAIA,eAAmB,KACjE,IAAK+5G,EACH,MAAM,IAAI5qO,MAAM,0BAMlB,IAAI8qO,EACAj5E,EACJ,OAAO,IAAIxrF,SAAqC,CAAC7xD,EAASglH,KACxD,MAAMwwG,EAAUQ,GAAiB,GAAI,IACrCI,EAAe75G,MAAMpzF,QACrB,MAAMotM,EAAW9kK,YAAW,KAC1BuzD,EAAO,IAAIx5H,MAAM,qBAAiC,GACjD+4H,GACH84B,EAAU,CACR+4E,iBACA/7L,SAAAA,CAAU6F,GACR,MAAMq1L,EAAer1L,EACrB,GAAIq1L,EAAal6N,KAAKm6N,UAAYA,EAGlC,OAAQD,EAAal6N,KAAKyxH,QACxB,IAAK,MAEHn7D,aAAa4kK,GACbD,EAAkB7kK,YAAW,KAC3BuzD,EAAO,IAAIx5H,MAAM,WAAuB,GACvC,KACH,MACF,IAAK,OAEHmmE,aAAa2kK,GACbt2N,EAAQu1N,EAAal6N,KAAK6kI,UAC1B,MACF,QACEvuE,aAAa4kK,GACb5kK,aAAa2kK,GACbtxG,EAAO,IAAIx5H,MAAM,wBAKzBpC,KAAKk5I,SAASxuI,IAAIupJ,GAClB+4E,EAAe75G,MAAM7hE,iBAAiB,UAAW2iG,EAAQhjH,WACzDjxC,KAAK8+B,OAAO8xF,YACV,CACEy7G,YACAD,UACAn6N,QAEF,CAAC+6N,EAAe95G,OACjB,IACA7pH,SAAQ,KACL4qJ,GACFj0J,KAAK+sO,qBAAqB94E,EAC3B,cC7FSm5E,KACd,OAAO5xL,MACT,UC1BgB6xL,KACd,MAC4C,qBAAnCD,KAA6B,mBACE,oBAA/BA,KAAyB,aAEpC,CCmBO,MAAMvmB,GAAU,yBAEjBymB,GAAsB,uBACtBC,GAAkB,YAaxB,MAAMC,GACJvrO,WAAAA,CAA6B85H,GAAA,KAAO,QAAPA,EAE7B0xG,SAAAA,GACE,OAAO,IAAIhlK,SAAW,CAAC7xD,EAASglH,KAC9B57H,KAAK+7H,QAAQzqE,iBAAiB,WAAW,KACvC16C,EAAQ5W,KAAK+7H,QAAQz3G,OAAO,IAE9BtkB,KAAK+7H,QAAQzqE,iBAAiB,SAAS,KACrCsqE,EAAO57H,KAAK+7H,QAAQz0H,MAAM,GAC1B,KAKR,SAASomO,GAAetiL,EAAiBuiL,GACvC,OAAOviL,EACJk2J,YAAY,CAACgsB,IAAsBK,EAAc,YAAc,YAC/DxsB,YAAYmsB,GACjB,UAYgBM,KACd,MAAM7xG,EAAUqrF,UAAU3zK,KAAKozK,GA/Cd,GAgDjB,OAAO,IAAIp+I,SAAQ,CAAC7xD,EAASglH,KAC3BG,EAAQzqE,iBAAiB,SAAS,KAChCsqE,EAAOG,EAAQz0H,MAAM,IAGvBy0H,EAAQzqE,iBAAiB,iBAAiB,KACxC,MAAMlG,EAAK2wE,EAAQz3G,OAEnB,IACE8mC,EAAGq8J,kBAAkB6lB,GAAqB,CAAEO,QAASN,IACtD,CAAC,MAAOnlO,IACPwzH,EAAOxzH,GACR,KAGH2zH,EAAQzqE,iBAAiB,WAAWroD,UAClC,MAAMmiD,EAAkB2wE,EAAQz3G,OAM3B8mC,EAAG81J,iBAAiB37J,SAAS+nL,IAMhC12N,EAAQw0C,IAJRA,EAAGyhD,yBA9BT,MAAMkvB,EAAUqrF,UAAUyC,eAAehD,IACzC,OAAO,IAAI2mB,GAAgBzxG,GAAS0xG,WACtC,CA6BcK,GACNl3N,QAAcg3N,MAGf,GACD,GAEN,CAEO3kO,eAAe8kO,GACpB3iL,EACA3mD,EACApD,GAEA,MAAM06H,EAAU2xG,GAAetiL,GAAI,GAAMy8J,IAAI,CAC3C,CAAC0lB,IAAkB9oO,EACnBpD,UAEF,OAAO,IAAImsO,GAAgBzxG,GAAS0xG,WACtC,CAWgB,SAAAO,GAAc5iL,EAAiB3mD,GAC7C,MAAMs3H,EAAU2xG,GAAetiL,GAAI,GAAM/0C,OAAO5R,GAChD,OAAO,IAAI+oO,GAAgBzxG,GAAS0xG,WACtC,CAKA,MAAMQ,GAqBJhsO,WAAAA,GAlBA,KAAAgZ,KAA6B,QAEpB,KAAqB,uBAAG,EAEhB,KAAS,UAA8C,CAAC,EACxD,KAAU,WAA4C,CAAC,EAGhE,KAAS,UAAe,KACxB,KAAa,cAAG,EAEhB,KAAQ,SAAoB,KAC5B,KAAM,OAAkB,KACxB,KAA8B,gCAAG,EACjC,KAAmB,oBAAyB,KAMlDjb,KAAKkuO,6BACHluO,KAAKmuO,mCAAmCt6M,MACtC,SACA,SAIN,aAAMu6M,GACJ,OAAIpuO,KAAKorD,KAGTprD,KAAKorD,SAAWwiL,MAFP5tO,KAAKorD,GAMhB,kBAAMijL,CAAgBpnO,GACpB,IAAIqnO,EAAc,EAElB,OACE,IACE,MAAMljL,QAAWprD,KAAKouO,UACtB,aAAannO,EAAGmkD,EACjB,CAAC,MAAOhjD,IACP,GAAIkmO,IAhD4B,EAiD9B,MAAMlmO,GAEJpI,KAAKorD,KACPprD,KAAKorD,GAAGyhD,QACR7sG,KAAKorD,QAAKpqD,EAGb,EAQG,sCAAMmtO,GACZ,OAAOd,KAAcrtO,KAAKuuO,qBAAuBvuO,KAAKwuO,mBAMhD,wBAAMD,GACZvuO,KAAKghN,SAAW6qB,GAASnV,aDtLpB2W,KAAeh4N,KAAoC,MCwLxDrV,KAAKghN,SAASyrB,WAAW,cAEvBxjO,MAAOwlO,EAAiBx8N,KAEf,CACLy8N,oBAFiB1uO,KAAK2uO,SAEHhwN,SAAS1M,EAAKxN,SAKvCzE,KAAKghN,SAASyrB,WAAW,QAEvBxjO,MAAOwlO,EAAiBG,IACf,CAAC,gBAYN,sBAAMJ,WAGZ,GADAxuO,KAAK6uO,0BDpOF5lO,iBACL,KAAK,OAAA6pH,gBAAS,IAATA,eAAS,EAATA,UAAWg8G,eACd,OAAO,KAET,IAEE,aAD2Bh8G,UAAUg8G,cAAcjN,OAC/BkN,MACrB,CAAC,MAAMztL,GACN,OAAO,IACR,CACH,CC0NqC0tL,IAC5BhvO,KAAK6uO,oBACR,OAEF7uO,KAAKivO,OAAS,IAAInC,GAAO9sO,KAAK6uO,qBAE9B,MAAM71L,QAAgBh5C,KAAKivO,OAAOhC,MAAK,OAErC,CAAC,EAAC,KAGCj0L,IAIO,QAAV,EAAAA,EAAQ,UAAE,eAAEogG,aACF,QAAV,EAAApgG,EAAQ,UAAE,eAAE33C,MAAMsd,SAAgC,iBAElD3e,KAAKkvO,gCAAiC,GAalC,yBAAMC,CAAoB1qO,GAChC,GACGzE,KAAKivO,QACLjvO,KAAK6uO,sCDzPV,OAA+B,QAAxB,EAAS,OAAT/7G,gBAAS,IAATA,eAAS,EAATA,UAAWg8G,qBAAa,eAAExoF,aAAc,IACjD,CCyPM8oF,KAAkCpvO,KAAK6uO,oBAIzC,UACQ7uO,KAAKivO,OAAOhC,MAEhB,cAAExoO,OAEFzE,KAAKkvO,+BACF,IACA,GAEN,CAAC,MAAM5tL,KAKV,kBAAMs1K,GACJ,IACE,IAAKxP,UACH,OAAO,EAET,MAAMh8J,QAAWwiL,KAGjB,aAFMG,GAAW3iL,EAAI2+K,GAAuB,WACtCiE,GAAc5iL,EAAI2+K,KACjB,CACR,CAAC,SAAO,CACT,OAAO,EAGD,uBAAMsF,CAAkB5tF,GAC9BzhJ,KAAKsvO,gBACL,UACQ7tF,GACP,SACCzhJ,KAAKsvO,eACN,EAGH,UAAMzY,CAAKpyN,EAAapD,GACtB,OAAOrB,KAAKqvO,mBAAkBpmO,gBACtBjJ,KAAKquO,cAAcjjL,GAAoB2iL,GAAW3iL,EAAI3mD,EAAKpD,KACjErB,KAAK2qO,WAAWlmO,GAAOpD,EAChBrB,KAAKmvO,oBAAoB1qO,MAIpC,UAAMsyN,CAAiCtyN,GACrC,MAAMmI,QAAa5M,KAAKquO,cAAcjjL,GAxM1CniD,eACEmiD,EACA3mD,GAEA,MAAMs3H,EAAU2xG,GAAetiL,GAAI,GAAO7pD,IAAIkD,GACxCwN,QAAa,IAAIu7N,GAAgCzxG,GAAS0xG,YAChE,YAAgBzsO,IAATiR,EAAqB,KAAOA,EAAK5Q,KAC1C,CAkMMkuO,CAAUnkL,EAAI3mD,KAGhB,OADAzE,KAAK2qO,WAAWlmO,GAAOmI,EAChBA,EAGT,aAAMoqN,CAAQvyN,GACZ,OAAOzE,KAAKqvO,mBAAkBpmO,gBACtBjJ,KAAKquO,cAAcjjL,GAAoB4iL,GAAc5iL,EAAI3mD,YACxDzE,KAAK2qO,WAAWlmO,GAChBzE,KAAKmvO,oBAAoB1qO,MAI5B,WAAMkqO,GAEZ,MAAMrqN,QAAetkB,KAAKquO,cAAcjjL,IACtC,MAAMokL,EAAgB9B,GAAetiL,GAAI,GAAOqkL,SAChD,OAAO,IAAIjC,GAA6BgC,GAAe/B,WAAW,IAGpE,IAAKnpN,EACH,MAAO,GAIT,GAA2B,IAAvBtkB,KAAKsvO,cACP,MAAO,GAGT,MAAMn4N,EAAO,GACPu4N,EAAe,IAAIjlO,IACzB,GAAsB,IAAlB6Z,EAAO3hB,OACT,IAAK,MAAQgtO,UAAWlrO,EAAG,MAAEpD,KAAWijB,EACtCorN,EAAahlO,IAAIjG,GACbJ,KAAK1C,UAAU3B,KAAK2qO,WAAWlmO,MAAUJ,KAAK1C,UAAUN,KAC1DrB,KAAK6qO,gBAAgBpmO,EAAKpD,GAC1B8V,EAAK9T,KAAKoB,IAKhB,IAAK,MAAMmrO,KAAYzuO,OAAOgW,KAAKnX,KAAK2qO,YAClC3qO,KAAK2qO,WAAWiF,KAAcF,EAAa3gO,IAAI6gO,KAEjD5vO,KAAK6qO,gBAAgB+E,EAAU,MAC/Bz4N,EAAK9T,KAAKusO,IAGd,OAAOz4N,EAGD0zN,eAAAA,CACNpmO,EACAu6B,GAEAh/B,KAAK2qO,WAAWlmO,GAAOu6B,EACvB,MAAMiiC,EAAYjhE,KAAKihE,UAAUx8D,GACjC,GAAIw8D,EACF,IAAK,MAAMoF,KAAYtiE,MAAM4E,KAAKs4D,GAChCoF,EAASrnC,GAKPksM,YAAAA,GACNlrO,KAAK+qO,cAEL/qO,KAAKmrO,UAAYC,aACfniO,SAAYjJ,KAAK2uO,SAhQa,KAqQ1B5D,WAAAA,GACF/qO,KAAKmrO,YACPG,cAActrO,KAAKmrO,WACnBnrO,KAAKmrO,UAAY,MAIrBlU,YAAAA,CAAaxyN,EAAa4hE,GACmB,IAAvCllE,OAAOgW,KAAKnX,KAAKihE,WAAWt+D,QAC9B3C,KAAKkrO,eAEFlrO,KAAKihE,UAAUx8D,KAClBzE,KAAKihE,UAAUx8D,GAAO,IAAIgG,IAErBzK,KAAK+2N,KAAKtyN,IAEjBzE,KAAKihE,UAAUx8D,GAAKiG,IAAI27D,GAG1B8wJ,eAAAA,CAAgB1yN,EAAa4hE,GACvBrmE,KAAKihE,UAAUx8D,KACjBzE,KAAKihE,UAAUx8D,GAAK4R,OAAOgwD,GAEM,IAA7BrmE,KAAKihE,UAAUx8D,GAAKkwC,aACf30C,KAAKihE,UAAUx8D,IAIiB,IAAvCtD,OAAOgW,KAAKnX,KAAKihE,WAAWt+D,QAC9B3C,KAAK+qO,eA9RFkD,GAAI,KAAY,QAySlB,MAAM4B,GAAyC5B,GCvatB6B,GAAgC,OAClC,IAAI/jB,GAAM,IAAO,KCGxC,MAAMgkB,GAA0B,YCkKhC9mO,eAAe+mO,GACpBlsF,EACA/zH,EACAqyM,SAEA,MAAM6N,QAAuB7N,EAAST,SAEtC,IAYE,IAAIuO,EAUJ,GArBAhlB,GAC4B,kBAAnB+kB,EACPnsF,EAAI,kBAGNonE,GACEkX,EAASnnN,OAAS80N,GAClBjsF,EAAI,kBAOJosF,EADqB,kBAAZngN,EACU,CACjBy+L,YAAaz+L,GAGIA,EAGjB,YAAamgN,EAAkB,CACjC,MAAMC,EAAUD,EAAiBC,QAEjC,GAAI,gBAAiBD,EAAkB,CACrChlB,GACmB,WAAjBilB,EAAQl1N,KACR6oI,EAAI,kBAGN,MAAMhN,QCtKE,SACdgN,EACA/nB,GAEA,OAAO+wF,GAILhpE,EAGA,0CAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CDyJ+Bq0G,CAAoBtsF,EAAM,CAC/C6tE,QAASwe,EAAQhJ,WACjBkJ,oBAAqB,CACnB7hB,YAAa0hB,EAAiB1hB,YAC9ByhB,oBAGJ,OAAOn5F,EAASw5F,iBAAiB/J,WAClC,CAAM,CACLrb,GACmB,WAAjBilB,EAAQl1N,KACR6oI,EAAI,kBAGN,MAAMysF,GAC4B,QAAhC,EAAAL,EAAiBM,uBAAe,eAAE3d,MAClCqd,EAAiBO,eACnBvlB,GAAQqlB,EAAiBzsF,EAAM,6BAC/B,MAAMhN,QEhME,SACdgN,EACA/nB,GAEA,OAAO+wF,GAILhpE,EAGA,sCAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,CFmL+B20G,CAAoB5sF,EAAM,CAC/C6sF,qBAAsBR,EAAQhJ,WAC9BoJ,kBACAK,gBAAiB,CACfX,oBAGJ,OAAOn5F,EAAS+5F,kBAAkBtK,WACnC,CACF,CAAM,CACL,MAAM,YAAEA,S9B9NPt9N,eACL66I,EACA/nB,GAEA,OAAO+wF,GAILhpE,EAGA,2CAAA8oE,GAAmB9oE,EAAM/nB,GAE7B,C8BiNoC+0G,CAA0BhtF,EAAM,CAC5D0qE,YAAa0hB,EAAiB1hB,YAC9ByhB,mBAEF,OAAO1J,CACR,CACF,SACCnE,EAAS2O,QACV,CACH,OGxNaC,GAcX/uO,WAAAA,CAAY6hJ,GAPH,KAAAwuE,WAAa0e,GAAkB9J,YAQtClnO,KAAK8jJ,KAAOi9E,GAAUj9E,GAkCxBmtF,iBAAAA,CACEC,EACAC,GAEA,OAAOnB,GACLhwO,KAAK8jJ,KACLotF,EACA90B,GAAmB+0B,IA+BvB,iBAAOhK,CACLrB,EACAC,GAEA,OAAOH,GAAoBC,kBACzBC,EACAC,GAQJ,2BAAOqC,CACLC,GAEA,MAAMlB,EAAakB,EACnB,OAAO2I,GAAkB1I,2BAA2BnB,GAmCtD,0BAAOoB,CAAoBjhO,GACzB,OAAO0pO,GAAkB1I,2BACtBhhO,EAAM4yM,YAAc,CAAC,GAIlB,iCAAOouB,CAA2B,GAEhB,IADxB7Z,eAAgB+Z,GACQ,EACxB,IAAKA,EACH,OAAO,KAET,MAAM,YAAEha,EAAW,eAAEyX,GACnBuC,EACF,OAAIha,GAAeyX,EACVL,GAAoBI,mBACzBxX,EACAyX,GAGG,MC1LK,SAAAmL,GACdttF,EACAutF,GAEA,OAAIA,EACK3a,GAAa2a,IAGtBnmB,GAAQpnE,EAAKw4E,uBAAwBx4E,EAAM,kBAEpCA,EAAKw4E,uBACd,CDiBkB0U,GAAAA,YAAwC,QAExCA,GAAAA,qBAAmD,QEXrE,MAAMM,WAAsB1N,GAC1B3hO,WAAAA,CAAqBwQ,GACnB7S,MAAM,SAAD,UADc,KAAM,OAAN6S,EAIrBqxN,mBAAAA,CAAoBhgF,GAClB,OAAOihF,GAAcjhF,EAAM9jJ,KAAKuxO,oBAGlCvN,cAAAA,CACElgF,EACA6tE,GAEA,OAAOoT,GAAcjhF,EAAM9jJ,KAAKuxO,iBAAiB5f,IAGnDuS,4BAAAA,CAA6BpgF,GAC3B,OAAOihF,GAAcjhF,EAAM9jJ,KAAKuxO,oBAG1BA,gBAAAA,CAAiB5f,GACvB,MAAM51F,EAAgC,CACpC0pG,WAAYzlO,KAAKyS,OAAOgzN,WACxB+L,UAAWxxO,KAAKyS,OAAO++N,UACvB9L,SAAU1lO,KAAKyS,OAAOizN,SACtB7Y,SAAU7sN,KAAKyS,OAAOo6M,SACtBsY,aAAcnlO,KAAKyS,OAAO0yN,aAC1BP,mBAAmB,EACnB6M,qBAAqB,GAOvB,OAJI9f,IACF51F,EAAQ41F,QAAUA,GAGb51F,GAIL,SAAU21G,GACdj/N,GAEA,OAAOm3N,GACLn3N,EAAOqxI,KACP,IAAIwtF,GAAc7+N,GAClBA,EAAOg3N,gBAEX,CAEM,SAAUkI,GACdl/N,GAEA,MAAM,KAAEqxI,EAAI,KAAEngC,GAASlxG,EAEvB,OADAy4M,GAAQvnG,EAAMmgC,EAAM,kBACb4lF,GACL/lH,EACA,IAAI2tH,GAAc7+N,GAClBA,EAAOg3N,gBAEX,CAEOxgO,eAAeugO,GACpB/2N,GAEA,MAAM,KAAEqxI,EAAI,KAAEngC,GAASlxG,EAEvB,OADAy4M,GAAQvnG,EAAMmgC,EAAM,kBACb8tF,GAAUjuH,EAAM,IAAI2tH,GAAc7+N,GAASA,EAAOg3N,gBAC3D,OCpEsBoI,GASpB5vO,WAAAA,CACqBA,EACnB8c,EACmBpG,EACTgrG,GACgC,IAAvB8lH,EAAkB,UAAlBA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GAJA,KAAI,KAAJ3lF,EAEA,KAAQ,SAARnrI,EACT,KAAI,KAAJgrG,EACS,KAAe,gBAAf8lH,EAXb,KAAc,eAA0B,KACxC,KAAY,aAAwB,KAY1CzpO,KAAK+e,OAAShb,MAAMC,QAAQ+a,GAAUA,EAAS,CAACA,GAKlD+iN,OAAAA,GACE,OAAO,IAAIr5J,SACTx/D,MAAO2N,EAASglH,KACd57H,KAAK8xO,eAAiB,CAAEl7N,UAASglH,UAEjC,IACE57H,KAAK+xO,mBAAqB/xO,KAAK2Y,SAASgkN,YAAY38N,KAAK8jJ,YACnD9jJ,KAAKgyO,cACXhyO,KAAK+xO,aAAaE,iBAAiBjyO,KACpC,CAAC,MAAOoI,IACPpI,KAAK47H,OAAOxzH,GACb,KAKP,iBAAM8pO,CAAYp7L,GAChB,MAAM,YAAEq7L,EAAW,UAAEX,EAAS,SAAE9L,EAAQ,SAAE7Y,EAAQ,MAAEvlN,EAAK,KAAE2T,GAAS67B,EACpE,GAAIxvC,EAEF,YADAtH,KAAK47H,OAAOt0H,GAId,MAAMmL,EAAwB,CAC5BqxI,KAAM9jJ,KAAK8jJ,KACX2hF,WAAY0M,EACZX,UAAWA,EACX3kB,SAAUA,QAAY7rN,EACtB0kO,SAAUA,QAAY1kO,EACtB2iH,KAAM3jH,KAAK2jH,KACX8lH,gBAAiBzpO,KAAKypO,iBAGxB,IACEzpO,KAAK4W,cAAc5W,KAAKoyO,WAAWn3N,EAAhBjb,CAAsByS,GAC1C,CAAC,MAAOrK,IACPpI,KAAK47H,OAAOxzH,GACb,EAGH8nC,OAAAA,CAAQ5oC,GACNtH,KAAK47H,OAAOt0H,GAGN8qO,UAAAA,CAAWn3N,GACjB,OAAQA,GACN,IAAqC,iBACrC,IAAK,oBACH,OAAOy2N,GACT,IAAkC,eAClC,IAAK,kBACH,OAAOlI,GACT,IAAoC,iBACpC,IAAK,oBACH,OAAOmI,GACT,QACElnB,GAAMzqN,KAAK8jJ,KAAM,mBAIbltI,OAAAA,CAAQsuN,GAChB5Z,GAAYtrN,KAAK8xO,eAAgB,iCACjC9xO,KAAK8xO,eAAel7N,QAAQsuN,GAC5BllO,KAAKqyO,uBAGGz2G,MAAAA,CAAOt0H,GACfgkN,GAAYtrN,KAAK8xO,eAAgB,iCACjC9xO,KAAK8xO,eAAel2G,OAAOt0H,GAC3BtH,KAAKqyO,uBAGCA,oBAAAA,GACFryO,KAAK+xO,cACP/xO,KAAK+xO,aAAaO,mBAAmBtyO,MAGvCA,KAAK8xO,eAAiB,KACtB9xO,KAAKuyO,WCzFF,MAAMC,GAA6B,IAAIzmB,GAAM,IAAM,KA2J1D,MAAM0mB,WAAuBZ,GAO3B5vO,WAAAA,CACEA,EACA8c,EACiB8/L,EACjBlmM,EACAgrG,GAEA/jH,MAAMkkJ,EAAM/kI,EAAQpG,EAAUgrG,GAJb,KAAQ,SAARk7F,EANX,KAAU,WAAqB,KAC/B,KAAM,OAAkB,KAU1B4zB,GAAeC,oBACjBD,GAAeC,mBAAmB5sF,SAGpC2sF,GAAeC,mBAAqB1yO,KAGtC,oBAAM2yO,GACJ,MAAMruN,QAAetkB,KAAK8hO,UAE1B,OADA5W,GAAQ5mM,EAAQtkB,KAAK8jJ,KAAM,kBACpBx/H,EAGT,iBAAM0tN,GACJ1mB,GACyB,IAAvBtrN,KAAK+e,OAAOpc,OACZ,0CAEF,MAAMypO,EAAUQ,KAChB5sO,KAAK4yO,iBAAmB5yO,KAAK2Y,SAASk6N,WACpC7yO,KAAK8jJ,KACL9jJ,KAAK6+M,SACL7+M,KAAK+e,OAAO,GACZqtN,GAEFpsO,KAAK4yO,WAAWE,gBAAkB1G,EASlCpsO,KAAK2Y,SAASo6N,kBAAkB/yO,KAAK8jJ,MAAM16I,OAAMhB,IAC/CpI,KAAK47H,OAAOxzH,EAAE,IAGhBpI,KAAK2Y,SAASq6N,6BAA6BhzO,KAAK8jJ,MAAMmvF,IAC/CA,GACHjzO,KAAK47H,OACHgvF,GAAa5qN,KAAK8jJ,KAA4C,2BAEjE,IAIH9jJ,KAAKkzO,uBAGP,WAAI9G,SACF,OAAwB,QAAjB,EAAApsO,KAAK4yO,kBAAY,eAAAE,kBAAmB,KAG7ChtF,MAAAA,GACE9lJ,KAAK47H,OAAOgvF,GAAa5qN,KAAK8jJ,KAA0C,4BAG1EyuF,OAAAA,GACMvyO,KAAK4yO,YACP5yO,KAAK4yO,WAAW/lI,QAGd7sG,KAAKmzO,QACP33L,OAAO+sB,aAAavoE,KAAKmzO,QAG3BnzO,KAAK4yO,WAAa,KAClB5yO,KAAKmzO,OAAS,KACdV,GAAeC,mBAAqB,KAG9BQ,oBAAAA,GACN,MAAM3I,EAAOA,cACkB,QAAzB,EAAiB,QAAjB,EAAAvqO,KAAK4yO,kBAAY,eAAAp3L,cAAQ,eAAA43L,QAM3BpzO,KAAKmzO,OAAS33L,OAAO6sB,YAAW,KAC9BroE,KAAKmzO,OAAS,KACdnzO,KAAK47H,OACHgvF,GAAa5qN,KAAK8jJ,KAAyC,wBAC5D,GACA,KAIL9jJ,KAAKmzO,OAAS33L,OAAO6sB,WAAWkiK,EAAMiI,GAA2BjxO,MAAM,EAGzEgpO,KAxGakI,GAAkB,mBAA0B,KC1L7D,MAAMY,GAAuB,kBAIvBC,GAGF,IAAI3jO,IAEF,MAAO4jO,WAAuB1B,GAGlC5vO,WAAAA,CACE6hJ,EACAnrI,GAGA/Y,MACEkkJ,EACA,CAAC,oBAAD,iDAMAnrI,OACA3X,EAXgB,UAAH,+CALjB,KAAO,QAAG,KAyBV,aAAM8gO,GACJ,IAAI0R,EAAeF,GAAmB/xO,IAAIvB,KAAK8jJ,KAAKpX,QACpD,IAAK8mG,EAAc,CACjB,IACE,MAAMC,QA+CPxqO,eACL0P,EACAmrI,GAEA,MAAMr/I,EAAMivO,GAAmB5vF,GACzByzE,EAAcoc,GAAoBh7N,GACxC,UAAY4+M,EAAYX,eACtB,OAAO,EAET,MAAM6c,EAAuD,eAA3Blc,EAAYR,KAAKtyN,GAEnD,aADM8yN,EAAYP,QAAQvyN,GACnBgvO,CACT,CA3DyCG,CAC/B5zO,KAAK2Y,SACL3Y,KAAK8jJ,MAEDx/H,EAASmvN,QAA2B7zO,MAAMkiO,UAAY,KAC5D0R,EAAeA,IAAM/qK,QAAQ7xD,QAAQ0N,EACtC,CAAC,MAAOlc,IACPorO,EAAeA,IAAM/qK,QAAQmzD,OAAOxzH,GACrC,CAEDkrO,GAAmB1jO,IAAI5P,KAAK8jJ,KAAKpX,OAAQ8mG,EAC1C,CAQD,OAJKxzO,KAAKypO,iBACR6J,GAAmB1jO,IAAI5P,KAAK8jJ,KAAKpX,QAAQ,IAAMjkE,QAAQ7xD,QAAQ,QAG1D48N,IAGT,iBAAMtB,CAAYp7L,GAChB,GAAmB,sBAAfA,EAAM77B,KACR,OAAOrb,MAAMsyO,YAAYp7L,GACpB,GAAmB,YAAfA,EAAM77B,MAMjB,GAAI67B,EAAMs1L,QAAS,CACjB,MAAMzoH,QAAa3jH,KAAK8jJ,KAAKm8E,mBAAmBnpL,EAAMs1L,SACtD,GAAIzoH,EAEF,OADA3jH,KAAK2jH,KAAOA,EACL/jH,MAAMsyO,YAAYp7L,GAEzB92C,KAAK4W,QAAQ,KAEhB,OAZC5W,KAAK4W,QAAQ,MAejB,iBAAMo7N,GAAWA,CAEjBO,OAAAA,GAAOA,EA4BO,SAAAzU,GACdh6E,EACAx/H,GAEAgvN,GAAmB1jO,IAAIk0I,EAAKpX,OAAQpoH,EACtC,CAEA,SAASqvN,GACPh7N,GAEA,OAAO+9M,GAAa/9M,EAASqnN,qBAC/B,CAEA,SAAS0T,GAAmB5vF,GAC1B,OAAOuzE,GACLgc,GACAvvF,EAAKjN,OAAOo2E,OACZnpE,EAAK39I,KAET,CCqJO8C,eAAe4qO,GACpB/vF,EACAgwF,GACuB,IAAvBrK,EAAkB,UAAH,8CAEf,GAAI9jB,GAAqB7hE,EAAKshE,KAC5B,OAAO38I,QAAQmzD,OACbmvF,GAAgDjnE,IAGpD,MAAM++E,EAAe9B,GAAUj9E,GACzBnrI,EAAWy4N,GAAqBvO,EAAciR,GAC9ChqM,EAAS,IAAIypM,GAAe1Q,EAAclqN,EAAU8wN,GACpDnlN,QAAewlB,EAAOg4L,UAQ5B,OANIx9M,IAAWmlN,WACNnlN,EAAOq/F,KAAKwyG,uBACb0M,EAAahO,sBAAsBvwM,EAAOq/F,YAC1Ck/G,EAAa3E,iBAAiB,KAAM4V,IAGrCxvN,CACT,OC3SayvN,GAOX9xO,WAAAA,CAA6B6hJ,GAAA,KAAI,KAAJA,EANZ,KAAAkwF,gBAA+B,IAAIvpO,IACnC,KAAAwpO,UAAoC,IAAIxpO,IAC/C,KAAmB,oBAAqB,KACxC,KAA2B,6BAAG,EAChC,KAAAypO,uBAAyBl6K,KAAKC,MAItCg4K,gBAAAA,CAAiBkC,GACfn0O,KAAKi0O,UAAUvpO,IAAIypO,GAGjBn0O,KAAKo0O,qBACLp0O,KAAKq0O,mBAAmBr0O,KAAKo0O,oBAAqBD,KAElDn0O,KAAKs0O,eAAet0O,KAAKo0O,oBAAqBD,GAC9Cn0O,KAAKu0O,iBAAiBv0O,KAAKo0O,qBAC3Bp0O,KAAKo0O,oBAAsB,MAI/B9B,kBAAAA,CAAmB6B,GACjBn0O,KAAKi0O,UAAU59N,OAAO89N,GAGxBK,OAAAA,CAAQ19L,GAEN,GAAI92C,KAAKy0O,oBAAoB39L,GAC3B,OAAO,EAGT,IAAI49L,GAAU,EASd,OARA10O,KAAKi0O,UAAUn0O,SAAQ60O,IACjB30O,KAAKq0O,mBAAmBv9L,EAAO69L,KACjCD,GAAU,EACV10O,KAAKs0O,eAAex9L,EAAO69L,GAC3B30O,KAAKu0O,iBAAiBz9L,GACvB,IAGC92C,KAAK40O,8BAkEb,SAAyB99L,GACvB,OAAQA,EAAM77B,MACZ,IAAwC,oBACxC,IAAqC,kBACrC,IAAK,oBACH,OAAO,EACT,IAAK,UACH,OAAO45N,GAAoB/9L,GAC7B,QACE,OAAO,EAEb,CA7E6Cg+L,CAAgBh+L,KAMzD92C,KAAK40O,6BAA8B,EAG9BF,IACH10O,KAAKo0O,oBAAsBt9L,EAC3B49L,GAAU,IARHA,EAcHJ,cAAAA,CAAex9L,EAAkB69L,SACvC,GAAI79L,EAAMxvC,QAAUutO,GAAoB/9L,GAAQ,CAC9C,MAAMr0C,GACa,QAAhB,EAAAq0C,EAAMxvC,MAAM7E,YAAI,eAAEqV,MAAM,SAAS,KAAoB,iBAExD68N,EAASzkM,QAAQ06K,GAAa5qN,KAAK8jJ,KAAMrhJ,GAC1C,MACCkyO,EAASzC,YAAYp7L,GAIjBu9L,kBAAAA,CACNv9L,EACA69L,GAEA,MAAMI,EACiB,OAArBJ,EAASvI,WACNt1L,EAAMs1L,SAAWt1L,EAAMs1L,UAAYuI,EAASvI,QACjD,OAAOuI,EAAS51N,OAAOJ,SAASm4B,EAAM77B,OAAS85N,EAGzCN,mBAAAA,CAAoB39L,GAQ1B,OANEkjB,KAAKC,MAAQj6D,KAAKk0O,wBAnFoB,KAsFtCl0O,KAAKg0O,gBAAgB1lN,QAGhBtuB,KAAKg0O,gBAAgBjlO,IAAIimO,GAASl+L,IAGnCy9L,gBAAAA,CAAiBz9L,GACvB92C,KAAKg0O,gBAAgBtpO,IAAIsqO,GAASl+L,IAClC92C,KAAKk0O,uBAAyBl6K,KAAKC,OAIvC,SAAS+6K,GAAS5sO,GAChB,MAAO,CAACA,EAAE6S,KAAM7S,EAAEgkO,QAAShkO,EAAEopO,UAAWppO,EAAEykN,UAAU9tM,QAAOhf,GAAKA,IAAGkE,KAAK,IAC1E,CAEA,SAAS4wO,GAAoB,GAA0B,IAA1B,KAAE55N,EAAI,MAAE3T,GAAkB,EACrD,MACgC,YAA9B2T,GACgB,wBAAX,OAAL3T,QAAK,IAALA,OAAK,EAALA,EAAO7E,KAEX,CCjHA,MAAMwyO,GAAmB,uCACnBC,GAAa,UAEZjsO,eAAeksO,GAAgBrxF,GAEpC,GAAIA,EAAKjN,OAAOu1E,SACd,OAGF,MAAM,kBAAEgpB,SCHHnsO,eACL66I,GAGA,OAAOgpE,GACLhpE,EAGA,qBANF/nB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAmC,CAAC,EAQtC,CDPsCs5G,CAAkBvxF,GAEtD,IAAK,MAAM5rC,KAAUk9H,EACnB,IACE,GAAIE,GAAYp9H,GACd,MAEH,CAAC,MAAM52D,IAMVmpK,GAAM3mE,EAAM,sBACd,CAEA,SAASwxF,GAAY7+E,GACnB,MAAMtrB,EAAaogF,MACb,SAAElgF,EAAQ,SAAEkW,GAAa,IAAI5qB,IAAIwU,GACvC,GAAIsrB,EAAS9mI,WAAW,uBAAwB,CAC9C,MAAM4lN,EAAQ,IAAI5+G,IAAI8/B,GAEtB,MAAuB,KAAnB8+E,EAAMh0F,UAAgC,KAAbA,EAGZ,sBAAblW,GACAorB,EAASnyJ,QAAQ,sBAAuB,MACtC6mI,EAAW7mI,QAAQ,sBAAuB,IAI5B,sBAAb+mI,GAAoCkqG,EAAMh0F,WAAaA,CAC/D,CAED,IAAK2zF,GAAW/yO,KAAKkpI,GACnB,OAAO,EAGT,GAAI4pG,GAAiB9yO,KAAKs0J,GAGxB,OAAOlV,IAAakV,EAItB,MAAM++E,EAAuB/+E,EAASnyJ,QAAQ,MAAO,OAOrD,OAJW,IAAIqlB,OACb,UAAY6rN,EAAuB,IAAMA,EAAuB,KAChE,KAEQrzO,KAAKo/I,EACjB,CE7DA,MAAMk0F,GAAkB,IAAI1pB,GAAM,IAAO,KAMzC,SAAS2pB,KAIP,MAAMC,EAASvI,KAAUwI,OAEzB,GAAI,OAAAD,QAAM,IAANA,OAAM,EAANA,EAAQnsK,EAEV,IAAK,MAAMqsK,KAAQ10O,OAAOgW,KAAKw+N,EAAOnsK,GAQpC,GANAmsK,EAAOnsK,EAAEqsK,GAAM7uK,EAAI2uK,EAAOnsK,EAAEqsK,GAAM7uK,GAAK,GAEvC2uK,EAAOnsK,EAAEqsK,GAAMnuK,EAAIiuK,EAAOnsK,EAAEqsK,GAAMnuK,GAAK,GAEvCiuK,EAAOnsK,EAAEqsK,GAAM7uK,EAAI,IAAI2uK,EAAOnsK,EAAEqsK,GAAMnuK,GAElCiuK,EAAOG,GACT,IAAK,IAAI5yO,EAAI,EAAGA,EAAIyyO,EAAOG,GAAGnzO,OAAQO,IAEpCyyO,EAAOG,GAAG5yO,GAAK,IAKzB,CAEA,SAAS6yO,GAASjyF,GAChB,OAAO,IAAIr7E,SAA8B,CAAC7xD,EAASglH,eAEjD,SAASo6G,IAGPN,KACAO,KAAKpsC,KAAK,eAAgB,CACxBprJ,SAAUA,KACR7nC,EAAQq/N,KAAKC,QAAQC,aAAa,EAEpC1wF,UAAWA,KAOTiwF,KACA95G,EAAOgvF,GAAa9mE,EAAM,0BAAsC,EAElE3oB,QAASs6G,GAAgBl0O,QAI7B,GAA6B,QAAzB,EAAgB,QAAhB,EAAA6rO,KAAU6I,YAAM,eAAAC,eAAS,eAAAE,OAE3Bx/N,EAAQq/N,KAAKC,QAAQC,kBAChB,MAAoB,QAAd,EAAA/I,KAAU6I,YAAI,eAAEpsC,MAGtB,CAML,MAAMwsC,EAASC,GAAyB,aAYxC,OAVAlJ,KAAUiJ,GAAU,KAEZJ,KAAKpsC,KACTmsC,IAGAp6G,EAAOgvF,GAAa9mE,EAAM,0BAC3B,EAGIyyF,GACI,GrDvDRrV,GAAmBI,qBqDuDsB+U,KACzCjtO,OAAMhB,GAAKwzH,EAAOxzH,IACtB,CAtBC4tO,GAsBD,KACA5sO,OAAM9B,IAGP,MADAkvO,GAAmB,KACblvO,CAAK,GAEf,CAEA,IAAIkvO,GAAyD,KCvF7D,MAAMC,GAAe,IAAI1qB,GAAM,IAAM,MAC/B2qB,GAAc,iBACdC,GAAuB,uBAEvBC,GAAoB,CACxB91M,MAAO,CACLM,SAAU,WACVgjC,IAAK,SACL3uB,MAAO,MACPpJ,OAAQ,OAEV,cAAe,OACfwqM,SAAU,MAKNC,GAAmB,IAAInnO,IAAI,CAC/B,CAAC,iCAAwB,KACzB,CAAC,iDAAkD,KACnD,CAAC,8CAA+C,OAGlD,SAASonO,GAAajzF,GACpB,MAAMjN,EAASiN,EAAKjN,OACpBq0E,GAAQr0E,EAAO2mF,WAAY15E,EAAM,+BACjC,MAAMljF,EAAMi2E,EAAOu1E,SACfD,GAAat1E,EAAQ8/F,IACrB,WAAW7yF,EAAKjN,OAAO2mF,cAAckZ,KAEnCjkO,EAAiC,CACrCw6M,OAAQp2E,EAAOo2E,OACf5J,QAASv/D,EAAK39I,KACdpG,EAAGqmN,IAEC4wB,EAAMF,GAAiBv1O,IAAIuiJ,EAAKjN,OAAOy2E,SACzC0pB,IACFvkO,EAAOukO,IAAMA,GAEf,MAAMvd,EAAa31E,EAAK28E,iBAIxB,OAHIhH,EAAW92N,SACb8P,EAAOwkO,GAAKxd,EAAWx1N,KAAK,MAEvB,GAAG28D,KAAOm6I,GAAYtoM,GAAQrO,MAAM,IAC7C,CAEO6E,eAAeiuO,GACpBpzF,GAEA,MAAM5sH,QDuCF,SAAoB4sH,GAExB,OADA0yF,GAAmBA,IAAoBT,GAASjyF,GACzC0yF,EACT,CC1CwBW,CAAqBrzF,GACrCmyF,EAAO7I,KAAU6I,KAEvB,OADA/qB,GAAQ+qB,EAAMnyF,EAAM,kBACb5sH,EAAQuc,KACb,CACEgpJ,MAAO/gJ,SAASnuC,KAChBqzD,IAAKm2K,GAAajzF,GAClBszF,sBAAuBnB,EAAKC,QAAQmB,4BACpCjuM,WAAYwtM,GACZU,WAAW,IAEZC,GACC,IAAI9uK,SAAQx/D,MAAO2N,EAASglH,WACpB27G,EAAOC,QAAQ,CAEnBC,gBAAgB,IAGlB,MAAMC,EAAe9sB,GACnB9mE,EAAI,0BAKA6zF,EAAoBvK,KAAU/kK,YAAW,KAC7CuzD,EAAO87G,EAAa,GACnBjB,GAAal1O,OAEhB,SAASq2O,IACPxK,KAAU7kK,aAAaovK,GACvB/gO,EAAQ2gO,GAIVA,EAAO5jM,KAAKikM,GAAsB/jN,KAAK+jN,GAAsB,KAC3Dh8G,EAAO87G,EAAa,GACpB,KAGV,CCzFA,MAAMG,GAAqB,CACzB/5K,SAAU,MACVg6K,UAAW,MACXC,UAAW,MACXC,QAAS,YASEC,GAGXh2O,WAAAA,CAAqBu5C,GAAA,KAAM,OAANA,EAFrB,KAAe,gBAAkB,KAIjCqxD,KAAAA,GACE,GAAI7sG,KAAKw7C,OACP,IACEx7C,KAAKw7C,OAAOqxD,OACb,CAAC,MAAOzkG,IAAI,GAKH,SAAAojK,GACd1nB,EACAljF,EACAz6D,GAEuB,IADvBsvC,EAAQ,UAAH,6CAxBe,IAyBpBpJ,EAAS,UAAH,6CAxBe,IA0BrB,MAAM+3B,EAAMrnD,KAAKC,KAAKw+B,OAAO08L,OAAOC,YAAc9rM,GAAU,EAAG,GAAGhqC,WAC5D6hE,EAAOnnD,KAAKC,KAAKw+B,OAAO08L,OAAOE,WAAa3iM,GAAS,EAAG,GAAGpzC,WACjE,IAAIy8B,EAAS,GAEb,MAAM/O,EACD5uB,OAAAA,OAAAA,OAAAA,OAAAA,CAAAA,EAAAA,IAAkB,CACrBs0C,MAAOA,EAAMpzC,WACbgqC,OAAQA,EAAOhqC,WACf+hE,MACAF,SAKIpc,EAAKkyJ,KAAQ92K,cAEf/8B,IACF24B,EAASk6L,GAAalxK,GA1CL,SA0C0B3hD,GAGzCyyN,GAAW9wK,KAEb8Y,EAAMA,GA7CgB,mBAgDtB7wC,EAAQsoN,WAAa,OAGvB,MAAMC,EAAgBn3O,OAAOs5I,QAAQ1qH,GAASjtB,QAC5C,CAAC86G,EAAO,KAAF,IAAGn5G,EAAKpD,GAAM,QAAK,GAAGu8G,IAAQn5G,KAAOpD,IAAQ,GACnD,IAGF,oB7D4CA,OAAO63N,GAD6B,UAAH,6CAAGlf,UAC8B,QAA1C,EAAAx+J,OAAOs3E,iBAAmC,eAAAylH,WACpE,C6D7CMC,CAAiB1wL,IAAkB,UAAXhpB,EAE1B,OAgBJ,SAA4B8hC,EAAa9hC,GACvC,MAAMwlD,EAAK5oC,SAASS,cAAc,KAClCmoC,EAAG93C,KAAOo0B,EACV0jB,EAAGxlD,OAASA,EACZ,MAAM25M,EAAQ/8L,SAASg9L,YAAY,cACnCD,EAAME,eACJ,SACA,GACA,EACAn9L,OACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,MAEF8oC,EAAGntB,cAAcshL,EACnB,CAxCIG,CAAmBh4K,GAAO,GAAI9hC,GACvB,IAAIm5M,GAAU,MAKvB,MAAMY,EAASr9L,OAAO/H,KAAKmtB,GAAO,GAAI9hC,EAAQw5M,GAC9CptB,GAAQ2tB,EAAQ/0F,EAAM,iBAGtB,IACE+0F,EAAOv0K,OACR,CAAC,MAAOl8D,IAAI,CAEb,OAAO,IAAI6vO,GAAUY,EACvB,CC9EA,MAAMC,GAAc,kBAOdC,GAAuB,wBAOvBC,GAAiCp8N,mBAAmB,OAgBnD3T,eAAegwO,GACpBn1F,EACA+6D,EACAq6B,EACAC,EACA/M,EACAgN,GAEAluB,GAAQpnE,EAAKjN,OAAO2mF,WAAY15E,EAAM,+BACtConE,GAAQpnE,EAAKjN,OAAOo2E,OAAQnpE,EAAM,mBAElC,MAAMrxI,EAAuB,CAC3Bw6M,OAAQnpE,EAAKjN,OAAOo2E,OACpB5J,QAASv/D,EAAK39I,KACd+yO,WACAC,cACAp5O,EAAGqmN,GACHgmB,WAGF,GAAIvtB,aAAoB0oB,GAAuB,CAC7C1oB,EAAS2oB,mBAAmB1jF,EAAKqpE,cACjC16M,EAAO6/M,WAAazT,EAASyT,YAAc,G/GrDzC,SAAkB1lN,GACtB,IAAK,MAAMnI,KAAOmI,EAChB,GAAIzL,OAAO4nB,UAAUC,eAAe3U,KAAKzH,EAAKnI,GAC5C,OAAO,EAGX,OAAO,CACT,C+G+CS40O,CAAQx6B,EAASgpB,yBACpBp1N,EAAOm1N,iBAAmBvjO,KAAK1C,UAAUk9M,EAASgpB,wBAIpD,IAAK,MAAOpjO,EAAKpD,KAAUF,OAAOs5I,QAAQ2+F,GAAoB,CAAC,GAC7D3mO,EAAOhO,GAAOpD,CAEjB,CAED,GAAIw9M,aAAoBipB,GAAmB,CACzC,MAAME,EAASnpB,EAASopB,YAAYlpN,QAAOzP,GAAmB,KAAVA,IAChD04N,EAAOrlO,OAAS,IAClB8P,EAAOu1N,OAASA,EAAO/jO,KAAK,KAE/B,CAEG6/I,EAAK+oE,WACPp6M,EAAO6mO,IAAMx1F,EAAK+oE,UAMpB,MAAM0sB,EAAa9mO,EACnB,IAAK,MAAMhO,KAAOtD,OAAOgW,KAAKoiO,QACJv4O,IAApBu4O,EAAW90O,WACN80O,EAAW90O,GAKtB,MAAMk8N,QAAsB78E,EAAK88E,oBAC3B4Y,EAAwB7Y,EAC1B,IAAIqY,MAAkCp8N,mBAAmB+jN,KACzD,GAGJ,MAAO,GAKT,SAAwB,GAAwB,IAAxB,OAAE9pF,GAAsB,EAC9C,IAAKA,EAAOu1E,SACV,MAAO,WAAWv1E,EAAO2mF,cAAcsb,KAGzC,OAAO3sB,GAAat1E,EAAQkiG,GAC9B,CAXYU,CAAe31F,MAASi3D,GAAYw+B,GAAYn1O,MACxD,KACEo1O,GACN,CCjFA,MAAME,GAA0B,oBAuJzB,MAAMC,GA5Ib,MAAA13O,WAAAA,GACmB,KAAa,cAAqC,CAAC,EACnD,KAAO,QAAwC,CAAC,EAChD,KAAwB,yBAAkC,CAAC,EAEnE,KAAoB,qBAAG2pO,GAyHhC,KAAmB,oBAAGiI,GAEtB,KAAuB,wBAAG/V,GAvH1B,gBAAM+U,CACJ/uF,EACA+6D,EACAq6B,EACA9M,SAEA9gB,GACmC,QAAjC,EAAAtrN,KAAK45O,cAAc91F,EAAKpX,eAAS,eAAA2nF,QACjC,gDAUF,OAAO7oD,GAAM1nB,QAPKm1F,GAChBn1F,EACA+6D,EACAq6B,EACA3tB,KACA6gB,GAEsBQ,MAG1B,mBAAMiN,CACJ/1F,EACA+6D,EACAq6B,EACA9M,SAEMpsO,KAAK+yO,kBAAkBjvF,GAS7B,OtBvDE,SAA6BljF,GACjCwsK,KAAUtvK,SAAStxB,KAAOo0B,CAC5B,CsBoDIk5K,OAPkBb,GAChBn1F,EACA+6D,EACAq6B,EACA3tB,KACA6gB,IAGK,IAAI3jK,SAAQ,SAGrBk0J,WAAAA,CAAY74E,GACV,MAAMr/I,EAAMq/I,EAAKpX,OACjB,GAAI1sI,KAAK45O,cAAcn1O,GAAM,CAC3B,MAAM,QAAE4vN,EAAO,QAAE14F,GAAY37H,KAAK45O,cAAcn1O,GAChD,OAAI4vN,EACK5rJ,QAAQ7xD,QAAQy9M,IAEvB/I,GAAY3vF,EAAS,4CACdA,EAEV,CAED,MAAMA,EAAU37H,KAAK+5O,kBAAkBj2F,GASvC,OARA9jJ,KAAK45O,cAAcn1O,GAAO,CAAEk3H,WAI5BA,EAAQvyH,OAAM,YACLpJ,KAAK45O,cAAcn1O,EAAI,IAGzBk3H,EAGD,uBAAMo+G,CAAkBj2F,GAC9B,MAAMyzF,QAAeL,GAAYpzF,GAC3BuwE,EAAU,IAAI0f,GAAiBjwF,GAerC,OAdAyzF,EAAO39I,SACL,aACCogJ,IACC9uB,GAAmB,OAAX8uB,QAAW,IAAXA,OAAW,EAAXA,EAAaC,UAAWn2F,EAAM,sBAItC,MAAO,CAAEpgB,OADO2wF,EAAQmgB,QAAQwF,EAAYC,WACD,MAAmB,QAAE,GAElEhE,KAAKC,QAAQmB,6BAGfr3O,KAAK45O,cAAc91F,EAAKpX,QAAU,CAAE2nF,WACpCr0N,KAAKk2O,QAAQpyF,EAAKpX,QAAU6qG,EACrBljB,EAGT2e,4BAAAA,CACElvF,EACAj/F,GAEe7kD,KAAKk2O,QAAQpyF,EAAKpX,QAC1ByZ,KACLuzF,GACA,CAAEz+N,KAAMy+N,KACRp1N,UACE,MAAM2uN,EAA4B,QAAd,EAAM,OAAN3uN,QAAM,IAANA,OAAM,EAANA,EAAS,UAAK,eAAAo1N,SACd14O,IAAhBiyO,GACFpuL,IAAKouL,GAGPxoB,GAAM3mE,EAAM,iBAA6B,GAE3CmyF,KAAKC,QAAQmB,6BAIjBtE,iBAAAA,CAAkBjvF,GAChB,MAAMr/I,EAAMq/I,EAAKpX,OAKjB,OAJK1sI,KAAKk6O,yBAAyBz1O,KACjCzE,KAAKk6O,yBAAyBz1O,GAAO0wO,GAAgBrxF,IAGhD9jJ,KAAKk6O,yBAAyBz1O,GAGvC,0BAAIi4N,GAEF,OAAOrD,MAAsBN,MAAeG,gDCvJnCihB,GAIXl4O,WAAAA,CAA6B6hJ,GAAA,KAAI,KAAJA,EAHZ,KAAAs2F,kBACf,IAAIzqO,IAIN0qO,MAAAA,SAEE,OADAr6O,KAAKs6O,wBACyB,QAAvB,EAAAt6O,KAAK8jJ,KAAKusE,mBAAa,eAAAwC,MAAO,KAGvC,cAAMtmH,CACJqoH,GAIA,GAFA50N,KAAKs6O,6BACCt6O,KAAK8jJ,KAAKy4E,wBACXv8N,KAAK8jJ,KAAKusE,YACb,OAAO,KAIT,MAAO,CAAEqD,kBADiB1zN,KAAK8jJ,KAAKusE,YAAYa,WAAW0D,IAI7D2lB,oBAAAA,CAAqBl0K,GAEnB,GADArmE,KAAKs6O,uBACDt6O,KAAKo6O,kBAAkBrrO,IAAIs3D,GAC7B,OAGF,MAAMy+E,EAAc9kJ,KAAK8jJ,KAAK47E,kBAAiB/7G,IAC7Ct9C,GAC+B,OAA5Bs9C,QAAA,IAAAA,OAAA,EAAAA,EAA8BstG,gBAAgByC,cAAe,KAC/D,IAEH1zN,KAAKo6O,kBAAkBxqO,IAAIy2D,EAAUy+E,GACrC9kJ,KAAKw6O,yBAGPC,uBAAAA,CAAwBp0K,GACtBrmE,KAAKs6O,uBACL,MAAMx1F,EAAc9kJ,KAAKo6O,kBAAkB74O,IAAI8kE,GAC1Cy+E,IAIL9kJ,KAAKo6O,kBAAkB/jO,OAAOgwD,GAC9By+E,IACA9kJ,KAAKw6O,0BAGCF,oBAAAA,GACNpvB,GACElrN,KAAK8jJ,KAAKy4E,uBAAsB,yCAK5Bie,sBAAAA,GACFx6O,KAAKo6O,kBAAkBzlM,KAAO,EAChC30C,KAAK8jJ,KAAKgyE,yBAEV91N,KAAK8jJ,KAAKiyE,yBCtDhB,MACM2kB,GACJ7gC,GAAuB,sBAFQ,IAIjC,IAAI8gC,GAA+C,KAEnD,MAAMC,GAAqBh6K,GAAgB33D,UACzC,MAAM4xO,EAAgBl3H,SAAeA,EAAKoxG,mBACpC+lB,EACJD,KACC,IAAI7gL,MAAO4mI,UAAY5mI,KAAKhjD,MAAM6jO,EAAcvlB,eAAiB,IACpE,GAAIwlB,GAAcA,EAAaJ,GAC7B,OAGF,MAAM/oB,EAAuB,OAAbkpB,QAAA,IAAAA,OAAA,EAAAA,EAAenyJ,MAC3BiyJ,KAAsBhpB,IAG1BgpB,GAAoBhpB,QACdhqE,MAAM/mF,EAAK,CACf7yB,OAAQ4jL,EAAU,OAAS,SAC3BvlL,QAASulL,EACL,CACE,cAAiB,UAAUA,KAE7B,CAAC,IACL,EAWY,SAAAopB,KAAmC,IAA3B31B,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GjGqQR,WAAwC,IAAjCj/M,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAe42M,GACpC,MAAMqI,EAAMJ,GAAMzjN,IAAI4E,GACtB,IAAKi/M,GAAOj/M,IAAS42M,IAAsBnD,KACzC,OAAOyM,KAET,IAAKjB,EACH,MAAMQ,GAAc7/K,OAAwB,UAAEs9K,QAASl9M,IAGzD,OAAOi/M,CACT,CiG/Q2C41B,GACzC,MAAMn8B,EAAW2G,GAAaJ,EAAK,QAEnC,GAAIvG,EAAStB,gBACX,OAAOsB,EAASlB,eAGlB,MAAM75D,EC9BQ,SAAeshE,EAAkBv8L,GAC/C,MAAMg2L,EAAW2G,GAAaJ,EAAK,QAEnC,GAAIvG,EAAStB,gBAAiB,CAC5B,MAAMz5D,EAAO+6D,EAASlB,eAEtB,GAAIjD,GADmBmE,EAASR,aACE,OAAJx1L,QAAI,IAAJA,EAAAA,EAAQ,CAAC,GACrC,OAAOi7H,EAEP2mE,GAAM3mE,EAAM,sBAEf,CAID,OAFa+6D,EAASr9C,WAAW,CAAEzxI,QAASlH,GAG9C,CDceoyN,CAAe71B,EAAK,CAC/BiX,sBAAuBsd,GACvBpiB,YAAa,CACXsY,GACApE,GACAG,MAIEsP,EAAoBrhC,GAAuB,oBAEjD,GACEqhC,GAC2B,mBAApBC,iBACPA,gBACA,CAEA,MAAMC,EAAmB,IAAIzkH,IAAIukH,EAAmBp9K,SAAS+yB,QAC7D,GAAI/yB,SAAS+yB,SAAWuqJ,EAAiBvqJ,OAAQ,CAC/C,MAAMwqJ,EAAaT,GAAkBQ,EAAiB/4O,sBEqE1DyhJ,EACArlG,EACAnQ,GAEO8tK,GAAmBt4D,GAAM27E,uBAAuBhhL,EAAUnQ,EACnE,CFzEMmxL,CAAuB37E,EAAMu3F,GAAY,IACvCA,EAAWv3F,EAAKusE,eE4ClB,SACJvsE,EACA43D,EACAp0M,EACAi4N,GAEOnjB,GAAmBt4D,GAAM47E,iBAC9BhkB,EACAp0M,EACAi4N,EAEJ,CFrDMG,CAAiB57E,GAAMngC,GAAQ03H,EAAW13H,IAC3C,CACF,CAED,MAAM23H,EAAmB7hC,GAAuB,QAKhD,OAJI6hC,GACF1Y,GAAoB9+E,EAAM,UAAUw3F,KAG/Bx3F,CACT,CGxDM,IAAuBy1E,I9DzBvB,SAAiCxiN,GACrCmqN,GAAqBnqN,CACvB,C2DqFAwkO,CAAuB,CACrBpa,OAAOvgK,GAEE,IAAI6H,SAAQ,CAAC7xD,EAASglH,KAC3B,MAAMt3C,EAAK5oC,SAASS,cAAc,UAClCmoC,EAAG/8B,aAAa,MAAOqZ,GACvB0jB,EAAG+2C,OAASzkH,EACZ0tE,EAAGjlC,QAAUj3C,IACX,MAAMd,EAAQsjN,GAAa,kBAC3BtjN,EAAM4yM,WAAa9xM,EACnBwzH,EAAOt0H,EAAM,EAEfg9E,EAAGrpE,KAAO,kBACVqpE,EAAG42C,QAAU,QAjBnB,mBACE,OAAiD,QAA1C,EAAwC,QAAxC,EAAAx/E,SAAS2zE,qBAAqB,eAAU,yBAAE,QAAI3zE,QACvD,CAgBM8/L,GAAyBzvL,YAAYu4B,EAAG,IAI5Cg9I,WAAY,oCACZF,kBAAmB,0CACnBC,0BACE,2DGnFyB9H,GHsFhB,UGrFXlU,GACE,IAAI13I,GAAU,QAEZ,CAACwiD,EAAW,KAAiD,IAA/CpgG,QAASlH,GAAkC,EACvD,MAAMu8L,EAAMj1F,EAAU2uF,YAAY,OAAOnB,eACnC+d,EACJvrG,EAAU2uF,YAAyB,aAC/B6c,EACJxrG,EAAU2uF,YAAkC,uBACxC,OAAEmO,EAAM,WAAEuQ,GAAepY,EAAIr1L,QAEnCm7L,GACE+B,IAAWA,EAAOtuM,SAAS,KAE3B,mBAAE0kM,QAAS+B,EAAIj/M,OAGjB,MAAM0wI,EAAyB,CAC7Bo2E,SACAuQ,aACAjE,kBACAjM,QAA+B,iCAC/BwG,aAA0C,6BAC1CzF,UAAmC,QACnC8N,iBAAkB7C,GAAkBC,KAGhCiJ,EAAe,IAAI/G,GACvBrW,EACAsW,EACAC,EACA9kF,GAIF,OFzBQ,SACdiN,EACAj7H,GAEA,MAAM0uM,GAAc,OAAA1uM,QAAA,IAAAA,OAAA,EAAAA,EAAM0uM,cAAe,GACnCkkB,GACJ13O,MAAMC,QAAQuzN,GAAeA,EAAc,CAACA,IAC5CnoM,IAAyBsnM,KACvB,OAAA7tM,QAAI,IAAJA,OAAI,EAAJA,EAAMiiM,WACRhnE,EAAKu7E,gBAAgBx2M,EAAKiiM,UAM5BhnE,EAAKs4E,2BAA2Bqf,EAAW,OAAA5yN,QAAA,IAAAA,OAAA,EAAAA,EAAMwzM,sBACnD,CEOQqf,CAAwBlZ,EAAc35M,GAE/B25M,CAAY,GAGtB,UAKEhmB,qBAAgD,YAKhDK,4BACC,CAAC1sF,EAAWwrH,EAAqBC,KACFzrH,EAAU2uF,YAAY,iBAG9Bt9C,YAAY,KAKzC6jD,GACE,IAAI13I,GAEF,iBAAAwiD,GAIS,CAAC2zB,GAAQ,IAAIq2F,GAAYr2F,GAAzB,CAHMi9E,GACX5wG,EAAU2uF,YAAY,QAAqBnB,kBAKhD,WAACnB,qBAAqB,aAGzBiK,GAAgBtgN,GAAMoyC,GA5FxB,SACEghL,GAEA,OAAQA,GACN,IAAK,OACH,MAAO,OACT,IAAK,cACH,MAAO,KACT,IAAK,SACH,MAAO,YACT,IAAK,UACH,MAAO,UACT,IAAK,eACH,MAAO,gBACT,QACE,OAEN,CA2EiCsiB,CAAsBtiB,KAErD9S,GAAgBtgN,GAAMoyC,GAAS,WCjIjC,MAWMurG,GAAOi3F,GADD10B,GAVW,CACrB4G,OAAQ,0CACRuQ,WAAY,qCACZse,UAAW,qBACXC,cAAe,iCACfC,kBAAmB,eACnBh0B,MAAO,4CACPi0B,cAAe,kBAMA,IAAIvT,GCZd,SAASwT,KACd,MAAM/2G,EAAWR,KACTw3G,EAAelzO,UACjB,UHmPF,SAAkB66I,GACtB,OAAOs4D,GAAmBt4D,GAAMwsE,SAClC,CGpPkBA,CAAQxsE,IACd3e,EAAS,SACb,CAAE,MAAO79H,GACL0kB,QAAQ1kB,MAAM,sBAAuBA,EACzC,IAGC80O,EAAQC,IAAazkK,EAAAA,EAAAA,WAAS,GAMrC,OACEu0D,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,kBAAiBC,SAAA,EAC9BgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,sDAAqDC,SAAA,EAElEisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,gCAA+BC,SAAC,iBAG/CisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,YAAWC,UACxBisG,EAAAA,GAAAA,KAAA,UACEp9F,QAbSstM,KACjBD,GAAWD,EAAO,EAaVl8M,UAAU,gCAA+BC,UAEzCisG,EAAAA,GAAAA,KAAA,OACElsG,UAAU,UACVitD,KAAK,OACLwG,OAAO,eACP6B,QAAQ,YACR3vD,MAAM,6BAA4B1F,UAElCisG,EAAAA,GAAAA,KAAA,QACEx4C,cAAc,QACdC,eAAe,QACf9kC,YAAa,EACb1O,EAAE,kCAOV8rF,EAAAA,GAAAA,MAAA,OAAKjsG,UAAW,oCAA6DC,SAAA,EAC3EisG,EAAAA,GAAAA,KAAA,UAAQlsG,UAAU,yEAAyE8O,QAASA,IAAMm2F,EAAS,eAAehlG,SAAE,kBAGpIisG,EAAAA,GAAAA,KAAA,UAAQlsG,UAAU,yEAAyE8O,QAASA,IAAMm2F,EAAS,yBAAyBhlG,SAAC,oBAG7IisG,EAAAA,GAAAA,KAAA,UAAQlsG,UAAU,yEAAyE8O,QAASA,IAAMm2F,EAAS,oBAAoBhlG,SAAC,sBAGxIisG,EAAAA,GAAAA,KAAA,UACEp9F,QAASmtM,EACTj8M,UAAU,6FAA4FC,SACvG,iBAOJi8M,IACCjwG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,2BAA0BC,SAAA,EACvCisG,EAAAA,GAAAA,KAAA,UAAQlsG,UAAU,yEAAyE8O,QAASA,IAAMm2F,EAAS,eAAehlG,SAAE,kBAGpIisG,EAAAA,GAAAA,KAAA,UAAQlsG,UAAU,yEAAyE8O,QAASA,IAAMm2F,EAAS,oBAAoBhlG,SAAE,sBAGzIisG,EAAAA,GAAAA,KAAA,UACEp9F,QAASmtM,EACTj8M,UAAU,6FAA4FC,SACvG,gBAOX,CClBO,SAASo8M,KACZ,MAEOC,EAAOC,IAAY7kK,EAAAA,EAAAA,UAAS,KAEnCP,EAAAA,EAAAA,YAAU,KACR84E,GAAM5uJ,IALW,uEAMdsyB,MAAKijH,IACJ2lG,EAAS3lG,EAAS7kI,KAAK,IAExB7I,OAAM9B,IACL0kB,QAAQ1kB,MAAM,0BAA2BA,EAAM,GAC/C,GACH,IAEH,MAAOo1O,EAAaC,IAAkB/kK,EAAAA,EAAAA,UAAS,OACxCglK,EAAYC,IAAiBjlK,EAAAA,EAAAA,WAAS,IACtCklK,EAASC,IAAcnlK,EAAAA,EAAAA,UAAS,CACrCviC,MAAO,GACP7T,QAAS,GACTo3J,UAAW,GACXC,WAAW,IAAI7+H,MAAOgjL,uBAgBlBC,EAAcxhO,IAClBkhO,EAAelhO,GACfshO,EAAW,CACT1nM,MAAO55B,EAAK45B,MACZ7T,QAAS/lB,EAAK+lB,QACdo3J,UAAWn9K,EAAKm9K,UAChBC,UAAWp9K,EAAKo9K,WAChB,EAiBEvU,EAAgBjtK,KAhF1B,SAAoBA,GACH0jO,KACR1qB,YAAYa,aAAar9L,MAAM60D,IAChCynE,GAAM95I,OAAO,gFAAiF,CAC1F+1B,QAAS,CACL8wM,cAAe,UAAUx0J,IACzB,eAAgB,oBAEpBz2E,KAAM,CACFoF,QAELwc,MAAKijH,IACJ9qH,QAAQC,IAAI,gBAAiB6qH,EAAS7kI,KAAK,IAC5C7I,OAAM9B,IACL0kB,QAAQ1kB,MAAM,uBAAwBA,EAAM,GAC9C,GAEV,CAgEM61O,CAAW9lO,GACXolO,EAASD,EAAMz9N,QAAQtD,GAASA,EAAKpE,KAAOA,IAAI,EAG5C+lO,EAAYA,KAChBL,EAAW,CACT1nM,MAAO,GACP7T,QAAS,GACTo3J,UAAW,GACXC,WAAW,IAAI7+H,MAAOgjL,sBACtB,EAGJ,OACI5wG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,cAAaC,UACxBgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,iEAAgEC,SAAA,EAEzEu8M,IAAgBE,IAClBzwG,EAAAA,GAAAA,MAAAoE,GAAAA,SAAA,CAAApwG,SAAA,EACIisG,EAAAA,GAAAA,KAAA,UACAp9F,QAASA,IAAM6tM,GAAc,GAC7B38M,UAAU,yEAAwEC,SACjF,qBAKDisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,kBAAiBC,UAChCgsG,EAAAA,GAAAA,MAAA,SAAOjsG,UAAU,2DAA0DC,SAAA,EACvEisG,EAAAA,GAAAA,KAAA,SAAAjsG,UACAgsG,EAAAA,GAAAA,MAAA,MAAIjsG,UAAU,6DAA4DC,SAAA,EACtEisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAC,QACpCisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAC,WACpCisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAC,eACpCisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAC,gBACpCisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,uBAAsBC,SAAC,kBAGzCisG,EAAAA,GAAAA,KAAA,SAAOlsG,UAAU,wBAAuBC,SACvCq8M,EAAMptN,KAAK3T,IACR0wH,EAAAA,GAAAA,MAAA,MAAkBjsG,UAAU,2BAA0BC,SAAA,EACtDisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAE1kB,EAAKpE,MAC1C+0H,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAE1kB,EAAK45B,SAC1C+2F,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAE1kB,EAAKm9K,aAC1CxsD,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,sBAAqBC,SAAE1kB,EAAKo9K,aAC1C1sD,EAAAA,GAAAA,MAAA,MAAIjsG,UAAU,uBAAsBC,SAAA,EAChCisG,EAAAA,GAAAA,KAAA,UACAlsG,UAAU,iFACV8O,QAASA,IAAMiuM,EAAWxhO,GAAM0kB,SAC/B,UAGDisG,EAAAA,GAAAA,KAAA,UACAlsG,UAAU,uEACV8O,QAASA,IAAMs1I,EAAa7oK,EAAKpE,IAAI8oB,SACpC,gBAfI1kB,EAAKpE,cA0BtB+0H,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,mCAAkCC,SAChDq8M,EAAMptN,KAAK3T,IACR0wH,EAAAA,GAAAA,MAAA,OAEAjsG,UAAU,2DAA0DC,SAAA,EAEpEisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,oBAAmBC,SAAE1kB,EAAK45B,SACxC82F,EAAAA,GAAAA,MAAA,KAAGjsG,UAAU,wBAAuBC,SAAA,CAAC,cAAY1kB,EAAKm9K,cACtDzsD,EAAAA,GAAAA,MAAA,KAAGjsG,UAAU,wBAAuBC,SAAA,CAAC,eAAa1kB,EAAKo9K,cACvD1sD,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,wBAAuBC,SAAA,EAClCisG,EAAAA,GAAAA,KAAA,UACAlsG,UAAU,sEACV8O,QAASA,IAAMiuM,EAAWxhO,GAAM0kB,SAC/B,UAGDisG,EAAAA,GAAAA,KAAA,UACAlsG,UAAU,+DACV8O,QAASA,IAAMs1I,EAAa7oK,EAAKpE,IAAI8oB,SACpC,gBAhBA1kB,EAAKpE,YA2BhBqlO,GAAeE,KACjBzwG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,OAAMC,SAAA,EACjBisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,yBAAwBC,SACrCu8M,EAAc,YAAc,qBAE7BtwG,EAAAA,GAAAA,KAAA,SACAnxH,KAAK,OACLilB,UAAU,0DACV0T,YAAY,aACZvyC,MAAOy7O,EAAQznM,MACftG,SAAW3mC,GAAM20O,EAAW,IAAKD,EAASznM,MAAOjtC,EAAE02B,OAAOz9B,WAE1D+qI,EAAAA,GAAAA,KAAA,SACAnxH,KAAK,OACLilB,UAAU,0DACV0T,YAAY,YACZvyC,MAAOy7O,EAAQlkD,UACf7pJ,SAAW3mC,GAAM20O,EAAW,IAAKD,EAASlkD,UAAWxwL,EAAE02B,OAAOz9B,WAE9D+qI,EAAAA,GAAAA,KAAA,YACAlsG,UAAU,wEACV0T,YAAY,eACZvyC,MAAOy7O,EAAQt7M,QACfuN,SAAW3mC,GAAM20O,EAAW,IAAKD,EAASt7M,QAASp5B,EAAE02B,OAAOz9B,UAE3Dq7O,GACDtwG,EAAAA,GAAAA,KAAA,UACIlsG,UAAU,kEACV8O,QA3IGquM,MAxF3B,SAAoBhmO,EAAIg+B,EAAO7T,EAASo3J,GACpC,MAAM90C,EAAOi3F,KACPt/N,EAAO,CACTpE,KACAg+B,QACA7T,UACAo3J,aAEJ90C,EAAKusE,YAAYa,aAAar9L,MAAM60D,IAChCynE,GAAM10I,KAAK,gFAAiFA,EAAM,CAC9F2wB,QAAS,CACL8wM,cAAe,UAAUx0J,IACzB,eAAgB,sBAErB70D,MAAKijH,IACJ9qH,QAAQC,IAAI,gBAAiB6qH,EAAS7kI,KAAK,IAC5C7I,OAAM9B,IACL0kB,QAAQ1kB,MAAM,uBAAwBA,EAAM,GAC9C,GAEV,CAqEMg2O,CAAWZ,EAAYrlO,GAAIylO,EAAQznM,MAAOynM,EAAQt7M,QAASs7M,EAAQlkD,WACnE6jD,EACED,EAAMptN,KAAK3T,GAEAA,EAAKpE,KAAOqlO,EAAYrlO,GAAK,IAAKoE,KAASqhO,GAAYrhO,KAIpEkhO,EAAe,MACfS,GAAW,EAiI+Bj9M,SAC3B,kBAIDisG,EAAAA,GAAAA,KAAA,UACIlsG,UAAU,oEACV8O,QAxKCuuM,KACnB,MAAMC,EAAgB,IACjBV,EACHzlO,GAAI28L,OA9FZ,SAAoB38L,EAAIg+B,EAAO7T,EAASo3J,GACpC,MAAM90C,EAAOi3F,KACPt/N,EAAO,CACTpE,KACAg+B,QACA7T,UACAo3J,aAEJ90C,EAAKusE,YAAYa,aAAar9L,MAAM60D,IAChCynE,GAAM10I,KAAK,gFAAiFA,EAAM,CAC9F2wB,QAAS,CACL8wM,cAAe,UAAUx0J,IACzB,eAAgB,sBAGnB70D,MAAKijH,IACN9qH,QAAQC,IAAI,gBAAiB6qH,EAAS7kI,KAAK,IAE1C7I,OAAM9B,IACP0kB,QAAQ1kB,MAAM,uBAAwBA,EAAM,GAC1C,GAEd,CA0EMm2O,CAAWD,EAAcnmO,GAAImmO,EAAcnoM,MAAOmoM,EAAch8M,QAASg8M,EAAc5kD,WACvF6jD,EAAS,IAAID,EAAOgB,IACpBJ,IACAP,GAAc,EAAM,EAgKoB18M,SACzB,iBAKDisG,EAAAA,GAAAA,KAAA,UACAp9F,QAASA,KACL2tM,EAAe,MACfE,GAAc,EAAM,EAExB38M,UAAU,qEAAoEC,SAC7E,kBAQnB,CCxRF,IAAIu9M,GAAc,CAChB7pO,KAAM,CACJ8pO,QAAS,GACTC,MAAO,KAgHX30O,eAAe40O,GAAWC,GAAgD,IAApC7mG,EAAQ13G,UAAA58B,OAAA,QAAA3B,IAAAu+B,UAAA,GAAAA,UAAA,GAAG,KAAMw+M,EAAgBx+M,UAAA58B,OAAA,EAAA48B,UAAA,QAAAv+B,EACnE+8O,GAAiB,GACjB,MAAMj6F,EAAOi3F,KACPryJ,QAAco7D,EAAKusE,YAAYa,aACrC,IAcI,aAbuB/gE,GAAM95I,OACzB,6EACA,CACI+1B,QAAS,CACL8wM,cAAe,UAAUx0J,IACzB,eAAgB,oBAEpBz2E,KAAM,CACF+rO,OAAQF,EACR7mG,SAAUA,QAAYj2I,MAIlBiR,IACpB,CAAE,MAAO3K,GACL0kB,QAAQ1kB,MAAM,wBAAyBA,EAC3C,CAAC,QACGy2O,GAAiB,EACrB,CACJ,CAEO,SAASE,KACd,MAAOhsO,EAAMisO,IAAWtmK,EAAAA,EAAAA,UAAS8lK,KAC1BS,EAAYC,IAAiBxmK,EAAAA,EAAAA,UAAS,CAAC,UACvCymK,EAAeC,IAAoB1mK,EAAAA,EAAAA,UAAS,KAC5C2mK,EAAWC,IAAgB5mK,EAAAA,EAAAA,UAAS,OACpC6mK,EAAeC,IAAoB9mK,EAAAA,EAAAA,UAAS,KAC5C+mK,EAAaC,IAAkBhnK,EAAAA,EAAAA,WAAS,IAGxCinK,EAAkBC,IAAuBlnK,EAAAA,EAAAA,WAAS,IAClDmnK,EAAeC,IAAoBpnK,EAAAA,EAAAA,WAAS,IAC5CqnK,EAAeC,IAAoBtnK,EAAAA,EAAAA,WAAS,IAC5CunK,EAAepB,IAAoBnmK,EAAAA,EAAAA,WAAS,IAEnDP,EAAAA,EAAAA,YAAU,MApJZpuE,eAA+B61O,GAC3BA,GAAoB,GACpB,MAAMh7F,EAAOi3F,KACPryJ,QAAco7D,EAAKusE,YAAYa,aACrC,IAMI,aALuB/gE,GAAM5uJ,IAAI,6EAA8E,CAC3G6qC,QAAS,CACL8wM,cAAe,UAAUx0J,QAGjBz2E,IACpB,CAAE,MAAO3K,GACL0kB,QAAQ1kB,MAAM,6BAA8BA,EAChD,CAAC,QACGw3O,GAAoB,EACxB,CACJ,EAqIIM,CAAgBN,GAAqBjrN,MAAM5hB,IACvCisO,EAAQjsO,EAAK,GACf,GACD,IAEH,MAAMotO,EAAgBlB,EAAWA,EAAWx7O,OAAS,GA6E/C28O,EAAmBA,CAACxoM,EAAOl0C,KAC/Bk0C,EAAMsiB,iBAEFtiB,EAAMikB,SAAWjkB,EAAMokB,QACrBujL,EAAc9/N,SAAS/b,GACzB87O,EAAiBD,EAAc1/N,QAAQ7b,GAAMA,IAAMN,KAEnD87O,EAAiB,IAAID,EAAe77O,IAItC87O,EAAiB,CAAC97O,GACpB,EA+BF,OACEwpI,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,sCAAqCC,UAClDgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,6DAA4DC,SAAA,EACzEisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,mDAAkDC,SAAC,oBAGjEisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,0EAAyEC,SACrFg+M,EAAW/uN,KAAI,CAAC4uN,EAAQlvO,KACvBq9H,EAAAA,GAAAA,MAAA,QAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,UACEp9F,QAASA,IAAMovM,EAAcD,EAAW/5O,MAAM,EAAG0K,EAAQ,IACzDoxB,UAAU,gCAA+BC,SAExC69M,IAEFlvO,EAAQqvO,EAAWx7O,OAAS,GAAK,QAPzBmM,QAafq9H,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,kFAAiFC,SAAA,EAE9FisG,EAAAA,GAAAA,KAAA,UACEp9F,QA1EWuwM,KACfpB,EAAWx7O,OAAS,GACtBy7O,EAAcD,EAAW/5O,MAAM,EAAG+5O,EAAWx7O,OAAS,GACxD,EAwEQ8oC,SAAgC,IAAtB0yM,EAAWx7O,OACrBu9B,UAAW,sEACa,IAAtBi+M,EAAWx7O,OAAe,+CAAiD,2CAC1Ew9B,UAEHisG,EAAAA,GAAAA,KAAA,OACEvmG,MAAM,6BACNsnD,KAAK,OACLqI,QAAQ,YACR7B,OAAO,eACPzzD,UAAU,wBAAuBC,UAEjCisG,EAAAA,GAAAA,KAAA,QAAMx4C,cAAc,QAAQC,eAAe,QAAQ9kC,YAAa,EAAG1O,EAAE,yBAKzE8rF,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,+DAA8DC,SAAA,EAE3EgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,iBAAgBC,SAAA,EAC7BisG,EAAAA,GAAAA,KAAA,SACEnxH,KAAK,OACL5Z,MAAOg9O,EACPtvM,SAAW3mC,GAAMk2O,EAAiBl2O,EAAE02B,OAAOz9B,OAC3CuyC,YAAY,cACZ1T,UAAU,6GAEZksG,EAAAA,GAAAA,KAAA,UACEp9F,QA1Ka/lC,UACzB,GAAIo1O,EAAcx9M,OAAQ,CAExB,MAAM2+M,EAA0C,SAAzBrB,EAAWl6O,KAAK,KAAkBo6O,EAAgB,GAAGF,EAAWl6O,KAAK,QAAQo6O,IAAgB/5O,QAAQ,QAAS,UA7I3I2E,eAA4B60O,EAAYkB,GACpCA,GAAiB,GACjB,MAAMl7F,EAAOi3F,KACPryJ,QAAco7D,EAAKusE,YAAYa,aACrC,IAaI,aAZuB/gE,GAAM10I,KACzB,6EACA,CACIuiO,OAAQF,GAEZ,CACI1xM,QAAS,CACL8wM,cAAe,UAAUx0J,IACzB,eAAgB,uBAIZz2E,IACpB,CAAE,MAAO3K,GACL0kB,QAAQ1kB,MAAM,0BAA2BA,EAC7C,CAAC,QACG03O,GAAiB,EACrB,CACJ,CAyHYS,CAAaD,EAAiB,IAAKR,GAGzC,MAAMU,EAAiB,IAAIztO,EAAKotO,GAAe1B,QAASU,GACxDH,EAAQ,IACHjsO,EACH,CAACotO,GAAgB,IACZptO,EAAKotO,GACR1B,QAAS+B,GAEX,CAACrB,GAAgB,CAAEV,QAAS,GAAIC,MAAO,MAEzCU,EAAiB,GACnB,GAwJYp+M,UAAU,+FAA8FC,SAEvG4+M,EAAgB,cAAgB,sBAKrC5yG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,WAAUC,SAAA,EACvBisG,EAAAA,GAAAA,KAAA,SACEnxH,KAAK,OACLgzB,UAAQ,EACRc,SA/JW9lC,UACvB,MAAM20O,EAAQ9mM,EAAMhY,OAAO8+M,MAC3B,GAAIA,EAAMj7O,OAAQ,CAChB,MAAM4mG,EAAOq0I,EAAM,GACb72F,EAAS,IAAI44F,WACnB54F,EAAO1rB,OAASpyH,iBACd,MAAM22O,EAAgB74F,EAAOziI,OAAOxM,MAAM,KAAK,GACzC0nO,EAA0C,SAAzBrB,EAAWl6O,KAAK,KAAkB,GAAKk6O,EAAWl6O,KAAK,KAAKK,QAAQ,QAAS,UA3G5G2E,eAA0B60O,EAAY7mG,EAAU4oG,EAAaX,GACzDA,GAAiB,GACjB,MAAMp7F,EAAOi3F,KACPryJ,QAAco7D,EAAKusE,YAAYa,aACrC,IAeI,aAduB/gE,GAAM10I,KACzB,6EACA,CACIuiO,OAAQF,EACR7mG,SAAUA,EACV4oG,YAAaA,GAEjB,CACIzzM,QAAS,CACL8wM,cAAe,UAAUx0J,IACzB,eAAgB,uBAIZz2E,IACpB,CAAE,MAAO3K,GACL0kB,QAAQ1kB,MAAM,yBAA0BA,EAC5C,CAAC,QACG43O,GAAiB,EACrB,CACJ,CAmFcY,CAAWN,EAAgBj2I,EAAKpjG,KAAMy5O,EAAeV,GAE3D,MAAMa,EAAe,IAAI9tO,EAAKotO,GAAezB,MAAO,CAAEz3O,KAAMojG,EAAKpjG,OACjE+3O,EAAQ,IACHjsO,EACH,CAACotO,GAAgB,IACZptO,EAAKotO,GACRzB,MAAOmC,KAGXvB,EAAa,KACf,EACAz3F,EAAOi5F,cAAcz2I,EACvB,GA2IYrpE,UAAU,0DACV3wB,IAAMk1B,GAAU+5M,EAAa/5M,MAE/B2nG,EAAAA,GAAAA,KAAA,UACElsG,UAAU,2FACV8O,QAASA,IAAMuvM,EAAU9F,QAAQt4M,SAEhC8+M,EAAgB,eAAiB,qBAKtC9yG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,WAAUC,SAAA,EACvBisG,EAAAA,GAAAA,KAAA,UACEp9F,QAASA,IAAM4vM,GAAgBD,GAC/BlzM,SAAmC,IAAzBgzM,EAAc97O,OACxBu9B,UAAW,6FACgB,IAAzBu+M,EAAc97O,OAAe,gCAAkC,IAC9Dw9B,SACJ,YAGAw+M,GAAeF,EAAc97O,OAAS,IACrCwpI,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,kFAAiFC,SAAA,EAC9FisG,EAAAA,GAAAA,KAAA,UACEp9F,QAtHG/lC,UACnB,IAAK,MAAMrG,KAAQ67O,EACbxsO,EAAKotO,GAAe1B,QAAQh/N,SAAS/b,SAEjCi7O,GAAWj7O,EAAM,KAAMm7O,GACpB9rO,EAAKotO,GAAezB,MAAMn0O,MAAK8/F,GAAQA,EAAKpjG,OAASvD,WAExDi7O,GAAWwB,EAAez8O,EAAMm7O,GAK1C,MAAMgC,EAAe9tO,EAAKotO,GAAezB,MAAM7+N,QAAQwqF,IAAUk1I,EAAc9/N,SAAS4qF,EAAKpjG,QACvFu5O,EAAiBztO,EAAKotO,GAAe1B,QAAQ5+N,QAAQi/N,IAAYS,EAAc9/N,SAASq/N,KAE9FE,EAAQ,IACHjsO,EACH,CAACotO,GAAgB,IACZptO,EAAKotO,GACRzB,MAAOmC,EACPpC,QAAS+B,KAGbhB,EAAiB,IACjBE,GAAe,EAAM,EA+FL1+M,UAAU,kEAAiEC,SAE1Eg/M,EAAgB,cAAgB,WAET,IAAzBV,EAAc97O,SAAiBsP,EAAKotO,GAAe1B,QAAQh/N,SAAS8/N,EAAc,MACjFryG,EAAAA,GAAAA,KAAA,UACEp9F,QAxKG/lC,UACrB,MAAMguI,EAAWwnG,EAAc,GACzBe,EAA0C,SAAzBrB,EAAWl6O,KAAK,KAAkB,GAAKk6O,EAAWl6O,KAAK,KAAKK,QAAQ,QAAS,IAC9F27O,QAnKVh3O,eAA4B60O,EAAY7mG,GACtC,MAAM6M,EAAOi3F,KACPryJ,QAAco7D,EAAKusE,YAAYa,aAC/B3nH,EAAOu0I,EAAWn7O,OAAS,EAAI,GAAGm7O,KAAc7mG,IAAaA,EAEnE,IACE,MAAMH,QAAiBqZ,GAAM5uJ,IAC3B,uFAAuFgoG,IACvF,CACEn9D,QAAS,CAAE8wM,cAAe,UAAUx0J,KACpCkzD,aAAc,SAKZh7E,EAAMplB,OAAOm7E,IAAIupH,gBAAgBppG,EAAS7kI,MAG1CmlC,EAAOsE,SAASS,cAAc,KACpC/E,EAAK5K,KAAOo0B,EACZxpB,EAAKmQ,aAAa,WAAY0vF,GAG9Bv7F,SAASnuC,KAAKw+C,YAAY3U,GAC1BA,EAAKqhM,QAGLrhM,EAAKoF,WAAWC,YAAYrF,EAC9B,CAAE,MAAO9vC,GACP0kB,QAAQ1kB,MAAM,2BAA4BA,EAC5C,CACF,CAoI2B64O,CAAaX,EAAgBvoG,GAE9Cr2E,EAAMplB,OAAOm7E,IAAIupH,gBAAgB,IAAIjoG,KAAK,CAACgoG,KAC3C7oM,EAAOsE,SAASS,cAAc,KACpC/E,EAAK5K,KAAOo0B,EACZxpB,EAAKmQ,aAAa,WAAY0vF,GAC9Bv7F,SAASnuC,KAAKw+C,YAAY3U,GAC1BA,EAAKqhM,QACLrhM,EAAKoF,WAAWC,YAAYrF,EAAK,EA8JflX,UAAU,mEAAkEC,SAC7E,0BAWbisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,oEAAmEC,SACxC,IAAvCluB,EAAKotO,GAAe1B,QAAQh7O,QAAqD,IAArCsP,EAAKotO,GAAezB,MAAMj7O,QACrEwpI,EAAAA,GAAAA,MAAA,KAAGjsG,UAAU,wCAAuCC,SAAA,CACjD0+M,IAAoBzyG,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,kBAAiBC,SAAC,0BAClD0+M,IAAoBzyG,EAAAA,GAAAA,KAAA,KAAAjsG,SAAG,qBAG3BgsG,EAAAA,GAAAA,MAAAoE,GAAAA,SAAA,CAAApwG,SAAA,CACGluB,EAAKotO,GAAe1B,QAAQvuN,KAAI,CAAC4uN,EAAQlvO,KACxCs9H,EAAAA,GAAAA,KAAA,OAEElsG,UAAW,iFACTpxB,EAAQ,IAAM,EAAI,gCAAkC,mCAClD2vO,EAAc9/N,SAASq/N,GAAU,uBAAyB,KAC9DhvM,QAASA,KAAMoxM,OApLLtC,EAoLsBE,OAnL9CI,EAAc,IAAID,EAAYL,IADNA,KAoL8B,EACxC5uM,cAAgB4H,GAAUwoM,EAAiBxoM,EAAOknM,GAAQ79M,UAE1DgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,8BAA6BC,SAAA,EAC1CisG,EAAAA,GAAAA,KAAA,OACEvmG,MAAM,6BACNsnD,KAAK,OACLqI,QAAQ,YACR7B,OAAO,eACPzzD,UAAU,UAASC,UAEnBisG,EAAAA,GAAAA,KAAA,QACEx4C,cAAc,QACdC,eAAe,QACf9kC,YAAa,EACb1O,EAAE,8EAGN+rF,EAAAA,GAAAA,KAAA,QAAAjsG,SAAO69M,QAtBJ,UAAUlvO,OA0BlBmD,EAAKotO,GAAezB,MAAMxuN,KAAI,CAACm6E,EAAMz6F,KACpCs9H,EAAAA,GAAAA,KAAA,OAEElsG,UAAW,iFACTpxB,EAAQ,IAAM,EAAI,gCAAkC,mCAClD2vO,EAAc9/N,SAAS4qF,EAAKpjG,MAAQ,uBAAyB,KACjE+oC,cAAgB4H,GAAUwoM,EAAiBxoM,EAAOyyD,EAAKpjG,MAAMg6B,UAE7DgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,8BAA6BC,SAAA,EAC1CgsG,EAAAA,GAAAA,MAAA,OACEtmG,MAAM,6BACNsnD,KAAK,OACLqI,QAAQ,YACR7B,OAAO,eACPzzD,UAAU,UAASC,SAAA,EAEnBisG,EAAAA,GAAAA,KAAA,QACEx4C,cAAc,QACdC,eAAe,QACf9kC,YAAa,EACb1O,EAAE,8DAEJ+rF,EAAAA,GAAAA,KAAA,QAAMx4C,cAAc,QAAQC,eAAe,QAAQ9kC,YAAa,EAAG1O,EAAE,kBAEvE+rF,EAAAA,GAAAA,KAAA,QAAAjsG,SAAOopE,EAAKpjG,WAtBT,QAAQ2I,gBAgC/B,CC7cO,SAASuxO,GAAUrqO,GACtB,MACMwzF,EADWg7B,KACK3H,SAASv4H,QAAQ,IAAK,IAAIwT,MAAM,KAChDwoO,EAAc92I,EAAK7mG,OAAS,EAAI6mG,EAAK,GAAK,QAChD,OACI2iC,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACIisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,gBACnBsuE,EAAAA,GAAAA,KAAC8vG,GAAS,IACO,SAAhBoE,IAA0Bl0G,EAAAA,GAAAA,KAACmwG,GAAgB,IAC3B,cAAhB+D,IAA+Bl0G,EAAAA,GAAAA,KAAC6xG,GAAa,MAG1D,CCXO,SAASsC,KACd,MAAOjgL,EAAOkgL,IAAY5oK,EAAAA,EAAAA,UAAS,KAC5BpX,EAAUigL,IAAe7oK,EAAAA,EAAAA,UAAS,KAClCtwE,EAAO+zL,IAAYzjH,EAAAA,EAAAA,UAAS,IAYnC,OACEu0D,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,gBACnBsuE,EAAAA,GAAAA,KAACypE,GAAW,CAACxgK,MAAM,iBACnB+2F,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,yCAAwCC,UACvDisG,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,oDAAmDC,UAChEgsG,EAAAA,GAAAA,MAAA,QAAMn5F,SAhBQ/pC,UAClBb,EAAEgxD,iBACF,mB3CqUF0qF,EACAxjF,EACAE,GAEA,OAAImlJ,GAAqB7hE,EAAKshE,KACrB38I,QAAQmzD,OACbmvF,GAAgDjnE,IAG7C+lF,GACLztB,GAAmBt4D,GACnBmjF,GAAkBE,WAAW7mK,EAAOE,IACpCp3D,OAAMH,UAON,KALiB,6CAAf3B,EAAM7E,MAEDqnO,GAAsBhmF,GAGvBx8I,CAAK,GAEf,C2CzVYo5O,CAA2B58F,GAAMxjF,EAAOE,GAC9ChlB,OAAOsiB,SAAStxB,KAAO,QACzB,CAAE,MAAO/7B,GACP4qL,EAAS,qBAAuB5qL,EAAIW,QACtC,GASiC8uB,UAAU,YAAWC,SAAA,EAChDgsG,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,SAAO1/F,QAAQ,QAAQxM,UAAU,0CAAyCC,SAAC,mBAG3EisG,EAAAA,GAAAA,KAAA,SACE/0H,GAAG,QACH4D,KAAK,QACL24B,YAAY,QACZvyC,MAAOi/D,EACPvxB,SAAW3mC,GAAMo4O,EAASp4O,EAAE02B,OAAOz9B,OACnCi4B,UAAQ,EACR4G,UAAU,iJAGdisG,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACEisG,EAAAA,GAAAA,KAAA,SAAO1/F,QAAQ,WAAWxM,UAAU,0CAAyCC,SAAC,cAG9EisG,EAAAA,GAAAA,KAAA,SACE/0H,GAAG,WACH4D,KAAK,WACL24B,YAAY,WACZvyC,MAAOm/D,EACPzxB,SAAW3mC,GAAMq4O,EAAYr4O,EAAE02B,OAAOz9B,OACtCi4B,UAAQ,EACR4G,UAAU,gJAGb54B,IAAS8kI,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,mCAAkCC,SAAE74B,KAC3D8kI,EAAAA,GAAAA,KAAA,OAAAjsG,UACEisG,EAAAA,GAAAA,KAAA,UACEnxH,KAAK,SACLilB,UAAU,4JAA2JC,SACtK,qBASb,CClEO,SAASwgN,GAActvO,GAAe,IAAd,SAAE8uB,GAAU9uB,EACzC,MAAOsyG,EAAMi9H,IAAWhpK,EAAAA,EAAAA,UAAS,OAC1BlqC,EAASmzM,IAAcjpK,EAAAA,EAAAA,WAAS,GAUvC,OARAP,EAAAA,EAAAA,YAAU,KACR,MAAMytE,ERqLJ,SACJhB,EACA43D,EACAp0M,EACAi4N,GAEA,OAAOnjB,GAAmBt4D,GAAMw7E,mBAC9B5jB,EACAp0M,EACAi4N,EAEJ,CQhMwBD,CAAmBx7E,IAAOngC,IAC5Ci9H,EAAQj9H,GACRk9H,GAAW,EAAM,IAEnB,MAAO,IAAM/7F,GAAa,GACzB,IAECp3G,GAAgB0+F,EAAAA,GAAAA,KAAA,KAAAjsG,SAAG,eAEhBwjF,EAAOxjF,GAAWisG,EAAAA,GAAAA,KAACnD,GAAQ,CAACrgI,GAAG,UACxC,CCjBe,SAASk4O,KAEtB,OACE30G,EAAAA,GAAAA,MAAA,OAAAhsG,SAAA,EACIisG,EAAAA,GAAAA,KAAC4D,GAAQ,CAAClyE,SAAS,gBAAgB4yE,SAAS,SAC5CtE,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,iEAAgEC,UAC7EgsG,EAAAA,GAAAA,MAAA,UAAQjsG,UAAU,0FAAyFC,SAAA,EACxGisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,qBAAoBC,SAAC,kDACnCisG,EAAAA,GAAAA,KAAA,KAAGlsG,UAAU,gBAAeC,SAAC,iEAK1C,CCCA,MAAM4gN,WAAYpzK,EAAAA,UAChBtnE,MAAAA,GACE,OACE+lI,EAAAA,GAAAA,KAAC9C,GAAM,CAAAnpG,UACPisG,EAAAA,GAAAA,KAACr0C,EAAAA,SAAQ,CAACvb,UAAU4vD,EAAAA,GAAAA,KAAA,OAAAjsG,SAAK,eAAiBA,UACxCgsG,EAAAA,GAAAA,MAACtC,GAAM,CAAA1pG,SAAA,EACPisG,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,IAAIltD,SAAS8vF,EAAAA,GAAAA,KAAC8B,GAAI,OAC9B9B,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,SAASltD,SAAS8vF,EAAAA,GAAAA,KAACskB,GAAK,OACpCtkB,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,QAAQltD,SAAS8vF,EAAAA,GAAAA,KAAC2tD,GAAI,OAClC3tD,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,QAAQltD,SAAS8vF,EAAAA,GAAAA,KAAC8tD,GAAI,OAClC9tD,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,QAAQltD,SAAS8vF,EAAAA,GAAAA,KAACwuD,GAAmB,OACjDxuD,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,YAAYltD,SAAS8vF,EAAAA,GAAAA,KAAC2tD,GAAI,CAAC1iL,GAAIrX,KAAKgW,WAChDo2H,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,SAASltD,SAAS8vF,EAAAA,GAAAA,KAACwpE,GAAK,OACpCxpE,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,kBAAkBltD,SAAS8vF,EAAAA,GAAAA,KAAE00G,GAAiB,OAC1D10G,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,eAAeltD,SAAS8vF,EAAAA,GAAAA,KAACwpE,GAAK,OAC1CxpE,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,WAAWltD,SAAS8vF,EAAAA,GAAAA,KAAC2pE,GAAO,OACxC3pE,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,iBAAiBltD,SAAS8vF,EAAAA,GAAAA,KAAC0qE,GAAa,OACpD1qE,EAAAA,GAAAA,KAAChD,GAAK,CAAC5/B,KAAK,SAASltD,SAAS8vF,EAAAA,GAAAA,KAACm0G,GAAU,OACzCn0G,EAAAA,GAAAA,KAAChD,GAAK,CACJ5/B,KAAK,SACLltD,SACE8vF,EAAAA,GAAAA,KAACu0G,GAAc,CAAAxgN,UACbisG,EAAAA,GAAAA,KAACi0G,GAAS,SAIhBj0G,EAAAA,GAAAA,KAAChD,GAAK,CACJ5/B,KAAK,WACLltD,SACE8vF,EAAAA,GAAAA,KAACu0G,GAAc,CAAAxgN,UACbisG,EAAAA,GAAAA,KAACi0G,GAAS,cAQtB,EAGF,YC9CA,GAZyBW,IACnBA,GAAeA,aAAuBprO,UACxC,8BAAqBie,MAAKxiB,IAAkD,IAAjD,OAAE4vO,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAAShwO,EACpE4vO,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EAAY,GAExB,ECNK,MAAMM,WAAe3zK,EAAAA,UAC1BtnE,MAAAA,GACE,ICHuB+5L,EDGnBmhD,GAAe,IAAIvnL,MAAOwnL,cAC9B,OCJuBphD,EDILmhD,GCYlBn1G,EAAAA,GAAAA,KAAA,OAAKlsG,UAAU,GAAEC,UACfisG,EAAAA,GAAAA,KAAA,UAAQlsG,UAAU,0BAAyBC,UACzCgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,+BAA8BC,SAAA,EAC3CgsG,EAAAA,GAAAA,MAAA,MAAIjsG,UAAU,4EAA2EC,SAAA,EACvFisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,OAAMC,UAClBisG,EAAAA,GAAAA,KAAA,KACElsG,UAAU,4GACVsM,KAAK,QAAOrM,SACb,YAIHisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,OAAMC,UAClBisG,EAAAA,GAAAA,KAAA,KACElsG,UAAU,6GACVsM,KA9Bai1M,MACzB,MAAMC,EAAW,CACf,QACA,SACA,SACA,IACA,6CACA,6CACA,sBACA,yBAEF,OAAOA,EAAS3kO,KAAK08F,MAAM18F,KAAK4pD,SAAW+6K,EAAS/+O,QAAQ,EAmB1C8+O,GAAqBthN,SAC5B,qBAIHisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,OAAMC,UAClBisG,EAAAA,GAAAA,KAAA,KACElsG,UAAU,6GACVsM,KAAK,SAAQrM,SACd,sBAIHisG,EAAAA,GAAAA,KAAA,MAAIlsG,UAAU,OAAMC,UAClBisG,EAAAA,GAAAA,KAAA,KACElsG,UAAU,6GACVsM,KAAK,SAAQrM,SACd,iBAKLgsG,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,0DAAyDC,SAAA,EAEtEisG,EAAAA,GAAAA,KAAA,KACE5/F,KAAK,+BACLtM,UAAU,yFAAwFC,UAElGisG,EAAAA,GAAAA,KAAA,OACEvmG,MAAM,6BACN4P,MAAM,KACNpJ,OAAO,KACP8gD,KAAK,eACLjtD,UAAU,mFACVs1D,QAAQ,gBAAer1D,UAEvBisG,EAAAA,GAAAA,KAAA,QAAM/rF,EAAE,+8BAGZ+rF,EAAAA,GAAAA,KAAA,KACE5/F,KAAK,gDACLtM,UAAU,yFAAwFC,UAElGisG,EAAAA,GAAAA,KAAA,OACE32F,MAAM,KACNpJ,OAAO,KACP8gD,KAAK,eACLjtD,UAAU,mFACVs1D,QAAQ,gBACR3vD,MAAM,6BAA4B1F,UAElCisG,EAAAA,GAAAA,KAAA,QAAM/rF,EAAE,yVAId8rF,EAAAA,GAAAA,MAAA,OAAKjsG,UAAU,0GAAyGC,SAAA,CAAC,mBACpGigK,WDlF7B,EEAW/1D,EAAAA,WAAoB3uF,SAASk+D,eAAe,SACpDvzG,QACH8lI,EAAAA,GAAAA,MAAC1oF,EAAAA,WAAgB,CAAAtjB,SAAA,EACfisG,EAAAA,GAAAA,KAAA,WAAStrG,MAAO,CAAE6gN,UAAW,SAAUxhN,UACrCisG,EAAAA,GAAAA,KAAC20G,GAAG,OAEN30G,EAAAA,GAAAA,KAACk1G,GAAM,QAOXM","sources":["../node_modules/ajv/lib/ajv.ts","../node_modules/ajv/lib/compile/codegen/code.ts","../node_modules/ajv/lib/compile/codegen/index.ts","../node_modules/ajv/lib/compile/codegen/scope.ts","../node_modules/ajv/lib/compile/errors.ts","../node_modules/ajv/lib/compile/index.ts","../node_modules/ajv/lib/compile/names.ts","../node_modules/ajv/lib/compile/ref_error.ts","../node_modules/ajv/lib/compile/resolve.ts","../node_modules/ajv/lib/compile/rules.ts","../node_modules/ajv/lib/compile/util.ts","../node_modules/ajv/lib/compile/validate/applicability.ts","../node_modules/ajv/lib/compile/validate/boolSchema.ts","../node_modules/ajv/lib/compile/validate/dataType.ts","../node_modules/ajv/lib/compile/validate/defaults.ts","../node_modules/ajv/lib/compile/validate/index.ts","../node_modules/ajv/lib/compile/validate/keyword.ts","../node_modules/ajv/lib/compile/validate/subschema.ts","../node_modules/ajv/lib/core.ts","../node_modules/ajv/lib/runtime/equal.ts","../node_modules/ajv/lib/runtime/ucs2length.ts","../node_modules/ajv/lib/runtime/uri.ts","../node_modules/ajv/lib/runtime/validation_error.ts","../node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts","../node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts","../node_modules/ajv/lib/vocabularies/applicator/allOf.ts","../node_modules/ajv/lib/vocabularies/applicator/anyOf.ts","../node_modules/ajv/lib/vocabularies/applicator/contains.ts","../node_modules/ajv/lib/vocabularies/applicator/dependencies.ts","../node_modules/ajv/lib/vocabularies/applicator/if.ts","../node_modules/ajv/lib/vocabularies/applicator/index.ts","../node_modules/ajv/lib/vocabularies/applicator/items.ts","../node_modules/ajv/lib/vocabularies/applicator/items2020.ts","../node_modules/ajv/lib/vocabularies/applicator/not.ts","../node_modules/ajv/lib/vocabularies/applicator/oneOf.ts","../node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts","../node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts","../node_modules/ajv/lib/vocabularies/applicator/properties.ts","../node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts","../node_modules/ajv/lib/vocabularies/applicator/thenElse.ts","../node_modules/ajv/lib/vocabularies/code.ts","../node_modules/ajv/lib/vocabularies/core/id.ts","../node_modules/ajv/lib/vocabularies/core/index.ts","../node_modules/ajv/lib/vocabularies/core/ref.ts","../node_modules/ajv/lib/vocabularies/discriminator/index.ts","../node_modules/ajv/lib/vocabularies/discriminator/types.ts","../node_modules/ajv/lib/vocabularies/draft7.ts","../node_modules/ajv/lib/vocabularies/format/format.ts","../node_modules/ajv/lib/vocabularies/format/index.ts","../node_modules/ajv/lib/vocabularies/metadata.ts","../node_modules/ajv/lib/vocabularies/validation/const.ts","../node_modules/ajv/lib/vocabularies/validation/enum.ts","../node_modules/ajv/lib/vocabularies/validation/index.ts","../node_modules/ajv/lib/vocabularies/validation/limitItems.ts","../node_modules/ajv/lib/vocabularies/validation/limitLength.ts","../node_modules/ajv/lib/vocabularies/validation/limitNumber.ts","../node_modules/ajv/lib/vocabularies/validation/limitProperties.ts","../node_modules/ajv/lib/vocabularies/validation/multipleOf.ts","../node_modules/ajv/lib/vocabularies/validation/pattern.ts","../node_modules/ajv/lib/vocabularies/validation/required.ts","../node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts","../node_modules/domelementtype/lib/index.js","../node_modules/extend/index.js","../node_modules/fast-deep-equal/index.js","../node_modules/hast-util-parse-selector/index.js","../node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser/index.js","../node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object/src/index.ts","../node_modules/hastscript/factory.js","../node_modules/hastscript/html.js","../node_modules/hastscript/index.js","../node_modules/hastscript/node_modules/comma-separated-tokens/index.js","../node_modules/hastscript/node_modules/property-information/find.js","../node_modules/hastscript/node_modules/property-information/html.js","../node_modules/hastscript/node_modules/property-information/lib/aria.js","../node_modules/hastscript/node_modules/property-information/lib/html.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/create.js","../node_modules/hastscript/node_modules/property-information/lib/util/defined-info.js","../node_modules/hastscript/node_modules/property-information/lib/util/info.js","../node_modules/hastscript/node_modules/property-information/lib/util/merge.js","../node_modules/hastscript/node_modules/property-information/lib/util/schema.js","../node_modules/hastscript/node_modules/property-information/lib/util/types.js","../node_modules/hastscript/node_modules/property-information/lib/xlink.js","../node_modules/hastscript/node_modules/property-information/lib/xml.js","../node_modules/hastscript/node_modules/property-information/lib/xmlns.js","../node_modules/hastscript/node_modules/property-information/normalize.js","../node_modules/hastscript/node_modules/space-separated-tokens/index.js","../node_modules/html-dom-parser/lib/client/constants.js","../node_modules/html-dom-parser/lib/client/domparser.js","../node_modules/html-dom-parser/lib/client/html-to-dom.js","../node_modules/html-dom-parser/lib/client/utilities.js","../node_modules/html-dom-parser/node_modules/domhandler/lib/index.js","../node_modules/html-dom-parser/node_modules/domhandler/lib/node.js","../node_modules/html-react-parser/index.js","../node_modules/html-react-parser/lib/attributes-to-props.js","../node_modules/html-react-parser/lib/dom-to-react.js","../node_modules/html-react-parser/lib/utilities.js","../node_modules/html-react-parser/node_modules/domhandler/lib/index.js","../node_modules/html-react-parser/node_modules/domhandler/lib/node.js","../node_modules/inline-style-parser/index.js","../node_modules/json-schema-traverse/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-property/lib/index.js","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/refractor/core.js","../node_modules/refractor/index.js","../node_modules/refractor/lang/abap.js","../node_modules/refractor/lang/abnf.js","../node_modules/refractor/lang/actionscript.js","../node_modules/refractor/lang/ada.js","../node_modules/refractor/lang/agda.js","../node_modules/refractor/lang/al.js","../node_modules/refractor/lang/antlr4.js","../node_modules/refractor/lang/apacheconf.js","../node_modules/refractor/lang/apex.js","../node_modules/refractor/lang/apl.js","../node_modules/refractor/lang/applescript.js","../node_modules/refractor/lang/aql.js","../node_modules/refractor/lang/arduino.js","../node_modules/refractor/lang/arff.js","../node_modules/refractor/lang/asciidoc.js","../node_modules/refractor/lang/asm6502.js","../node_modules/refractor/lang/asmatmel.js","../node_modules/refractor/lang/aspnet.js","../node_modules/refractor/lang/autohotkey.js","../node_modules/refractor/lang/autoit.js","../node_modules/refractor/lang/avisynth.js","../node_modules/refractor/lang/avro-idl.js","../node_modules/refractor/lang/bash.js","../node_modules/refractor/lang/basic.js","../node_modules/refractor/lang/batch.js","../node_modules/refractor/lang/bbcode.js","../node_modules/refractor/lang/bicep.js","../node_modules/refractor/lang/birb.js","../node_modules/refractor/lang/bison.js","../node_modules/refractor/lang/bnf.js","../node_modules/refractor/lang/brainfuck.js","../node_modules/refractor/lang/brightscript.js","../node_modules/refractor/lang/bro.js","../node_modules/refractor/lang/bsl.js","../node_modules/refractor/lang/c.js","../node_modules/refractor/lang/cfscript.js","../node_modules/refractor/lang/chaiscript.js","../node_modules/refractor/lang/cil.js","../node_modules/refractor/lang/clike.js","../node_modules/refractor/lang/clojure.js","../node_modules/refractor/lang/cmake.js","../node_modules/refractor/lang/cobol.js","../node_modules/refractor/lang/coffeescript.js","../node_modules/refractor/lang/concurnas.js","../node_modules/refractor/lang/coq.js","../node_modules/refractor/lang/cpp.js","../node_modules/refractor/lang/crystal.js","../node_modules/refractor/lang/csharp.js","../node_modules/refractor/lang/cshtml.js","../node_modules/refractor/lang/csp.js","../node_modules/refractor/lang/css-extras.js","../node_modules/refractor/lang/css.js","../node_modules/refractor/lang/csv.js","../node_modules/refractor/lang/cypher.js","../node_modules/refractor/lang/d.js","../node_modules/refractor/lang/dart.js","../node_modules/refractor/lang/dataweave.js","../node_modules/refractor/lang/dax.js","../node_modules/refractor/lang/dhall.js","../node_modules/refractor/lang/diff.js","../node_modules/refractor/lang/django.js","../node_modules/refractor/lang/dns-zone-file.js","../node_modules/refractor/lang/docker.js","../node_modules/refractor/lang/dot.js","../node_modules/refractor/lang/ebnf.js","../node_modules/refractor/lang/editorconfig.js","../node_modules/refractor/lang/eiffel.js","../node_modules/refractor/lang/ejs.js","../node_modules/refractor/lang/elixir.js","../node_modules/refractor/lang/elm.js","../node_modules/refractor/lang/erb.js","../node_modules/refractor/lang/erlang.js","../node_modules/refractor/lang/etlua.js","../node_modules/refractor/lang/excel-formula.js","../node_modules/refractor/lang/factor.js","../node_modules/refractor/lang/false.js","../node_modules/refractor/lang/firestore-security-rules.js","../node_modules/refractor/lang/flow.js","../node_modules/refractor/lang/fortran.js","../node_modules/refractor/lang/fsharp.js","../node_modules/refractor/lang/ftl.js","../node_modules/refractor/lang/gap.js","../node_modules/refractor/lang/gcode.js","../node_modules/refractor/lang/gdscript.js","../node_modules/refractor/lang/gedcom.js","../node_modules/refractor/lang/gherkin.js","../node_modules/refractor/lang/git.js","../node_modules/refractor/lang/glsl.js","../node_modules/refractor/lang/gml.js","../node_modules/refractor/lang/gn.js","../node_modules/refractor/lang/go-module.js","../node_modules/refractor/lang/go.js","../node_modules/refractor/lang/graphql.js","../node_modules/refractor/lang/groovy.js","../node_modules/refractor/lang/haml.js","../node_modules/refractor/lang/handlebars.js","../node_modules/refractor/lang/haskell.js","../node_modules/refractor/lang/haxe.js","../node_modules/refractor/lang/hcl.js","../node_modules/refractor/lang/hlsl.js","../node_modules/refractor/lang/hoon.js","../node_modules/refractor/lang/hpkp.js","../node_modules/refractor/lang/hsts.js","../node_modules/refractor/lang/http.js","../node_modules/refractor/lang/ichigojam.js","../node_modules/refractor/lang/icon.js","../node_modules/refractor/lang/icu-message-format.js","../node_modules/refractor/lang/idris.js","../node_modules/refractor/lang/iecst.js","../node_modules/refractor/lang/ignore.js","../node_modules/refractor/lang/inform7.js","../node_modules/refractor/lang/ini.js","../node_modules/refractor/lang/io.js","../node_modules/refractor/lang/j.js","../node_modules/refractor/lang/java.js","../node_modules/refractor/lang/javadoc.js","../node_modules/refractor/lang/javadoclike.js","../node_modules/refractor/lang/javascript.js","../node_modules/refractor/lang/javastacktrace.js","../node_modules/refractor/lang/jexl.js","../node_modules/refractor/lang/jolie.js","../node_modules/refractor/lang/jq.js","../node_modules/refractor/lang/js-extras.js","../node_modules/refractor/lang/js-templates.js","../node_modules/refractor/lang/jsdoc.js","../node_modules/refractor/lang/json.js","../node_modules/refractor/lang/json5.js","../node_modules/refractor/lang/jsonp.js","../node_modules/refractor/lang/jsstacktrace.js","../node_modules/refractor/lang/jsx.js","../node_modules/refractor/lang/julia.js","../node_modules/refractor/lang/keepalived.js","../node_modules/refractor/lang/keyman.js","../node_modules/refractor/lang/kotlin.js","../node_modules/refractor/lang/kumir.js","../node_modules/refractor/lang/kusto.js","../node_modules/refractor/lang/latex.js","../node_modules/refractor/lang/latte.js","../node_modules/refractor/lang/less.js","../node_modules/refractor/lang/lilypond.js","../node_modules/refractor/lang/liquid.js","../node_modules/refractor/lang/lisp.js","../node_modules/refractor/lang/livescript.js","../node_modules/refractor/lang/llvm.js","../node_modules/refractor/lang/log.js","../node_modules/refractor/lang/lolcode.js","../node_modules/refractor/lang/lua.js","../node_modules/refractor/lang/magma.js","../node_modules/refractor/lang/makefile.js","../node_modules/refractor/lang/markdown.js","../node_modules/refractor/lang/markup-templating.js","../node_modules/refractor/lang/markup.js","../node_modules/refractor/lang/matlab.js","../node_modules/refractor/lang/maxscript.js","../node_modules/refractor/lang/mel.js","../node_modules/refractor/lang/mermaid.js","../node_modules/refractor/lang/mizar.js","../node_modules/refractor/lang/mongodb.js","../node_modules/refractor/lang/monkey.js","../node_modules/refractor/lang/moonscript.js","../node_modules/refractor/lang/n1ql.js","../node_modules/refractor/lang/n4js.js","../node_modules/refractor/lang/nand2tetris-hdl.js","../node_modules/refractor/lang/naniscript.js","../node_modules/refractor/lang/nasm.js","../node_modules/refractor/lang/neon.js","../node_modules/refractor/lang/nevod.js","../node_modules/refractor/lang/nginx.js","../node_modules/refractor/lang/nim.js","../node_modules/refractor/lang/nix.js","../node_modules/refractor/lang/nsis.js","../node_modules/refractor/lang/objectivec.js","../node_modules/refractor/lang/ocaml.js","../node_modules/refractor/lang/opencl.js","../node_modules/refractor/lang/openqasm.js","../node_modules/refractor/lang/oz.js","../node_modules/refractor/lang/parigp.js","../node_modules/refractor/lang/parser.js","../node_modules/refractor/lang/pascal.js","../node_modules/refractor/lang/pascaligo.js","../node_modules/refractor/lang/pcaxis.js","../node_modules/refractor/lang/peoplecode.js","../node_modules/refractor/lang/perl.js","../node_modules/refractor/lang/php-extras.js","../node_modules/refractor/lang/php.js","../node_modules/refractor/lang/phpdoc.js","../node_modules/refractor/lang/plsql.js","../node_modules/refractor/lang/powerquery.js","../node_modules/refractor/lang/powershell.js","../node_modules/refractor/lang/processing.js","../node_modules/refractor/lang/prolog.js","../node_modules/refractor/lang/promql.js","../node_modules/refractor/lang/properties.js","../node_modules/refractor/lang/protobuf.js","../node_modules/refractor/lang/psl.js","../node_modules/refractor/lang/pug.js","../node_modules/refractor/lang/puppet.js","../node_modules/refractor/lang/pure.js","../node_modules/refractor/lang/purebasic.js","../node_modules/refractor/lang/purescript.js","../node_modules/refractor/lang/python.js","../node_modules/refractor/lang/q.js","../node_modules/refractor/lang/qml.js","../node_modules/refractor/lang/qore.js","../node_modules/refractor/lang/qsharp.js","../node_modules/refractor/lang/r.js","../node_modules/refractor/lang/racket.js","../node_modules/refractor/lang/reason.js","../node_modules/refractor/lang/regex.js","../node_modules/refractor/lang/rego.js","../node_modules/refractor/lang/renpy.js","../node_modules/refractor/lang/rest.js","../node_modules/refractor/lang/rip.js","../node_modules/refractor/lang/roboconf.js","../node_modules/refractor/lang/robotframework.js","../node_modules/refractor/lang/ruby.js","../node_modules/refractor/lang/rust.js","../node_modules/refractor/lang/sas.js","../node_modules/refractor/lang/sass.js","../node_modules/refractor/lang/scala.js","../node_modules/refractor/lang/scheme.js","../node_modules/refractor/lang/scss.js","../node_modules/refractor/lang/shell-session.js","../node_modules/refractor/lang/smali.js","../node_modules/refractor/lang/smalltalk.js","../node_modules/refractor/lang/smarty.js","../node_modules/refractor/lang/sml.js","../node_modules/refractor/lang/solidity.js","../node_modules/refractor/lang/solution-file.js","../node_modules/refractor/lang/soy.js","../node_modules/refractor/lang/sparql.js","../node_modules/refractor/lang/splunk-spl.js","../node_modules/refractor/lang/sqf.js","../node_modules/refractor/lang/sql.js","../node_modules/refractor/lang/squirrel.js","../node_modules/refractor/lang/stan.js","../node_modules/refractor/lang/stylus.js","../node_modules/refractor/lang/swift.js","../node_modules/refractor/lang/systemd.js","../node_modules/refractor/lang/t4-cs.js","../node_modules/refractor/lang/t4-templating.js","../node_modules/refractor/lang/t4-vb.js","../node_modules/refractor/lang/tap.js","../node_modules/refractor/lang/tcl.js","../node_modules/refractor/lang/textile.js","../node_modules/refractor/lang/toml.js","../node_modules/refractor/lang/tremor.js","../node_modules/refractor/lang/tsx.js","../node_modules/refractor/lang/tt2.js","../node_modules/refractor/lang/turtle.js","../node_modules/refractor/lang/twig.js","../node_modules/refractor/lang/typescript.js","../node_modules/refractor/lang/typoscript.js","../node_modules/refractor/lang/unrealscript.js","../node_modules/refractor/lang/uorazor.js","../node_modules/refractor/lang/uri.js","../node_modules/refractor/lang/v.js","../node_modules/refractor/lang/vala.js","../node_modules/refractor/lang/vbnet.js","../node_modules/refractor/lang/velocity.js","../node_modules/refractor/lang/verilog.js","../node_modules/refractor/lang/vhdl.js","../node_modules/refractor/lang/vim.js","../node_modules/refractor/lang/visual-basic.js","../node_modules/refractor/lang/warpscript.js","../node_modules/refractor/lang/wasm.js","../node_modules/refractor/lang/web-idl.js","../node_modules/refractor/lang/wiki.js","../node_modules/refractor/lang/wolfram.js","../node_modules/refractor/lang/wren.js","../node_modules/refractor/lang/xeora.js","../node_modules/refractor/lang/xml-doc.js","../node_modules/refractor/lang/xojo.js","../node_modules/refractor/lang/xquery.js","../node_modules/refractor/lang/yaml.js","../node_modules/refractor/lang/yang.js","../node_modules/refractor/lang/zig.js","../node_modules/refractor/node_modules/is-alphabetical/index.js","../node_modules/refractor/node_modules/is-alphanumerical/index.js","../node_modules/refractor/node_modules/is-decimal/index.js","../node_modules/refractor/node_modules/is-hexadecimal/index.js","../node_modules/refractor/node_modules/parse-entities/decode-entity.browser.js","../node_modules/refractor/node_modules/parse-entities/index.js","../node_modules/refractor/node_modules/prismjs/components/prism-core.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-js/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-object/index.js","../node_modules/xtend/immutable.js","../node_modules/fast-uri/index.js","../node_modules/fast-uri/lib/schemes.js","../node_modules/fast-uri/lib/scopedChars.js","../node_modules/fast-uri/lib/utils.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/home/components/content-preview/components/sub-content-preview/services/preview.service.js","components/home/components/content-preview/components/sub-content-preview/components/special-item/special-item.js","components/home/components/content-preview/components/sub-content-preview/components/special-item/special-item.html.js","components/home/components/content-preview/components/sub-content-preview/sub-preview.js","components/home/components/content-preview/components/sub-content-preview/sub-preview.html.js","components/home/components/content-preview/content.js","components/home/components/content-preview/content.html.js","../node_modules/@headlessui/react/dist/utils/match.js","../node_modules/@headlessui/react/dist/utils/render.js","../node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","../node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","../node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js","../node_modules/@headlessui/react/dist/hooks/use-id.js","../node_modules/@headlessui/react/dist/components/keyboard.js","../node_modules/@headlessui/react/dist/utils/bugs.js","../node_modules/@headlessui/react/dist/internal/open-closed.js","../node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js","../node_modules/@headlessui/react/dist/components/disclosure/disclosure.js","../node_modules/@headlessui/react/dist/utils/owner.js","../node_modules/@heroicons/react/outline/esm/XIcon.js","../node_modules/@heroicons/react/outline/esm/MenuIcon.js","components/menu/menu.html.js","components/menu/menu.js","components/home/components/sayings/sayings.js","components/home/components/sayings/sayings.html.js","components/home/components/home-header/home-header.js","components/home/home.js","components/home/home.html.js","components/headers/dark-header/dark-header.js","components/headers/dark-header/dark-header.html.js","components/spinner/spinner.js","components/about/components/checks/components/check-box/check-box.js","components/about/components/checks/components/check-box/check-box.html.js","components/about/components/checks/checks.js","components/about/components/checks/checks.html.js","components/about/components/faq/faq.html.js","../node_modules/html-react-parser/index.mjs","components/about/components/steps/components/steps-beat-item/steps-beat-item.js","components/about/components/steps/components/steps-beat-item/steps-beat-item.html.js","components/about/components/steps/steps.js","components/about/components/steps/steps.html.js","components/about/about.html.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","components/about/about.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object/esm/index.mjs","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/lib/index.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/react-markdown/lib/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/handle/break.js","../node_modules/mdast-util-to-markdown/lib/handle/code.js","../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../node_modules/mdast-util-to-markdown/lib/handle/html.js","../node_modules/mdast-util-to-markdown/lib/handle/image.js","../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../node_modules/mdast-util-to-markdown/lib/handle/link.js","../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../node_modules/mdast-util-phrasing/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../node_modules/mdast-util-to-markdown/lib/handle/index.js","../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../node_modules/longest-streak/index.js","../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../node_modules/mdast-util-to-markdown/lib/handle/list.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../node_modules/mdast-util-to-markdown/lib/handle/root.js","../node_modules/mdast-util-to-markdown/lib/handle/text.js","../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/remark-gfm/lib/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/mdast-util-gfm/lib/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../node_modules/react-syntax-highlighter/dist/esm/prism.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","../node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/night-owl.js","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fi/index.mjs","components/blog/components/blog-post/blog-post.js","components/blog/components/blog-previews/components/blog-preview-section/blog-preview-section.js","components/blog/components/blog-previews/components/blog-preview-section/blog-preview-section.html.js","components/blog/components/blog-previews/blog-previews.js","components/blog/blog.js","components/blog/blog.html.js","components/docs/docs.js","components/blog/components/blog-previews/blog-previews.html.js","components/querycontent/querycontent.js","components/tools/tools-display.js","components/tools/formatters/json-formatter.js","../node_modules/js-yaml/dist/js-yaml.mjs","components/tools/formatters/yaml-formatter.js","components/tools/design/color-picker.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","components/tools/generators/uuid.js","components/tools/validators/json-schema-validator.js","components/tools/validators/regex-tester.js","components/tools/tools.js","components/headers/light-header/light-header.js","components/courses/courses.js","components/headers/small-dark-header/small-dark-header.js","components/courses/headless-architecture/headless-architecture.js","components/courses/course-display.js","../node_modules/@firebase/util/src/constants.ts","../node_modules/@firebase/util/src/crypt.ts","../node_modules/@firebase/util/src/defaults.ts","../node_modules/@firebase/util/src/global.ts","../node_modules/@firebase/util/src/deferred.ts","../node_modules/@firebase/util/src/environment.ts","../node_modules/@firebase/util/src/errors.ts","../node_modules/@firebase/util/src/obj.ts","../node_modules/@firebase/util/src/query.ts","../node_modules/@firebase/util/src/subscribe.ts","../node_modules/@firebase/util/src/compat.ts","../node_modules/@firebase/component/src/component.ts","../node_modules/@firebase/component/src/constants.ts","../node_modules/@firebase/component/src/provider.ts","../node_modules/@firebase/component/src/component_container.ts","../node_modules/@firebase/logger/src/logger.ts","../node_modules/@firebase/app/node_modules/idb/build/wrap-idb-value.js","../node_modules/@firebase/app/node_modules/idb/build/index.js","../node_modules/@firebase/app/src/platformLoggerService.ts","../node_modules/@firebase/app/src/logger.ts","../node_modules/@firebase/app/src/constants.ts","../node_modules/@firebase/app/src/internal.ts","../node_modules/@firebase/app/src/errors.ts","../node_modules/@firebase/app/src/firebaseApp.ts","../node_modules/@firebase/app/src/api.ts","../node_modules/@firebase/app/src/indexeddb.ts","../node_modules/@firebase/app/src/heartbeatService.ts","../node_modules/@firebase/app/src/registerCoreComponents.ts","../node_modules/@firebase/app/src/index.ts","../node_modules/firebase/app/index.ts","../node_modules/tslib/tslib.es6.js","../node_modules/@firebase/auth/src/core/errors.ts","../node_modules/@firebase/auth/src/core/util/log.ts","../node_modules/@firebase/auth/src/core/util/assert.ts","../node_modules/@firebase/auth/src/core/util/location.ts","../node_modules/@firebase/auth/src/core/util/navigator.ts","../node_modules/@firebase/auth/src/core/util/delay.ts","../node_modules/@firebase/auth/src/core/util/emulator.ts","../node_modules/@firebase/auth/src/core/util/fetch_provider.ts","../node_modules/@firebase/auth/src/api/errors.ts","../node_modules/@firebase/auth/src/api/index.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha.ts","../node_modules/@firebase/auth/src/api/authentication/recaptcha.ts","../node_modules/@firebase/auth/src/api/account_management/account.ts","../node_modules/@firebase/auth/src/core/util/time.ts","../node_modules/@firebase/auth/src/core/user/id_token_result.ts","../node_modules/@firebase/auth/src/core/user/invalidation.ts","../node_modules/@firebase/auth/src/core/user/proactive_refresh.ts","../node_modules/@firebase/auth/src/core/user/user_metadata.ts","../node_modules/@firebase/auth/src/core/user/reload.ts","../node_modules/@firebase/auth/src/core/user/token_manager.ts","../node_modules/@firebase/auth/src/api/authentication/token.ts","../node_modules/@firebase/auth/src/core/user/user_impl.ts","../node_modules/@firebase/auth/src/core/util/instantiator.ts","../node_modules/@firebase/auth/src/core/persistence/in_memory.ts","../node_modules/@firebase/auth/src/core/persistence/persistence_user_manager.ts","../node_modules/@firebase/auth/src/core/util/browser.ts","../node_modules/@firebase/auth/src/core/util/version.ts","../node_modules/@firebase/auth/src/core/auth/middleware.ts","../node_modules/@firebase/auth/src/core/auth/password_policy_impl.ts","../node_modules/@firebase/auth/src/core/auth/auth_impl.ts","../node_modules/@firebase/auth/src/api/password_policy/get_password_policy.ts","../node_modules/@firebase/auth/src/platform_browser/load_js.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.ts","../node_modules/@firebase/auth/src/core/auth/emulator.ts","../node_modules/@firebase/auth/src/core/credentials/auth_credential.ts","../node_modules/@firebase/auth/src/api/account_management/email_and_password.ts","../node_modules/@firebase/auth/src/api/authentication/email_and_password.ts","../node_modules/@firebase/auth/src/core/credentials/email.ts","../node_modules/@firebase/auth/src/api/authentication/email_link.ts","../node_modules/@firebase/auth/src/api/authentication/idp.ts","../node_modules/@firebase/auth/src/core/credentials/oauth.ts","../node_modules/@firebase/auth/src/api/authentication/sms.ts","../node_modules/@firebase/auth/src/core/credentials/phone.ts","../node_modules/@firebase/auth/src/core/action_code_url.ts","../node_modules/@firebase/auth/src/core/providers/email.ts","../node_modules/@firebase/auth/src/core/providers/federated.ts","../node_modules/@firebase/auth/src/core/providers/oauth.ts","../node_modules/@firebase/auth/src/core/providers/facebook.ts","../node_modules/@firebase/auth/src/core/providers/google.ts","../node_modules/@firebase/auth/src/core/providers/github.ts","../node_modules/@firebase/auth/src/core/providers/twitter.ts","../node_modules/@firebase/auth/src/core/user/user_credential_impl.ts","../node_modules/@firebase/auth/src/mfa/mfa_error.ts","../node_modules/@firebase/auth/src/core/user/link_unlink.ts","../node_modules/@firebase/auth/src/core/user/reauthenticate.ts","../node_modules/@firebase/auth/src/core/strategies/credential.ts","../node_modules/@firebase/auth/src/core/strategies/email_and_password.ts","../node_modules/@firebase/auth/src/mfa/mfa_user.ts","../node_modules/@firebase/auth/src/core/persistence/index.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/browser.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/local_storage.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/session_storage.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/receiver.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/promise.ts","../node_modules/@firebase/auth/src/core/util/event_id.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/sender.ts","../node_modules/@firebase/auth/src/platform_browser/auth_window.ts","../node_modules/@firebase/auth/src/platform_browser/util/worker.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/indexed_db.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_loader.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_verifier.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/phone.ts","../node_modules/@firebase/auth/src/api/account_management/mfa.ts","../node_modules/@firebase/auth/src/api/authentication/mfa.ts","../node_modules/@firebase/auth/src/platform_browser/providers/phone.ts","../node_modules/@firebase/auth/src/core/util/resolver.ts","../node_modules/@firebase/auth/src/core/strategies/idp.ts","../node_modules/@firebase/auth/src/core/strategies/abstract_popup_redirect_operation.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/popup.ts","../node_modules/@firebase/auth/src/core/strategies/redirect.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/redirect.ts","../node_modules/@firebase/auth/src/core/auth/auth_event_manager.ts","../node_modules/@firebase/auth/src/core/util/validate_origin.ts","../node_modules/@firebase/auth/src/api/project_config/get_project_config.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/gapi.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/iframe.ts","../node_modules/@firebase/auth/src/platform_browser/util/popup.ts","../node_modules/@firebase/auth/src/core/util/handler.ts","../node_modules/@firebase/auth/src/platform_browser/popup_redirect.ts","../node_modules/@firebase/auth/src/core/auth/firebase_internal.ts","../node_modules/@firebase/auth/src/platform_browser/index.ts","../node_modules/@firebase/auth/src/core/auth/initialize.ts","../node_modules/@firebase/auth/src/core/index.ts","../node_modules/@firebase/auth/src/core/auth/register.ts","firebase-config.js","components/admin/menu/admin-menu.js","components/admin/blog-manager/admin-blog-manager.js","components/admin/document-manager/admin-document-manager.js","components/admin/main/admin-main.js","components/admin/login/admin-login.js","components/admin/login/protected-route.js","components/fun/friendsgiving/friends-giving.js","App.js","reportWebVitals.js","components/footer/footer.js","components/footer/footer.html.js","index.js"],"sourcesContent":["import type {AnySchemaObject} from \"./types\"\nimport AjvCore from \"./core\"\nimport draft7Vocabularies from \"./vocabularies/draft7\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport * as draft7MetaSchema from \"./refs/json-schema-draft-07.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\"\n\nexport class Ajv extends AjvCore {\n _addVocabularies(): void {\n super._addVocabularies()\n draft7Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n if (!this.opts.meta) return\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false)\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv\nmodule.exports.Ajv = Ajv\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n SchemaValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class _CodeOrName {\n abstract readonly str: string\n abstract readonly names: UsedNames\n abstract toString(): string\n abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n readonly str: string\n constructor(s: string) {\n super()\n if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n this.str = s\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n return false\n }\n\n get names(): UsedNames {\n return {[this.str]: 1}\n }\n}\n\nexport class _Code extends _CodeOrName {\n readonly _items: readonly CodeItem[]\n private _str?: string\n private _names?: UsedNames\n\n constructor(code: string | readonly CodeItem[]) {\n super()\n this._items = typeof code === \"string\" ? [code] : code\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n if (this._items.length > 1) return false\n const item = this._items[0]\n return item === \"\" || item === '\"\"'\n }\n\n get str(): string {\n return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n }\n\n get names(): UsedNames {\n return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n return names\n }, {}))\n }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n const code: CodeItem[] = [strs[0]]\n let i = 0\n while (i < args.length) {\n addCodeArg(code, args[i])\n code.push(strs[++i])\n }\n return new _Code(code)\n}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n const expr: CodeItem[] = [safeStringify(strs[0])]\n let i = 0\n while (i < args.length) {\n expr.push(plus)\n addCodeArg(expr, args[i])\n expr.push(plus, safeStringify(strs[++i]))\n }\n optimize(expr)\n return new _Code(expr)\n}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n if (arg instanceof _Code) code.push(...arg._items)\n else if (arg instanceof Name) code.push(arg)\n else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\n let i = 1\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1])\n if (res !== undefined) {\n expr.splice(i - 1, 3, res)\n continue\n }\n expr[i++] = \"+\"\n }\n i++\n }\n}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n if (b === '\"\"') return a\n if (a === '\"\"') return b\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"') return\n if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n return\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n return new _Code(`${key}`)\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n return new _Code(rx.toString())\n}\n","import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n GT: new _Code(\">\"),\n GTE: new _Code(\">=\"),\n LT: new _Code(\"<\"),\n LTE: new _Code(\"<=\"),\n EQ: new _Code(\"===\"),\n NEQ: new _Code(\"!==\"),\n NOT: new _Code(\"!\"),\n OR: new _Code(\"||\"),\n AND: new _Code(\"&&\"),\n ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n abstract readonly names: UsedNames\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n return this\n }\n\n optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n return this\n }\n\n // get count(): number {\n // return 1\n // }\n}\n\nclass Def extends Node {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private rhs?: SafeExpr\n ) {\n super()\n }\n\n render({es5, _n}: CGOptions): string {\n const varKind = es5 ? varKinds.var : this.varKind\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n return `${varKind} ${this.name}${rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!names[this.name.str]) return\n if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n }\n}\n\nclass Assign extends Node {\n constructor(\n readonly lhs: Code,\n public rhs: SafeExpr,\n private readonly sideEffects?: boolean\n ) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} = ${this.rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n return addExprNames(names, this.rhs)\n }\n}\n\nclass AssignOp extends Assign {\n constructor(\n lhs: Code,\n private readonly op: Code,\n rhs: SafeExpr,\n sideEffects?: boolean\n ) {\n super(lhs, rhs, sideEffects)\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n }\n}\n\nclass Label extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label: Name) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.label}:` + _n\n }\n}\n\nclass Break extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label?: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n const label = this.label ? ` ${this.label}` : \"\"\n return `break${label};` + _n\n }\n}\n\nclass Throw extends Node {\n constructor(readonly error: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `throw ${this.error};` + _n\n }\n\n get names(): UsedNames {\n return this.error.names\n }\n}\n\nclass AnyCode extends Node {\n constructor(private code: SafeExpr) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.code};` + _n\n }\n\n optimizeNodes(): this | undefined {\n return `${this.code}` ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n this.code = optimizeExpr(this.code, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.code instanceof _CodeOrName ? this.code.names : {}\n }\n}\n\nabstract class ParentNode extends Node {\n constructor(readonly nodes: ChildNode[] = []) {\n super()\n }\n\n render(opts: CGOptions): string {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n }\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n const n = nodes[i].optimizeNodes()\n if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n else if (n) nodes[i] = n\n else nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i]\n if (n.optimizeNames(names, constants)) continue\n subtractNames(names, n.names)\n nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n get names(): UsedNames {\n return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n }\n\n // get count(): number {\n // return this.nodes.reduce((c, n) => c + n.count, 1)\n // }\n}\n\nabstract class BlockNode extends ParentNode {\n render(opts: CGOptions): string {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n static readonly kind = \"if\"\n else?: If | Else\n constructor(\n private condition: Code | boolean,\n nodes?: ChildNode[]\n ) {\n super(nodes)\n }\n\n render(opts: CGOptions): string {\n let code = `if(${this.condition})` + super.render(opts)\n if (this.else) code += \"else \" + this.else.render(opts)\n return code\n }\n\n optimizeNodes(): If | ChildNode[] | undefined {\n super.optimizeNodes()\n const cond = this.condition\n if (cond === true) return this.nodes // else is ignored here\n let e = this.else\n if (e) {\n const ns = e.optimizeNodes()\n e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)\n }\n if (e) {\n if (cond === false) return e instanceof If ? e : e.nodes\n if (this.nodes.length) return this\n return new If(not(cond), e instanceof If ? [e] : e.nodes)\n }\n if (cond === false || !this.nodes.length) return undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n this.else = this.else?.optimizeNames(names, constants)\n if (!(super.optimizeNames(names, constants) || this.else)) return\n this.condition = optimizeExpr(this.condition, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n addExprNames(names, this.condition)\n if (this.else) addNames(names, this.else.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.else?.count || 0)\n // }\n}\n\nabstract class For extends BlockNode {\n static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n constructor(private iteration: Code) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.iteration})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iteration = optimizeExpr(this.iteration, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iteration.names)\n }\n}\n\nclass ForRange extends For {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private readonly from: SafeExpr,\n private readonly to: SafeExpr\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const varKind = opts.es5 ? varKinds.var : this.varKind\n const {name, from, to} = this\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n }\n\n get names(): UsedNames {\n const names = addExprNames(super.names, this.from)\n return addExprNames(names, this.to)\n }\n}\n\nclass ForIter extends For {\n constructor(\n private readonly loop: \"of\" | \"in\",\n private readonly varKind: Name,\n private readonly name: Name,\n private iterable: Code\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iterable = optimizeExpr(this.iterable, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iterable.names)\n }\n}\n\nclass Func extends BlockNode {\n static readonly kind = \"func\"\n constructor(\n public name: Name,\n public args: Code,\n public async?: boolean\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const _async = this.async ? \"async \" : \"\"\n return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n }\n}\n\nclass Return extends ParentNode {\n static readonly kind = \"return\"\n\n render(opts: CGOptions): string {\n return \"return \" + super.render(opts)\n }\n}\n\nclass Try extends BlockNode {\n catch?: Catch\n finally?: Finally\n\n render(opts: CGOptions): string {\n let code = \"try\" + super.render(opts)\n if (this.catch) code += this.catch.render(opts)\n if (this.finally) code += this.finally.render(opts)\n return code\n }\n\n optimizeNodes(): this {\n super.optimizeNodes()\n this.catch?.optimizeNodes() as Catch | undefined\n this.finally?.optimizeNodes() as Finally | undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n super.optimizeNames(names, constants)\n this.catch?.optimizeNames(names, constants)\n this.finally?.optimizeNames(names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n if (this.catch) addNames(names, this.catch.names)\n if (this.finally) addNames(names, this.finally.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n // }\n}\n\nclass Catch extends BlockNode {\n static readonly kind = \"catch\"\n constructor(readonly error: Name) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `catch(${this.error})` + super.render(opts)\n }\n}\n\nclass Finally extends BlockNode {\n static readonly kind = \"finally\"\n render(opts: CGOptions): string {\n return \"finally\" + super.render(opts)\n }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n | typeof If\n | typeof Else\n | typeof For\n | typeof Func\n | typeof Return\n | typeof Catch\n | typeof Finally\n\ntype Constants = Record\n\nexport interface CodeGenOptions {\n es5?: boolean\n lines?: boolean\n ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n readonly _scope: Scope\n readonly _extScope: ValueScope\n readonly _values: ScopeValueSets = {}\n private readonly _nodes: ParentNode[]\n private readonly _blockStarts: number[] = []\n private readonly _constants: Constants = {}\n private readonly opts: CGOptions\n\n constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n this._extScope = extScope\n this._scope = new Scope({parent: extScope})\n this._nodes = [new Root()]\n }\n\n toString(): string {\n return this._root.render(this.opts)\n }\n\n // returns unique name in the internal scope\n name(prefix: string): Name {\n return this._scope.name(prefix)\n }\n\n // reserves unique name in the external scope\n scopeName(prefix: string): ValueScopeName {\n return this._extScope.name(prefix)\n }\n\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\n const name = this._extScope.value(prefixOrName, value)\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())\n vs.add(name)\n return name\n }\n\n getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n return this._extScope.getValue(prefix, keyOrRef)\n }\n\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName: Name): Code {\n return this._extScope.scopeRefs(scopeName, this._values)\n }\n\n scopeCode(): Code {\n return this._extScope.scopeCode(this._values)\n }\n\n private _def(\n varKind: Name,\n nameOrPrefix: Name | string,\n rhs?: SafeExpr,\n constant?: boolean\n ): Name {\n const name = this._scope.toName(nameOrPrefix)\n if (rhs !== undefined && constant) this._constants[name.str] = rhs\n this._leafNode(new Def(varKind, name, rhs))\n return name\n }\n\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n }\n\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n }\n\n // `var` declaration with optional assignment\n var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n }\n\n // assignment code\n assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n return this._leafNode(new Assign(lhs, rhs, sideEffects))\n }\n\n // `+=` code\n add(lhs: Code, rhs: SafeExpr): CodeGen {\n return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n }\n\n // appends passed SafeExpr to code or executes Block\n code(c: Block | SafeExpr): CodeGen {\n if (typeof c == \"function\") c()\n else if (c !== nil) this._leafNode(new AnyCode(c))\n return this\n }\n\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n const code: CodeItem[] = [\"{\"]\n for (const [key, value] of keyValues) {\n if (code.length > 1) code.push(\",\")\n code.push(key)\n if (key !== value || this.opts.es5) {\n code.push(\":\")\n addCodeArg(code, value)\n }\n }\n code.push(\"}\")\n return new _Code(code)\n }\n\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n this._blockNode(new If(condition))\n\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf()\n } else if (thenBody) {\n this.code(thenBody).endIf()\n } else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body')\n }\n return this\n }\n\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition: Code | boolean): CodeGen {\n return this._elseNode(new If(condition))\n }\n\n // `else` clause - only valid after `if` or `else if` clauses\n else(): CodeGen {\n return this._elseNode(new Else())\n }\n\n // end `if` statement (needed if gen.if was used only with condition)\n endIf(): CodeGen {\n return this._endBlockNode(If, Else)\n }\n\n private _for(node: For, forBody?: Block): CodeGen {\n this._blockNode(node)\n if (forBody) this.code(forBody).endFor()\n return this\n }\n\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration: Code, forBody?: Block): CodeGen {\n return this._for(new ForLoop(iteration), forBody)\n }\n\n // `for` statement for a range of values\n forRange(\n nameOrPrefix: Name | string,\n from: SafeExpr,\n to: SafeExpr,\n forBody: (index: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n }\n\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(\n nameOrPrefix: Name | string,\n iterable: Code,\n forBody: (item: Name) => void,\n varKind: Code = varKinds.const\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n if (this.opts.es5) {\n const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n this.var(name, _`${arr}[${i}]`)\n forBody(name)\n })\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n }\n\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(\n nameOrPrefix: Name | string,\n obj: Code,\n forBody: (item: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n ): CodeGen {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)\n }\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name))\n }\n\n // end `for` loop\n endFor(): CodeGen {\n return this._endBlockNode(For)\n }\n\n // `label` statement\n label(label: Name): CodeGen {\n return this._leafNode(new Label(label))\n }\n\n // `break` statement\n break(label?: Code): CodeGen {\n return this._leafNode(new Break(label))\n }\n\n // `return` statement\n return(value: Block | SafeExpr): CodeGen {\n const node = new Return()\n this._blockNode(node)\n this.code(value)\n if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n return this._endBlockNode(Return)\n }\n\n // `try` statement\n try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n if (!catchCode && !finallyCode) throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"')\n const node = new Try()\n this._blockNode(node)\n this.code(tryBody)\n if (catchCode) {\n const error = this.name(\"e\")\n this._currNode = node.catch = new Catch(error)\n catchCode(error)\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally()\n this.code(finallyCode)\n }\n return this._endBlockNode(Catch, Finally)\n }\n\n // `throw` statement\n throw(error: Code): CodeGen {\n return this._leafNode(new Throw(error))\n }\n\n // start self-balancing block\n block(body?: Block, nodeCount?: number): CodeGen {\n this._blockStarts.push(this._nodes.length)\n if (body) this.code(body).endBlock(nodeCount)\n return this\n }\n\n // end the current self-balancing block\n endBlock(nodeCount?: number): CodeGen {\n const len = this._blockStarts.pop()\n if (len === undefined) throw new Error(\"CodeGen: not in self-balancing block\")\n const toClose = this._nodes.length - len\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)\n }\n this._nodes.length = len\n return this\n }\n\n // `function` heading (or definition if funcBody is passed)\n func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n this._blockNode(new Func(name, args, async))\n if (funcBody) this.code(funcBody).endFunc()\n return this\n }\n\n // end function definition\n endFunc(): CodeGen {\n return this._endBlockNode(Func)\n }\n\n optimize(n = 1): void {\n while (n-- > 0) {\n this._root.optimizeNodes()\n this._root.optimizeNames(this._root.names, this._constants)\n }\n }\n\n private _leafNode(node: LeafNode): CodeGen {\n this._currNode.nodes.push(node)\n return this\n }\n\n private _blockNode(node: StartBlockNode): void {\n this._currNode.nodes.push(node)\n this._nodes.push(node)\n }\n\n private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\n const n = this._currNode\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop()\n return this\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`)\n }\n\n private _elseNode(node: If | Else): CodeGen {\n const n = this._currNode\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"')\n }\n this._currNode = n.else = node\n return this\n }\n\n private get _root(): Root {\n return this._nodes[0] as Root\n }\n\n private get _currNode(): ParentNode {\n const ns = this._nodes\n return ns[ns.length - 1]\n }\n\n private set _currNode(node: ParentNode) {\n const ns = this._nodes\n ns[ns.length - 1] = node\n }\n\n // get nodeCount(): number {\n // return this._root.count\n // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n if (expr instanceof Name) return replaceName(expr)\n if (!canOptimize(expr)) return expr\n return new _Code(\n expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n if (c instanceof Name) c = replaceName(c)\n if (c instanceof _Code) items.push(...c._items)\n else items.push(c)\n return items\n }, [])\n )\n\n function replaceName(n: Name): SafeExpr {\n const c = constants[n.str]\n if (c === undefined || names[n.str] !== 1) return n\n delete names[n.str]\n return c\n }\n\n function canOptimize(e: SafeExpr): e is _Code {\n return (\n e instanceof _Code &&\n e._items.some(\n (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n )\n )\n }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n return x instanceof Name ? x : _`(${x})`\n}\n","import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n prefix: string\n index: number\n}\n\nexport interface NameValue {\n ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n readonly value?: NameValue\n constructor(name: ValueScopeName) {\n super(`CodeGen: \"code\" for ${name} not defined`)\n this.value = name.value\n }\n}\n\ninterface ScopeOptions {\n prefixes?: Set\n parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n scope: ScopeStore\n es5?: boolean\n lines?: boolean\n}\n\nexport type ScopeStore = Record\n\ntype ScopeValues = {\n [Prefix in string]?: Map\n}\n\nexport type ScopeValueSets = {\n [Prefix in string]?: Set\n}\n\nexport enum UsedValueState {\n Started,\n Completed,\n}\n\nexport type UsedScopeValues = {\n [Prefix in string]?: Map\n}\n\nexport const varKinds = {\n const: new Name(\"const\"),\n let: new Name(\"let\"),\n var: new Name(\"var\"),\n}\n\nexport class Scope {\n protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n protected readonly _prefixes?: Set\n protected readonly _parent?: Scope\n\n constructor({prefixes, parent}: ScopeOptions = {}) {\n this._prefixes = prefixes\n this._parent = parent\n }\n\n toName(nameOrPrefix: Name | string): Name {\n return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n }\n\n name(prefix: string): Name {\n return new Name(this._newName(prefix))\n }\n\n protected _newName(prefix: string): string {\n const ng = this._names[prefix] || this._nameGroup(prefix)\n return `${prefix}${ng.index++}`\n }\n\n private _nameGroup(prefix: string): NameGroup {\n if (this._parent?._prefixes?.has(prefix) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`)\n }\n return (this._names[prefix] = {prefix, index: 0})\n }\n}\n\ninterface ScopePath {\n property: string\n itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n readonly prefix: string\n value?: NameValue\n scopePath?: Code\n\n constructor(prefix: string, nameStr: string) {\n super(nameStr)\n this.prefix = prefix\n }\n\n setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n this.value = value\n this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n protected readonly _values: ScopeValues = {}\n protected readonly _scope: ScopeStore\n readonly opts: VSOptions\n\n constructor(opts: ValueScopeOptions) {\n super(opts)\n this._scope = opts.scope\n this.opts = {...opts, _n: opts.lines ? line : nil}\n }\n\n get(): ScopeStore {\n return this._scope\n }\n\n name(prefix: string): ValueScopeName {\n return new ValueScopeName(prefix, this._newName(prefix))\n }\n\n value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n const name = this.toName(nameOrPrefix) as ValueScopeName\n const {prefix} = name\n const valueKey = value.key ?? value.ref\n let vs = this._values[prefix]\n if (vs) {\n const _name = vs.get(valueKey)\n if (_name) return _name\n } else {\n vs = this._values[prefix] = new Map()\n }\n vs.set(valueKey, name)\n\n const s = this._scope[prefix] || (this._scope[prefix] = [])\n const itemIndex = s.length\n s[itemIndex] = value.ref\n name.setValue(value, {property: prefix, itemIndex})\n return name\n }\n\n getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n const vs = this._values[prefix]\n if (!vs) return\n return vs.get(keyOrRef)\n }\n\n scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n return this._reduceValues(values, (name: ValueScopeName) => {\n if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return _`${scopeName}${name.scopePath}`\n })\n }\n\n scopeCode(\n values: ScopeValues | ScopeValueSets = this._values,\n usedValues?: UsedScopeValues,\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n return this._reduceValues(\n values,\n (name: ValueScopeName) => {\n if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return name.value.code\n },\n usedValues,\n getCode\n )\n }\n\n private _reduceValues(\n values: ScopeValues | ScopeValueSets,\n valueCode: (n: ValueScopeName) => Code | undefined,\n usedValues: UsedScopeValues = {},\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n let code: Code = nil\n for (const prefix in values) {\n const vs = values[prefix]\n if (!vs) continue\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n vs.forEach((name: ValueScopeName) => {\n if (nameSet.has(name)) return\n nameSet.set(name, UsedValueState.Started)\n let c = valueCode(name)\n if (c) {\n const def = this.opts.es5 ? varKinds.var : varKinds.const\n code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n } else if ((c = getCode?.(name))) {\n code = _`${code}${c}${this.opts._n}`\n } else {\n throw new ValueError(name)\n }\n nameSet.set(name, UsedValueState.Completed)\n })\n }\n return code\n }\n}\n","import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n message: ({keyword, schemaType}) =>\n schemaType\n ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n instancePath?: Code\n schemaPath?: string\n parentSchema?: boolean\n}\n\nexport function reportError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths,\n overrideAllErrors?: boolean\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n if (overrideAllErrors ?? (compositeRule || allErrors)) {\n addError(gen, errObj)\n } else {\n returnErrors(it, _`[${errObj}]`)\n }\n}\n\nexport function reportExtraError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n addError(gen, errObj)\n if (!(compositeRule || allErrors)) {\n returnErrors(it, N.vErrors)\n }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n gen.assign(N.errors, errsCount)\n gen.if(_`${N.vErrors} !== null`, () =>\n gen.if(\n errsCount,\n () => gen.assign(_`${N.vErrors}.length`, errsCount),\n () => gen.assign(N.vErrors, null)\n )\n )\n}\n\nexport function extendErrors({\n gen,\n keyword,\n schemaValue,\n data,\n errsCount,\n it,\n}: KeywordErrorCxt): void {\n /* istanbul ignore if */\n if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n const err = gen.name(\"err\")\n gen.forRange(\"i\", errsCount, N.errors, (i) => {\n gen.const(err, _`${N.vErrors}[${i}]`)\n gen.if(_`${err}.instancePath === undefined`, () =>\n gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n )\n gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n if (it.opts.verbose) {\n gen.assign(_`${err}.schema`, schemaValue)\n gen.assign(_`${err}.data`, data)\n }\n })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n const err = gen.const(\"err\", errObj)\n gen.if(\n _`${N.vErrors} === null`,\n () => gen.assign(N.vErrors, _`[${err}]`),\n _`${N.vErrors}.push(${err})`\n )\n gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n const {gen, validateName, schemaEnv} = it\n if (schemaEnv.$async) {\n gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n } else {\n gen.assign(_`${validateName}.errors`, errs)\n gen.return(false)\n }\n}\n\nconst E = {\n keyword: new Name(\"keyword\"),\n schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n params: new Name(\"params\"),\n propertyName: new Name(\"propertyName\"),\n message: new Name(\"message\"),\n schema: new Name(\"schema\"),\n parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths?: ErrorPaths\n): Code {\n const {createErrors} = cxt.it\n if (createErrors === false) return _`{}`\n return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths: ErrorPaths = {}\n): Code {\n const {gen, it} = cxt\n const keyValues: [Name, SafeExpr | string][] = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ]\n extraErrorProps(cxt, error, keyValues)\n return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n const instPath = instancePath\n ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n : errorPath\n return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n if (schemaPath) {\n schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n }\n return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n cxt: KeywordErrorCxt,\n {params, message}: KeywordErrorDefinition,\n keyValues: [Name, SafeExpr | string][]\n): void {\n const {keyword, data, schemaValue, it} = cxt\n const {opts, propertyName, topSchemaRef, schemaPath} = it\n keyValues.push(\n [E.keyword, keyword],\n [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n )\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n }\n if (opts.verbose) {\n keyValues.push(\n [E.schema, schemaValue],\n [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n [N.data, data]\n )\n }\n if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n","import type {\n AnySchema,\n AnySchemaObject,\n AnyValidateFunction,\n AsyncValidateFunction,\n EvaluatedProperties,\n EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport {URIComponent} from \"fast-uri\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n readonly data: Name // Name with reference to the current part of data instance\n readonly parentData: Name // should be used in keywords modifying data\n readonly parentDataProperty: Code | number // should be used in keywords modifying data\n readonly dataNames: Name[]\n readonly dataPathArr: (Code | number)[]\n readonly dataLevel: number // the level of the currently validated data,\n // it can be used to access both the property names and the data on all levels from the top.\n dataTypes: JSONType[] // data types applied to the current part of data instance\n definedProperties: Set // set of properties to keep track of for required checks\n readonly topSchemaRef: Code\n readonly validateName: Name\n evaluated?: Name\n readonly ValidationError?: Name\n readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n readonly schemaEnv: SchemaEnv\n readonly rootId: string\n baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n readonly errSchemaPath: string // this is actual string, should not be changed to Code\n readonly errorPath: Code\n readonly propertyName?: Name\n readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n readonly createErrors?: boolean\n readonly opts: InstanceOptions // Ajv instance option.\n readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root?: SchemaEnv\n readonly baseId?: string\n readonly schemaPath?: string\n readonly localRefs?: LocalRefs\n readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root: SchemaEnv\n baseId: string // TODO possibly, it should be readonly\n schemaPath?: string\n localRefs?: LocalRefs\n readonly meta?: boolean\n readonly $async?: boolean // true if the current schema is asynchronous.\n readonly refs: SchemaRefs = {}\n readonly dynamicAnchors: {[Ref in string]?: true} = {}\n validate?: AnyValidateFunction\n validateName?: ValueScopeName\n serialize?: (data: unknown) => string\n serializeName?: ValueScopeName\n parse?: (data: string) => unknown\n parseName?: ValueScopeName\n\n constructor(env: SchemaEnvArgs) {\n let schema: AnySchemaObject | undefined\n if (typeof env.schema == \"object\") schema = env.schema\n this.schema = env.schema\n this.schemaId = env.schemaId\n this.root = env.root || this\n this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n this.schemaPath = env.schemaPath\n this.localRefs = env.localRefs\n this.meta = env.meta\n this.$async = schema?.$async\n this.refs = {}\n }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch)\n if (_sch) return _sch\n const rootId = getFullPath(this.opts.uriResolver, sch.root.baseId) // TODO if getFullPath removed 1 tests fails\n const {es5, lines} = this.opts.code\n const {ownProperties} = this.opts\n const gen = new CodeGen(this.scope, {es5, lines, ownProperties})\n let _ValidationError\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: ValidationError,\n code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n })\n }\n\n const validateName = gen.scopeName(\"validate\")\n sch.validateName = validateName\n\n const schemaCxt: SchemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: N.data,\n parentData: N.parentData,\n parentDataProperty: N.parentDataProperty,\n dataNames: [N.data],\n dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\n \"schema\",\n this.opts.code.source === true\n ? {ref: sch.schema, code: stringify(sch.schema)}\n : {ref: sch.schema}\n ),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: _`\"\"`,\n opts: this.opts,\n self: this,\n }\n\n let sourceCode: string | undefined\n try {\n this._compilations.add(sch)\n validateFunctionCode(schemaCxt)\n gen.optimize(this.opts.code.optimize)\n // gen.optimize(1)\n const validateCode = gen.toString()\n sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n this.scope.value(validateName, {ref: validate})\n\n validate.errors = null\n validate.schema = sch.schema\n validate.schemaEnv = sch\n if (sch.$async) (validate as AsyncValidateFunction).$async = true\n if (this.opts.code.source === true) {\n validate.source = {validateName, validateCode, scopeValues: gen._values}\n }\n if (this.opts.unevaluated) {\n const {props, items} = schemaCxt\n validate.evaluated = {\n props: props instanceof Name ? undefined : props,\n items: items instanceof Name ? undefined : items,\n dynamicProps: props instanceof Name,\n dynamicItems: items instanceof Name,\n }\n if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n }\n sch.validate = validate\n return sch\n } catch (e) {\n delete sch.validate\n delete sch.validateName\n if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e\n } finally {\n this._compilations.delete(sch)\n }\n}\n\nexport function resolveRef(\n this: Ajv,\n root: SchemaEnv,\n baseId: string,\n ref: string\n): AnySchema | SchemaEnv | undefined {\n ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n const schOrFunc = root.refs[ref]\n if (schOrFunc) return schOrFunc\n\n let _sch = resolve.call(this, root, ref)\n if (_sch === undefined) {\n const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n const {schemaId} = this.opts\n if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n }\n\n if (_sch === undefined) return\n return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv)) return sch\n }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n this: Ajv,\n root: SchemaEnv, // information about the root schema for the current schema\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n let sch\n while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n this: Ajv,\n root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n const p = this.opts.uriResolver.parse(ref)\n const refPath = _getFullPath(this.opts.uriResolver, p)\n let baseId = getFullPath(this.opts.uriResolver, root.baseId, undefined)\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root)\n }\n\n const id = normalizeId(refPath)\n const schOrRef = this.refs[id] || this.schemas[id]\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef)\n if (typeof sch?.schema !== \"object\") return\n return getJsonPointer.call(this, p, sch)\n }\n\n if (typeof schOrRef?.schema !== \"object\") return\n if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n if (id === normalizeId(ref)) {\n const {schema} = schOrRef\n const {schemaId} = this.opts\n const schId = schema[schemaId]\n if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n return new SchemaEnv({schema, schemaId, root, baseId})\n }\n return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n])\n\nfunction getJsonPointer(\n this: Ajv,\n parsedRef: URIComponent,\n {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n if (parsedRef.fragment?.[0] !== \"/\") return\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\") return\n const partSchema = schema[unescapeFragment(part)]\n if (partSchema === undefined) return\n schema = partSchema\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId]\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n }\n }\n let env: SchemaEnv | undefined\n if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = resolveUrl(this.opts.uriResolver, baseId, schema.$ref)\n env = resolveSchema.call(this, root, $ref)\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const {schemaId} = this.opts\n env = env || new SchemaEnv({schema, schemaId, root, baseId})\n if (env.schema !== env.root.schema) return env\n return undefined\n}\n","import {Name} from \"./codegen\"\n\nconst names = {\n // validation function arguments\n data: new Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new Name(\"instancePath\"),\n parentData: new Name(\"parentData\"),\n parentDataProperty: new Name(\"parentDataProperty\"),\n rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new Name(\"vErrors\"), // null or array of validation errors\n errors: new Name(\"errors\"), // counter of validation errors\n this: new Name(\"this\"),\n // \"globals\"\n self: new Name(\"self\"),\n scope: new Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new Name(\"json\"),\n jsonPos: new Name(\"jsonPos\"),\n jsonLen: new Name(\"jsonLen\"),\n jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n","import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n readonly missingRef: string\n readonly missingSchema: string\n\n constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n this.missingRef = resolveUrl(resolver, baseId, ref)\n this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n }\n}\n","import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponent} from \"fast-uri\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n if (typeof schema == \"boolean\") return true\n if (limit === true) return !hasRef(schema)\n if (!limit) return false\n return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key)) return true\n const sch = schema[key]\n if (Array.isArray(sch) && sch.some(hasRef)) return true\n if (typeof sch == \"object\" && hasRef(sch)) return true\n }\n return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n let count = 0\n for (const key in schema) {\n if (key === \"$ref\") return Infinity\n count++\n if (SIMPLE_INLINED.has(key)) continue\n if (typeof schema[key] == \"object\") {\n eachItem(schema[key], (sch) => (count += countKeys(sch)))\n }\n if (count === Infinity) return Infinity\n }\n return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n if (normalize !== false) id = normalizeId(id)\n const p = resolver.parse(id)\n return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponent): string {\n const serialized = resolver.serialize(p)\n return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n id = normalizeId(id)\n return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n if (typeof schema == \"boolean\") return {}\n const {schemaId, uriResolver} = this.opts\n const schId = normalizeId(schema[schemaId] || baseId)\n const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n const pathPrefix = getFullPath(uriResolver, schId, false)\n const localRefs: LocalRefs = {}\n const schemaRefs: Set = new Set()\n\n traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined) return\n const fullPath = pathPrefix + jsonPtr\n let innerBaseId = baseIds[parentJsonPtr]\n if (typeof sch[schemaId] == \"string\") innerBaseId = addRef.call(this, sch[schemaId])\n addAnchor.call(this, sch.$anchor)\n addAnchor.call(this, sch.$dynamicAnchor)\n baseIds[jsonPtr] = innerBaseId\n\n function addRef(this: Ajv, ref: string): string {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref)\n if (schemaRefs.has(ref)) throw ambiguos(ref)\n schemaRefs.add(ref)\n let schOrRef = this.refs[ref]\n if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref)\n } else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref)\n localRefs[ref] = sch\n } else {\n this.refs[ref] = fullPath\n }\n }\n return ref\n }\n\n function addAnchor(this: Ajv, anchor: unknown): void {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n addRef.call(this, `#${anchor}`)\n }\n }\n })\n\n return localRefs\n\n function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n }\n\n function ambiguos(ref: string): Error {\n return new Error(`reference \"${ref}\" resolves to more than one schema`)\n }\n}\n","import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = (typeof _jsonTypes)[number]\n\nconst jsonTypes: Set = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n rules: RuleGroup[]\n post: RuleGroup\n all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n types: ValidationTypes\n}\n\nexport interface RuleGroup {\n type?: JSONType\n rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n keyword: string\n definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\n number: {type: \"number\", rules: []},\n string: {type: \"string\", rules: []},\n array: {type: \"array\", rules: []},\n object: {type: \"object\", rules: []},\n }\n return {\n types: {...groups, integer: true, boolean: true, null: true},\n rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object],\n post: {rules: []},\n all: {},\n keywords: {},\n }\n}\n","import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash(arr: T[]): {[K in T]?: true} {\n const hash: {[K in T]?: true} = {}\n for (const item of arr) hash[item] = true\n return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n if (typeof schema == \"boolean\") return schema\n if (Object.keys(schema).length === 0) return true\n checkUnknownRules(it, schema)\n return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n const {opts, self} = it\n if (!opts.strictSchema) return\n if (typeof schema === \"boolean\") return\n const rules = self.RULES.keywords\n for (const key in schema) {\n if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n }\n}\n\nexport function schemaHasRules(\n schema: AnySchema,\n rules: {[Key in string]?: boolean | Rule}\n): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (rules[key]) return true\n return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n return false\n}\n\nexport function schemaRefOrVal(\n {topSchemaRef, schemaPath}: SchemaObjCxt,\n schema: unknown,\n keyword: string,\n $data?: string | false\n): Code | number | boolean {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n if (typeof schema == \"string\") return _`${schema}`\n }\n return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n if (typeof str == \"number\") return `${str}`\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem(xs: T | T[], f: (x: T) => void): void {\n if (Array.isArray(xs)) {\n for (const x of xs) f(x)\n } else {\n f(xs)\n }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc = (\n gen: CodeGen,\n from: Name | T,\n to: Name | Exclude | undefined,\n toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs {\n mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n mergeToName: (gen: CodeGen, from: T, to: Name) => void\n mergeValues: (from: T, to: Exclude) => T\n resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated({\n mergeNames,\n mergeToName,\n mergeValues,\n resultToName,\n}: MakeMergeFuncArgs): MergeEvaluatedFunc {\n return (gen, from, to, toName) => {\n const res =\n to === undefined\n ? from\n : to instanceof Name\n ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to)\n return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n }\n}\n\ninterface MergeEvaluated {\n props: MergeEvaluatedFunc\n items: MergeEvaluatedFunc\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n gen.if(\n _`${from} === true`,\n () => gen.assign(to, true),\n () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n )\n }),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true)\n } else {\n gen.assign(to, _`${to} || {}`)\n setEvaluated(gen, to, from)\n }\n }),\n mergeValues: (from, to) => (from === true ? true : {...from, ...to}),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () =>\n gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n if (ps === true) return gen.var(\"props\", true)\n const props = gen.var(\"props\", _`{}`)\n if (ps !== undefined) setEvaluated(gen, props, ps)\n return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n })\n}\n\nexport enum Type {\n Num,\n Str,\n}\n\nexport function getErrorPath(\n dataProp: Name | string | number,\n dataPropType?: Type,\n jsPropertySyntax?: boolean\n): Code | string {\n // let path\n if (dataProp instanceof Name) {\n const isNumber = dataPropType === Type.Num\n return jsPropertySyntax\n ? isNumber\n ? _`\"[\" + ${dataProp} + \"]\"`\n : _`\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? _`\"/\" + ${dataProp}`\n : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n it: SchemaCxt,\n msg: string,\n mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n if (!mode) return\n msg = `strict mode: ${msg}`\n if (mode === true) throw new Error(msg)\n it.self.logger.warn(msg)\n}\n","import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n {schema, self}: SchemaObjCxt,\n type: JSONType\n): boolean | undefined {\n const group = self.RULES.types[type]\n return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n return (\n schema[rule.keyword] !== undefined ||\n rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n )\n}\n","import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n const {gen, schema, validateName} = it\n if (schema === false) {\n falseSchemaError(it, false)\n } else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(N.data)\n } else {\n gen.assign(_`${validateName}.errors`, null)\n gen.return(true)\n }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n const {gen, schema} = it\n if (schema === false) {\n gen.var(valid, false) // TODO var\n falseSchemaError(it)\n } else {\n gen.var(valid, true) // TODO var\n }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n const {gen, data} = it\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt: KeywordErrorCxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n }\n reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n","import type {\n KeywordErrorDefinition,\n KeywordErrorCxt,\n ErrorObject,\n AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n Correct,\n Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n const types = getJSONTypes(schema.type)\n const hasNull = types.includes(\"null\")\n if (hasNull) {\n if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\n } else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"')\n }\n if (schema.nullable === true) types.push(\"null\")\n }\n return types\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n if (types.every(isJSONType)) return types\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n const {gen, data, opts} = it\n const coerceTo = coerceToTypes(types, opts.coerceTypes)\n const checkTypes =\n types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && schemaHasRulesForType(it, types[0]))\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong)\n gen.if(wrongType, () => {\n if (coerceTo.length) coerceData(it, types, coerceTo)\n else reportTypeError(it)\n })\n }\n return checkTypes\n}\n\nconst COERCIBLE: Set = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n const {gen, data, opts} = it\n const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n const coerced = gen.let(\"coerced\", _`undefined`)\n if (opts.coerceTypes === \"array\") {\n gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n gen\n .assign(data, _`${data}[0]`)\n .assign(dataType, _`typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n )\n }\n gen.if(_`${coerced} !== undefined`)\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t)\n }\n }\n gen.else()\n reportTypeError(it)\n gen.endIf()\n\n gen.if(_`${coerced} !== undefined`, () => {\n gen.assign(data, coerced)\n assignParentData(it, coerced)\n })\n\n function coerceSpecificType(t: string): void {\n switch (t) {\n case \"string\":\n gen\n .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, _`\"\" + ${data}`)\n .elseIf(_`${data} === null`)\n .assign(coerced, _`\"\"`)\n return\n case \"number\":\n gen\n .elseIf(\n _`${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"integer\":\n gen\n .elseIf(\n _`${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"boolean\":\n gen\n .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(_`${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true)\n return\n case \"null\":\n gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n gen.assign(coerced, null)\n return\n\n case \"array\":\n gen\n .elseIf(\n _`${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`\n )\n .assign(coerced, _`[${data}]`)\n }\n }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n // TODO use gen.property\n gen.if(_`${parentData} !== undefined`, () =>\n gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n )\n}\n\nexport function checkDataType(\n dataType: JSONType,\n data: Name,\n strictNums?: boolean | \"log\",\n correct = DataType.Correct\n): Code {\n const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n let cond: Code\n switch (dataType) {\n case \"null\":\n return _`${data} ${EQ} null`\n case \"array\":\n cond = _`Array.isArray(${data})`\n break\n case \"object\":\n cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n break\n case \"integer\":\n cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n break\n case \"number\":\n cond = numCond()\n break\n default:\n return _`typeof ${data} ${EQ} ${dataType}`\n }\n return correct === DataType.Correct ? cond : not(cond)\n\n function numCond(_cond: Code = nil): Code {\n return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n }\n}\n\nexport function checkDataTypes(\n dataTypes: JSONType[],\n data: Name,\n strictNums?: boolean | \"log\",\n correct?: DataType\n): Code {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct)\n }\n let cond: Code\n const types = toHash(dataTypes)\n if (types.array && types.object) {\n const notObj = _`typeof ${data} != \"object\"`\n cond = types.null ? notObj : _`!${data} || ${notObj}`\n delete types.null\n delete types.array\n delete types.object\n } else {\n cond = nil\n }\n if (types.number) delete types.integer\n for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n message: ({schema}) => `must be ${schema}`,\n params: ({schema, schemaValue}) =>\n typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n const cxt = getTypeErrorContext(it)\n reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n const {gen, data, schema} = it\n const schemaCode = schemaRefOrVal(it, schema, \"type\")\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n }\n}\n","import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\n const {properties, items} = it.schema\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default)\n }\n } else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n const {gen, compositeRule, data, opts} = it\n if (defaultValue === undefined) return\n const childData = _`${data}${getProperty(prop)}`\n if (compositeRule) {\n checkStrictMode(it, `default is ignored for: ${childData}`)\n return\n }\n\n let condition = _`${childData} === undefined`\n if (opts.useDefaults === \"empty\") {\n condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n","import type {\n AddedKeywordDefinition,\n AnySchema,\n AnySchemaObject,\n KeywordErrorCxt,\n KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n schemaRefOrVal,\n schemaHasRulesButRef,\n checkUnknownRules,\n checkStrictMode,\n unescapeJsonPointer,\n mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n ErrorPaths,\n reportError,\n reportExtraError,\n resetErrorsCount,\n keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it)\n return\n }\n }\n validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n body: Block\n): void {\n if (opts.code.es5) {\n gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n destructureValCxtES5(gen, opts)\n gen.code(body)\n })\n } else {\n gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n gen.code(funcSourceUrl(schema, opts)).code(body)\n )\n }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n N.data\n }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n gen.if(\n N.valCxt,\n () => {\n gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n },\n () => {\n gen.var(N.instancePath, _`\"\"`)\n gen.var(N.parentData, _`undefined`)\n gen.var(N.parentDataProperty, _`undefined`)\n gen.var(N.rootData, N.data)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n }\n )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n const {schema, opts, gen} = it\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment) commentKeyword(it)\n checkNoDefault(it)\n gen.let(N.vErrors, null)\n gen.let(N.errors, 0)\n if (opts.unevaluated) resetEvaluated(it)\n typeAndKeywords(it)\n returnResults(it)\n })\n return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const {gen, validateName} = it\n it.evaluated = gen.const(\"evaluated\", _`${validateName}.evaluated`)\n gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n const schId = typeof schema == \"object\" && schema[opts.schemaId]\n return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid)\n return\n }\n }\n boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (self.RULES.all[key]) return true\n return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n const {schema, gen, opts} = it\n if (opts.$comment && schema.$comment) commentKeyword(it)\n updateContext(it)\n checkAsyncSchema(it)\n const errsCount = gen.const(\"_errs\", N.errors)\n typeAndKeywords(it, errsCount)\n // TODO var\n gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n checkUnknownRules(it)\n checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n const types = getSchemaTypes(it.schema)\n const checkedTypes = coerceAndCheckDataType(it, types)\n schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n const {schema, errSchemaPath, opts, self} = it\n if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n const {schema, opts} = it\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n checkStrictMode(it, \"default is ignored in the schema root\")\n }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n const schId = it.schema[it.opts.schemaId]\n if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n const msg = schema.$comment\n if (opts.$comment === true) {\n gen.code(_`${N.self}.logger.log(${msg})`)\n } else if (typeof opts.$comment == \"function\") {\n const schemaPath = str`${errSchemaPath}/$comment`\n const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n const {gen, schemaEnv, validateName, ValidationError, opts} = it\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(\n _`${N.errors} === 0`,\n () => gen.return(N.data),\n () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n )\n } else {\n gen.assign(_`${validateName}.errors`, N.vErrors)\n if (opts.unevaluated) assignEvaluated(it)\n gen.return(_`${N.errors} === 0`)\n }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n it: SchemaObjCxt,\n types: JSONType[],\n typeErrors: boolean,\n errsCount?: Name\n): void {\n const {gen, schema, data, allErrors, opts, self} = it\n const {RULES} = self\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n return\n }\n if (!opts.jtd) checkStrictTypes(it, types)\n gen.block(() => {\n for (const group of RULES.rules) groupKeywords(group)\n groupKeywords(RULES.post)\n })\n\n function groupKeywords(group: RuleGroup): void {\n if (!shouldUseGroup(schema, group)) return\n if (group.type) {\n gen.if(checkDataType(group.type, data, opts.strictNumbers))\n iterateKeywords(it, group)\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else()\n reportTypeError(it)\n }\n gen.endIf()\n } else {\n iterateKeywords(it, group)\n }\n // TODO make it \"ok\" call?\n if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n const {\n gen,\n schema,\n opts: {useDefaults},\n } = it\n if (useDefaults) assignDefaults(it, group.type)\n gen.block(() => {\n for (const rule of group.rules) {\n if (shouldUseRule(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type)\n }\n }\n })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (it.schemaEnv.meta || !it.opts.strictTypes) return\n checkContextTypes(it, types)\n if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (!types.length) return\n if (!it.dataTypes.length) {\n it.dataTypes = types\n return\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`)\n }\n })\n narrowSchemaTypes(it, types)\n}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n const rules = it.self.RULES.all\n for (const keyword in rules) {\n const rule = rules[keyword]\n if (typeof rule == \"object\" && shouldUseRule(it.schema, rule)) {\n const {type} = rule.definition\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`)\n }\n }\n }\n}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {\n const ts: JSONType[] = []\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t)) ts.push(t)\n else if (withTypes.includes(\"integer\") && t === \"number\") ts.push(\"integer\")\n }\n it.dataTypes = ts\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n msg += ` at \"${schemaPath}\" (strictTypes)`\n checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean\n readonly keyword: string\n readonly data: Name // Name referencing the current level of the data instance\n readonly $data?: string | false\n schema: any // keyword value in the schema\n readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n readonly parentSchema: AnySchemaObject\n readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n // requires option trackErrors in keyword definition\n params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n readonly def: AddedKeywordDefinition\n\n constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n validateKeywordUsage(it, def, keyword)\n this.gen = it.gen\n this.allErrors = it.allErrors\n this.keyword = keyword\n this.data = it.data\n this.schema = it.schema[keyword]\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data\n this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)\n this.schemaType = def.schemaType\n this.parentSchema = it.schema\n this.params = {}\n this.it = it\n this.def = def\n\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n } else {\n this.schemaCode = this.schemaValue\n if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n }\n }\n\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", N.errors)\n }\n }\n\n result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.failResult(not(condition), successAction, failAction)\n }\n\n failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.gen.if(condition)\n if (failAction) failAction()\n else this.error()\n if (successAction) {\n this.gen.else()\n successAction()\n if (this.allErrors) this.gen.endIf()\n } else {\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n }\n\n pass(condition: Code, failAction?: () => void): void {\n this.failResult(not(condition), undefined, failAction)\n }\n\n fail(condition?: Code): void {\n if (condition === undefined) {\n this.error()\n if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize\n return\n }\n this.gen.if(condition)\n this.error()\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n\n fail$data(condition: Code): void {\n if (!this.$data) return this.fail(condition)\n const {schemaCode} = this\n this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n }\n\n error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\n if (errorParams) {\n this.setParams(errorParams)\n this._error(append, errorPaths)\n this.setParams({})\n return\n }\n this._error(append, errorPaths)\n }\n\n private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n }\n\n $dataError(): void {\n reportError(this, this.def.$dataError || keyword$DataError)\n }\n\n reset(): void {\n if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n resetErrorsCount(this.gen, this.errsCount)\n }\n\n ok(cond: Code | boolean): void {\n if (!this.allErrors) this.gen.if(cond)\n }\n\n setParams(obj: KeywordCxtParams, assign?: true): void {\n if (assign) Object.assign(this.params, obj)\n else this.params = obj\n }\n\n block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n this.gen.block(() => {\n this.check$data(valid, $dataValid)\n codeBlock()\n })\n }\n\n check$data(valid: Name = nil, $dataValid: Code = nil): void {\n if (!this.$data) return\n const {gen, schemaCode, schemaType, def} = this\n gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n if (valid !== nil) gen.assign(valid, true)\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data())\n this.$dataError()\n if (valid !== nil) gen.assign(valid, false)\n }\n gen.else()\n }\n\n invalid$data(): Code {\n const {gen, schemaCode, schemaType, def, it} = this\n return or(wrong$DataType(), invalid$DataSchema())\n\n function wrong$DataType(): Code {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n }\n return nil\n }\n\n function invalid$DataSchema(): Code {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n return _`!${validateSchemaRef}(${schemaCode})`\n }\n return nil\n }\n }\n\n subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n const subschema = getSubschema(this.it, appl)\n extendSubschemaData(subschema, this.it, appl)\n extendSubschemaMode(subschema, appl)\n const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n subschemaCode(nextContext, valid)\n return nextContext\n }\n\n mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n const {it, gen} = this\n if (!it.opts.unevaluated) return\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n }\n }\n\n mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n const {it, gen} = this\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n return true\n }\n }\n}\n\nfunction keywordCode(\n it: SchemaObjCxt,\n keyword: string,\n def: AddedKeywordDefinition,\n ruleType?: JSONType\n): void {\n const cxt = new KeywordCxt(it, def, keyword)\n if (\"code\" in def) {\n def.code(cxt, ruleType)\n } else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def)\n } else if (\"macro\" in def) {\n macroKeywordCode(cxt, def)\n } else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def)\n }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n $data: string,\n {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n let jsonPointer\n let data: Code\n if ($data === \"\") return N.rootData\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n jsonPointer = $data\n data = N.rootData\n } else {\n const matches = RELATIVE_JSON_POINTER.exec($data)\n if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n const up: number = +matches[1]\n jsonPointer = matches[2]\n if (jsonPointer === \"#\") {\n if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n return dataPathArr[dataLevel - up]\n }\n if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n data = dataNames[dataLevel - up]\n if (!jsonPointer) return data\n }\n\n let expr = data\n const segments = jsonPointer.split(\"/\")\n for (const segment of segments) {\n if (segment) {\n data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n expr = _`${expr} && ${data}`\n }\n }\n return expr\n\n function errorMsg(pointerType: string, up: number): string {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n }\n}\n","import type {KeywordCxt} from \".\"\nimport type {\n AnySchema,\n SchemaValidateFunction,\n AnyValidateFunction,\n AddedKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, it} = cxt\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it)\n const schemaRef = useKeyword(gen, keyword, macroSchema)\n if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true)\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n schema: macroSchema,\n schemaPath: nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n },\n valid\n )\n cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, $data, it} = cxt\n checkAsyncKeyword(it, def)\n const validate =\n !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate\n const validateRef = useKeyword(gen, keyword, validate)\n const valid = gen.let(\"valid\")\n cxt.block$data(valid, validateKeyword)\n cxt.ok(def.valid ?? valid)\n\n function validateKeyword(): void {\n if (def.errors === false) {\n assignValid()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => cxt.error())\n } else {\n const ruleErrs = def.async ? validateAsync() : validateSync()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => addErrs(cxt, ruleErrs))\n }\n }\n\n function validateAsync(): Name {\n const ruleErrs = gen.let(\"ruleErrs\", null)\n gen.try(\n () => assignValid(_`await `),\n (e) =>\n gen.assign(valid, false).if(\n _`${e} instanceof ${it.ValidationError as Name}`,\n () => gen.assign(ruleErrs, _`${e}.errors`),\n () => gen.throw(e)\n )\n )\n return ruleErrs\n }\n\n function validateSync(): Code {\n const validateErrs = _`${validateRef}.errors`\n gen.assign(validateErrs, null)\n assignValid(nil)\n return validateErrs\n }\n\n function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n const passCxt = it.opts.passContext ? N.this : N.self\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n gen.assign(\n valid,\n _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n def.modifying\n )\n }\n\n function reportErrs(errors: () => void): void {\n gen.if(not(def.valid ?? valid), errors)\n }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n const {gen, data, it} = cxt\n gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n const {gen} = cxt\n gen.if(\n _`Array.isArray(${errs})`,\n () => {\n gen\n .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n .assign(N.errors, _`${N.vErrors}.length`)\n extendErrors(cxt)\n },\n () => cxt.error()\n )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n return gen.scopeValue(\n \"keyword\",\n typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n )\n}\n\nexport function validSchemaType(\n schema: unknown,\n schemaType: JSONType[],\n allowUndefined = false\n): boolean {\n // TODO add tests\n return (\n !schemaType.length ||\n schemaType.some((st) =>\n st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")\n )\n )\n}\n\nexport function validateKeywordUsage(\n {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n def: AddedKeywordDefinition,\n keyword: string\n): void {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\")\n }\n\n const deps = def.dependencies\n if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n }\n\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword])\n if (!valid) {\n const msg =\n `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors)\n if (opts.validateSchema === \"log\") self.logger.error(msg)\n else throw new Error(msg)\n }\n }\n}\n","import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n // TODO use Optional? align with SchemCxt property types\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef?: Code\n errorPath?: Code\n dataLevel?: number\n dataTypes?: JSONType[]\n data?: Name\n parentData?: Name\n parentDataProperty?: Code | number\n dataNames?: Name[]\n dataPathArr?: (Code | number)[]\n propertyName?: Name\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n compositeRule?: true\n createErrors?: boolean\n allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n keyword: string\n schemaProp: string | number\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef: Code\n data: Name | Code\n dataProp: Code | string | number\n dataTypes: JSONType[]\n definedProperties: Set\n propertyName: Name\n dataPropType: Type\n jtdDiscriminator: string\n jtdMetadata: boolean\n compositeRule: true\n createErrors: boolean\n allErrors: boolean\n}>\n\nexport function getSubschema(\n it: SchemaObjCxt,\n {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n }\n\n if (keyword !== undefined) {\n const sch = it.schema[keyword]\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n }\n }\n\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"')\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n }\n }\n\n throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n subschema: SubschemaContext,\n it: SchemaObjCxt,\n {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n }\n\n const {gen} = it\n\n if (dataProp !== undefined) {\n const {errorPath, dataPathArr, opts} = it\n const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n dataContextProps(nextData)\n subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n subschema.parentDataProperty = _`${dataProp}`\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n }\n\n if (data !== undefined) {\n const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n dataContextProps(nextData)\n if (propertyName !== undefined) subschema.propertyName = propertyName\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n\n if (dataTypes) subschema.dataTypes = dataTypes\n\n function dataContextProps(_nextData: Name): void {\n subschema.data = _nextData\n subschema.dataLevel = it.dataLevel + 1\n subschema.dataTypes = []\n it.definedProperties = new Set()\n subschema.parentData = it.data\n subschema.dataNames = [...it.dataNames, _nextData]\n }\n}\n\nexport function extendSubschemaMode(\n subschema: SubschemaContext,\n {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n if (createErrors !== undefined) subschema.createErrors = createErrors\n if (allErrors !== undefined) subschema.allErrors = allErrors\n subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n subschema.jtdMetadata = jtdMetadata // not inherited\n}\n","export {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n AnyValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin {\n (ajv: Ajv, options?: Opts): Ajv\n [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n Schema,\n AnySchema,\n AnySchemaObject,\n SchemaObject,\n AsyncSchema,\n Vocabulary,\n KeywordDefinition,\n AddedKeywordDefinition,\n AnyValidateFunction,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n Format,\n AddedFormat,\n RegExpEngine,\n UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof Options)[] = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"]\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n // strict mode options (NEW)\n strict?: boolean | \"log\"\n strictSchema?: boolean | \"log\"\n strictNumbers?: boolean | \"log\"\n strictTypes?: boolean | \"log\"\n strictTuples?: boolean | \"log\"\n strictRequired?: boolean | \"log\"\n allowMatchingProperties?: boolean // disables a strict mode restriction\n allowUnionTypes?: boolean\n validateFormats?: boolean\n // validation and reporting options:\n $data?: boolean\n allErrors?: boolean\n verbose?: boolean\n discriminator?: boolean\n unicodeRegExp?: boolean\n timestamp?: \"string\" | \"date\" // JTD only\n parseDate?: boolean // JTD only\n allowDate?: boolean // JTD only\n $comment?:\n | true\n | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n formats?: {[Name in string]?: Format}\n keywords?: Vocabulary\n schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n logger?: Logger | false\n loadSchema?: (uri: string) => Promise\n // options to modify validated data:\n removeAdditional?: boolean | \"all\" | \"failing\"\n useDefaults?: boolean | \"empty\"\n coerceTypes?: boolean | \"array\"\n // advanced options:\n next?: boolean // NEW\n unevaluated?: boolean // NEW\n dynamicRef?: boolean // NEW\n schemaId?: \"id\" | \"$id\"\n jtd?: boolean // NEW\n meta?: SchemaObject | boolean\n defaultMeta?: string | AnySchemaObject\n validateSchema?: boolean | \"log\"\n addUsedSchema?: boolean\n inlineRefs?: boolean | number\n passContext?: boolean\n loopRequired?: number\n loopEnum?: number // NEW\n ownProperties?: boolean\n multipleOfPrecision?: number\n int32range?: boolean // JTD only\n messages?: boolean\n code?: CodeOptions // NEW\n uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n es5?: boolean\n esm?: boolean\n lines?: boolean\n optimize?: boolean | number\n formats?: Code // code to require (or construct) map of available formats - for standalone code\n source?: boolean\n process?: (code: string, schema?: SchemaEnv) => string\n regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n regExp: RegExpEngine\n optimize: number\n}\n\ninterface DeprecatedOptions {\n /** @deprecated */\n ignoreKeywordsWithRef?: boolean\n /** @deprecated */\n jsPropertySyntax?: boolean // added instead of jsonPointers\n /** @deprecated */\n unicode?: boolean\n}\n\ninterface RemovedOptions {\n format?: boolean\n errorDataPath?: \"object\" | \"property\"\n nullable?: boolean // \"nullable\" keyword is supported by default\n jsonPointers?: boolean\n extendRefs?: true | \"ignore\" | \"fail\"\n missingRefs?: true | \"ignore\" | \"fail\"\n processCode?: (code: string, schema?: SchemaEnv) => string\n sourceCode?: boolean\n strictDefaults?: boolean\n strictKeywords?: boolean\n uniqueItems?: boolean\n unknownFormats?: true | string[] | \"ignore\"\n cache?: any\n serialize?: (schema: AnySchema) => unknown\n ajvErrors?: boolean\n}\n\ntype OptionsInfo = {\n [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n}\n\nconst deprecatedOptions: OptionsInfo = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n [K in\n | \"strictSchema\"\n | \"strictNumbers\"\n | \"strictTypes\"\n | \"strictTuples\"\n | \"strictRequired\"\n | \"inlineRefs\"\n | \"loopRequired\"\n | \"loopEnum\"\n | \"meta\"\n | \"messages\"\n | \"schemaId\"\n | \"addUsedSchema\"\n | \"validateSchema\"\n | \"validateFormats\"\n | \"int32range\"\n | \"unicodeRegExp\"\n | \"uriResolver\"]: NonNullable\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n const s = o.strict\n const _optz = o.code?.optimize\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n const regExp = o.code?.regExp ?? defaultRegExp\n const uriResolver = o.uriResolver ?? DefaultUriResolver\n return {\n strictSchema: o.strictSchema ?? s ?? true,\n strictNumbers: o.strictNumbers ?? s ?? true,\n strictTypes: o.strictTypes ?? s ?? \"log\",\n strictTuples: o.strictTuples ?? s ?? \"log\",\n strictRequired: o.strictRequired ?? s ?? false,\n code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n meta: o.meta ?? true,\n messages: o.messages ?? true,\n inlineRefs: o.inlineRefs ?? true,\n schemaId: o.schemaId ?? \"$id\",\n addUsedSchema: o.addUsedSchema ?? true,\n validateSchema: o.validateSchema ?? true,\n validateFormats: o.validateFormats ?? true,\n unicodeRegExp: o.unicodeRegExp ?? true,\n int32range: o.int32range ?? true,\n uriResolver: uriResolver,\n }\n}\n\nexport interface Logger {\n log(...args: unknown[]): unknown\n warn(...args: unknown[]): unknown\n error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n opts: InstanceOptions\n errors?: ErrorObject[] | null // errors from the last validation\n logger: Logger\n // shared external scope values for compiled functions\n readonly scope: ValueScope\n readonly schemas: {[Key in string]?: SchemaEnv} = {}\n readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n readonly formats: {[Name in string]?: AddedFormat} = {}\n readonly RULES: ValidationRules\n readonly _compilations: Set = new Set()\n private readonly _loading: {[Ref in string]?: Promise} = {}\n private readonly _cache: Map = new Map()\n private readonly _metaOpts: InstanceOptions\n\n static ValidationError = ValidationError\n static MissingRefError = MissingRefError\n\n constructor(opts: Options = {}) {\n opts = this.opts = {...opts, ...requiredOptions(opts)}\n const {es5, lines} = this.opts.code\n\n this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n this.logger = getLogger(opts.logger)\n const formatOpt = opts.validateFormats\n opts.validateFormats = false\n\n this.RULES = getRules()\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n this._metaOpts = getMetaSchemaOptions.call(this)\n\n if (opts.formats) addInitialFormats.call(this)\n this._addVocabularies()\n this._addDefaultMetaSchema()\n if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n addInitialSchemas.call(this)\n opts.validateFormats = formatOpt\n }\n\n _addVocabularies(): void {\n this.addKeyword(\"$async\")\n }\n\n _addDefaultMetaSchema(): void {\n const {$data, meta, schemaId} = this.opts\n let _dataRefSchema: SchemaObject = $dataRefSchema\n if (schemaId === \"id\") {\n _dataRefSchema = {...$dataRefSchema}\n _dataRefSchema.id = _dataRefSchema.$id\n delete _dataRefSchema.$id\n }\n if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n const {meta, schemaId} = this.opts\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n }\n\n // Validate data using schema\n // AnySchema will be compiled and cached using schema itself as a key for Map\n validate(schema: Schema | string, data: unknown): boolean\n validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise\n validate(schema: Schema | JSONSchemaType | string, data: unknown): data is T\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n validate(schema: JTDSchemaType, data: unknown): data is T\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(\n schema: T,\n data: unknown\n ): data is JTDDataType\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n validate(schema: AsyncSchema, data: unknown | T): Promise\n validate(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise\n validate(\n schemaKeyRef: AnySchema | string, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data: unknown | T // to be validated\n ): boolean | Promise {\n let v: AnyValidateFunction | undefined\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef)\n if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n } else {\n v = this.compile(schemaKeyRef)\n }\n\n const valid = v(data)\n if (!(\"$async\" in v)) this.errors = v.errors\n return valid\n }\n\n // Create validation function for passed schema\n // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n compile(schema: Schema | JSONSchemaType, _meta?: boolean): ValidateFunction\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compile(schema: JTDSchemaType, _meta?: boolean): ValidateFunction\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n compile(\n schema: T,\n _meta?: boolean\n ): ValidateFunction>\n compile(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction\n compile(schema: AnySchema, _meta?: boolean): AnyValidateFunction\n compile(schema: AnySchema, _meta?: boolean): AnyValidateFunction {\n const sch = this._addSchema(schema, _meta)\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction\n }\n\n // Creates validating function for passed schema with asynchronous loading of missing schemas.\n // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n // TODO allow passing schema URI\n // meta - optional true to compile meta-schema\n compileAsync(\n schema: SchemaObject | JSONSchemaType,\n _meta?: boolean\n ): Promise>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync(schema: JTDSchemaType, _meta?: boolean): Promise>\n compileAsync(schema: AsyncSchema, meta?: boolean): Promise>\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise>\n compileAsync(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise> {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\")\n }\n const {loadSchema} = this.opts\n return runCompileAsync.call(this, schema, meta)\n\n async function runCompileAsync(\n this: Ajv,\n _schema: AnySchemaObject,\n _meta?: boolean\n ): Promise {\n await loadMetaSchema.call(this, _schema.$schema)\n const sch = this._addSchema(_schema, _meta)\n return sch.validate || _compileAsync.call(this, sch)\n }\n\n async function loadMetaSchema(this: Ajv, $ref?: string): Promise {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, {$ref}, true)\n }\n }\n\n async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise {\n try {\n return this._compileSchemaEnv(sch)\n } catch (e) {\n if (!(e instanceof MissingRefError)) throw e\n checkLoaded.call(this, e)\n await loadMissingSchema.call(this, e.missingSchema)\n return _compileAsync.call(this, sch)\n }\n }\n\n function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n }\n }\n\n async function loadMissingSchema(this: Ajv, ref: string): Promise {\n const _schema = await _loadSchema.call(this, ref)\n if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n }\n\n async function _loadSchema(this: Ajv, ref: string): Promise {\n const p = this._loading[ref]\n if (p) return p\n try {\n return await (this._loading[ref] = loadSchema(ref))\n } finally {\n delete this._loading[ref]\n }\n }\n }\n\n // Adds schema to the instance\n addSchema(\n schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ): Ajv {\n if (Array.isArray(schema)) {\n for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n return this\n }\n let id: string | undefined\n if (typeof schema === \"object\") {\n const {schemaId} = this.opts\n id = schema[schemaId]\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`)\n }\n }\n key = normalizeId(key || id)\n this._checkUnique(key)\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n return this\n }\n\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(\n schema: AnySchemaObject,\n key?: string, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ): Ajv {\n this.addSchema(schema, key, true, _validateSchema)\n return this\n }\n\n // Validate schema against its meta-schema\n validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise {\n if (typeof schema == \"boolean\") return true\n let $schema: string | AnySchemaObject | undefined\n $schema = schema.$schema\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\")\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta()\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\")\n this.errors = null\n return true\n }\n const valid = this.validate($schema, schema)\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText()\n if (this.opts.validateSchema === \"log\") this.logger.error(message)\n else throw new Error(message)\n }\n return valid\n }\n\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef: string): AnyValidateFunction | undefined {\n let sch\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n if (sch === undefined) {\n const {schemaId} = this.opts\n const root = new SchemaEnv({schema: {}, schemaId})\n sch = resolveSchema.call(this, root, keyRef)\n if (!sch) return\n this.refs[keyRef] = sch\n }\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction | undefined\n }\n\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef)\n this._removeAllSchemas(this.refs, schemaKeyRef)\n return this\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas)\n this._removeAllSchemas(this.refs)\n this._cache.clear()\n return this\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef)\n if (typeof sch == \"object\") this._cache.delete(sch.schema)\n delete this.schemas[schemaKeyRef]\n delete this.refs[schemaKeyRef]\n return this\n }\n case \"object\": {\n const cacheKey = schemaKeyRef\n this._cache.delete(cacheKey)\n let id = schemaKeyRef[this.opts.schemaId]\n if (id) {\n id = normalizeId(id)\n delete this.schemas[id]\n delete this.refs[id]\n }\n return this\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\")\n }\n }\n\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions: Vocabulary): Ajv {\n for (const def of definitions) this.addKeyword(def)\n return this\n }\n\n addKeyword(\n kwdOrDef: string | KeywordDefinition,\n def?: KeywordDefinition // deprecated\n ): Ajv {\n let keyword: string | string[]\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\")\n def.keyword = keyword\n }\n } else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef\n keyword = def.keyword\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\")\n }\n } else {\n throw new Error(\"invalid addKeywords parameters\")\n }\n\n checkKeyword.call(this, keyword, def)\n if (!def) {\n eachItem(keyword, (kwd) => addRule.call(this, kwd))\n return this\n }\n keywordMetaschema.call(this, def)\n const definition: AddedKeywordDefinition = {\n ...def,\n type: getJSONTypes(def.type),\n schemaType: getJSONTypes(def.schemaType),\n }\n eachItem(\n keyword,\n definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n )\n return this\n }\n\n getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n const rule = this.RULES.all[keyword]\n return typeof rule == \"object\" ? rule.definition : !!rule\n }\n\n // Remove keyword\n removeKeyword(keyword: string): Ajv {\n // TODO return type should be Ajv\n const {RULES} = this\n delete RULES.keywords[keyword]\n delete RULES.all[keyword]\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword)\n if (i >= 0) group.rules.splice(i, 1)\n }\n return this\n }\n\n // Add format\n addFormat(name: string, format: Format): Ajv {\n if (typeof format == \"string\") format = new RegExp(format)\n this.formats[name] = format\n return this\n }\n\n errorsText(\n errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n ): string {\n if (!errors || errors.length === 0) return \"No errors\"\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg)\n }\n\n $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\n const rules = this.RULES.all\n metaSchema = JSON.parse(JSON.stringify(metaSchema))\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1) // first segment is an empty string\n let keywords = metaSchema\n for (const seg of segments) keywords = keywords[seg] as AnySchemaObject\n\n for (const key in rules) {\n const rule = rules[key]\n if (typeof rule != \"object\") continue\n const {$data} = rule.definition\n const schema = keywords[key] as AnySchemaObject | undefined\n if ($data && schema) keywords[key] = schemaOrData(schema)\n }\n }\n\n return metaSchema\n }\n\n private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef]\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef]\n } else if (sch && !sch.meta) {\n this._cache.delete(sch.schema)\n delete schemas[keyRef]\n }\n }\n }\n }\n\n _addSchema(\n schema: AnySchema,\n meta?: boolean,\n baseId?: string,\n validateSchema = this.opts.validateSchema,\n addSchema = this.opts.addUsedSchema\n ): SchemaEnv {\n let id: string | undefined\n const {schemaId} = this.opts\n if (typeof schema == \"object\") {\n id = schema[schemaId]\n } else {\n if (this.opts.jtd) throw new Error(\"schema must be object\")\n else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n }\n let sch = this._cache.get(schema)\n if (sch !== undefined) return sch\n\n baseId = normalizeId(id || baseId)\n const localRefs = getSchemaRefs.call(this, schema, baseId)\n sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})\n this._cache.set(sch.schema, sch)\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId) this._checkUnique(baseId)\n this.refs[baseId] = sch\n }\n if (validateSchema) this.validateSchema(schema, true)\n return sch\n }\n\n private _checkUnique(id: string): void {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`)\n }\n }\n\n private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n if (sch.meta) this._compileMetaSchema(sch)\n else compileSchema.call(this, sch)\n\n /* istanbul ignore if */\n if (!sch.validate) throw new Error(\"ajv implementation error\")\n return sch.validate\n }\n\n private _compileMetaSchema(sch: SchemaEnv): void {\n const currentOpts = this.opts\n this.opts = this._metaOpts\n try {\n compileSchema.call(this, sch)\n } finally {\n this.opts = currentOpts\n }\n }\n}\n\nexport interface ErrorsTextOptions {\n separator?: string\n dataVar?: string\n}\n\nfunction checkOptions(\n this: Ajv,\n checkOpts: OptionsInfo,\n options: Options & RemovedOptions,\n msg: string,\n log: \"warn\" | \"error\" = \"error\"\n): void {\n for (const key in checkOpts) {\n const opt = key as keyof typeof checkOpts\n if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n keyRef = normalizeId(keyRef) // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n const optsSchemas = this.opts.schemas\n if (!optsSchemas) return\n if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name]\n if (format) this.addFormat(name, format)\n }\n}\n\nfunction addInitialKeywords(\n this: Ajv,\n defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs)\n return\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\")\n for (const keyword in defs) {\n const def = defs[keyword] as KeywordDefinition\n if (!def.keyword) def.keyword = keyword\n this.addKeyword(def)\n }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n const metaOpts = {...this.opts}\n for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial | false): Logger {\n if (logger === false) return noLogs\n if (logger === undefined) return console\n if (logger.log && logger.warn && logger.error) return logger as Logger\n throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n const {RULES} = this\n eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n })\n if (!def) return\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function')\n }\n}\n\nfunction addRule(\n this: Ajv,\n keyword: string,\n definition?: AddedKeywordDefinition,\n dataType?: JSONType\n): void {\n const post = definition?.post\n if (dataType && post) throw new Error('keyword with \"post\" flag cannot have \"type\"')\n const {RULES} = this\n let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)\n if (!ruleGroup) {\n ruleGroup = {type: dataType, rules: []}\n RULES.rules.push(ruleGroup)\n }\n RULES.keywords[keyword] = true\n if (!definition) return\n\n const rule: Rule = {\n keyword,\n definition: {\n ...definition,\n type: getJSONTypes(definition.type),\n schemaType: getJSONTypes(definition.schemaType),\n },\n }\n if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n else ruleGroup.rules.push(rule)\n RULES.all[keyword] = rule\n definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule)\n } else {\n ruleGroup.rules.push(rule)\n this.logger.warn(`rule ${before} is not defined`)\n }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n let {metaSchema} = def\n if (metaSchema === undefined) return\n if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n return {anyOf: [schema, $dataRef]}\n}\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import * as uri from \"fast-uri\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n","import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n readonly errors: Partial[]\n readonly ajv: true\n readonly validation: true\n\n constructor(errors: Partial[]) {\n super(\"validation failed\")\n this.errors = errors\n this.ajv = this.validation = true\n }\n}\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"additionalItems\" as const,\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {parentSchema, it} = cxt\n const {items} = parentSchema\n if (!Array.isArray(items)) {\n checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n return\n }\n validateAdditionalItems(cxt, items)\n },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n const {gen, schema, data, keyword, it} = cxt\n it.items = true\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items.length})\n cxt.pass(_`${len} <= ${items.length}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n gen.if(not(valid), () => validateItems(valid))\n cxt.ok(valid)\n }\n\n function validateItems(valid: Name): void {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n AddedKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n \"additionalProperties\",\n {additionalProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have additional properties\",\n params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const {gen, schema, parentSchema, data, errsCount, it} = cxt\n /* istanbul ignore if */\n if (!errsCount) throw new Error(\"ajv implementation error\")\n const {allErrors, opts} = it\n it.props = true\n if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n const props = allSchemaProperties(parentSchema.properties)\n const patProps = allSchemaProperties(parentSchema.patternProperties)\n checkAdditionalProperties()\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function checkAdditionalProperties(): void {\n gen.forIn(\"key\", data, (key: Name) => {\n if (!props.length && !patProps.length) additionalPropertyCode(key)\n else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n })\n }\n\n function isAdditional(key: Name): Code {\n let definedProp: Code\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n definedProp = isOwnProperty(gen, propsSchema as Code, key)\n } else if (props.length) {\n definedProp = or(...props.map((p) => _`${key} === ${p}`))\n } else {\n definedProp = nil\n }\n if (patProps.length) {\n definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n }\n return not(definedProp)\n }\n\n function deleteAdditional(key: Name): void {\n gen.code(_`delete ${data}[${key}]`)\n }\n\n function additionalPropertyCode(key: Name): void {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key)\n return\n }\n\n if (schema === false) {\n cxt.setParams({additionalProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false)\n gen.if(not(valid), () => {\n cxt.reset()\n deleteAdditional(key)\n })\n } else {\n applyAdditionalSchema(key, valid)\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n }\n\n function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n const subschema: SubschemaArgs = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n }\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n })\n }\n cxt.subschema(subschema, valid)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const valid = gen.name(\"valid\")\n schema.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n cxt.ok(valid)\n cxt.mergeEvaluated(schCxt)\n })\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: validateUnion,\n error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n \"contains\",\n {minContains: number; maxContains?: number},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {min, max}}) =>\n max === undefined\n ? str`must contain at least ${min} valid item(s)`\n : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({params: {min, max}}) =>\n max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n let min: number\n let max: number | undefined\n const {minContains, maxContains} = parentSchema\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains\n max = maxContains\n } else {\n min = 1\n }\n const len = gen.const(\"len\", _`${data}.length`)\n cxt.setParams({min, max})\n if (max === undefined && min === 0) {\n checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n return\n }\n if (max !== undefined && min > max) {\n checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n cxt.fail()\n return\n }\n if (alwaysValidSchema(it, schema)) {\n let cond = _`${len} >= ${min}`\n if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n cxt.pass(cond)\n return\n }\n\n it.items = true\n const valid = gen.name(\"valid\")\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()))\n } else if (min === 0) {\n gen.let(valid, true)\n if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n } else {\n gen.let(valid, false)\n validateItemsWithCount()\n }\n cxt.result(valid, () => cxt.reset())\n\n function validateItemsWithCount(): void {\n const schValid = gen.name(\"_valid\")\n const count = gen.let(\"count\", 0)\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n }\n\n function validateItems(_valid: Name, block: () => void): void {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword: \"contains\",\n dataProp: i,\n dataPropType: Type.Num,\n compositeRule: true,\n },\n _valid\n )\n block()\n })\n }\n\n function checkLimits(count: Name): void {\n gen.code(_`${count}++`)\n if (max === undefined) {\n gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n } else {\n gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n if (min === 1) gen.assign(valid, true)\n else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n }\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n SchemaMap,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n property: string\n missingProperty: string\n depsCount: number\n deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n \"dependencies\",\n DependenciesErrorParams,\n {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n message: ({params: {property, depsCount, deps}}) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n return str`must have ${property_ies} ${deps} when property ${property} is present`\n },\n params: ({params: {property, depsCount, deps, missingProperty}}) =>\n _`{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const [propDeps, schDeps] = splitDependencies(cxt)\n validatePropertyDeps(cxt, propDeps)\n validateSchemaDeps(cxt, schDeps)\n },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n const propertyDeps: PropertyDependencies = {}\n const schemaDeps: SchemaDependencies = {}\n for (const key in schema) {\n if (key === \"__proto__\") continue\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n deps[key] = schema[key]\n }\n return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n cxt: KeywordCxt,\n propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n const {gen, data, it} = cxt\n if (Object.keys(propertyDeps).length === 0) return\n const missing = gen.let(\"missing\")\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop] as string[]\n if (deps.length === 0) continue\n const hasProperty = propertyInData(gen, data, prop, it.opts.ownProperties)\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n })\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n checkReportMissingProp(cxt, depProp)\n }\n })\n } else {\n gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n for (const prop in schemaDeps) {\n if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n gen.if(\n propertyInData(gen, data, prop, it.opts.ownProperties),\n () => {\n const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n cxt.mergeValidEvaluated(schCxt, valid)\n },\n () => gen.var(valid, true) // TODO var\n )\n cxt.ok(valid)\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, parentSchema, it} = cxt\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n checkStrictMode(it, '\"if\" without \"then\" and \"else\" is ignored')\n }\n const hasThen = hasSchema(it, \"then\")\n const hasElse = hasSchema(it, \"else\")\n if (!hasThen && !hasElse) return\n\n const valid = gen.let(\"valid\", true)\n const schValid = gen.name(\"_valid\")\n validateIf()\n cxt.reset()\n\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\")\n cxt.setParams({ifClause})\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause))\n } else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"))\n } else {\n gen.if(not(schValid), validateClause(\"else\"))\n }\n\n cxt.pass(valid, () => cxt.error(true))\n\n function validateIf(): void {\n const schCxt = cxt.subschema(\n {\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n schValid\n )\n cxt.mergeEvaluated(schCxt)\n }\n\n function validateClause(keyword: string, ifClause?: Name): () => void {\n return () => {\n const schCxt = cxt.subschema({keyword}, schValid)\n gen.assign(valid, schValid)\n cxt.mergeValidEvaluated(schCxt, valid)\n if (ifClause) gen.assign(ifClause, _`${keyword}`)\n else cxt.setParams({ifClause: keyword})\n }\n }\n },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n const schema = it.schema[keyword]\n return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n","import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n const applicator = [\n // any\n notKeyword,\n anyOf,\n oneOf,\n allOf,\n ifKeyword,\n thenElse,\n // object\n propertyNames,\n additionalProperties,\n dependencies,\n properties,\n patternProperties,\n ]\n // array\n if (draft2020) applicator.push(prefixItems, items2020)\n else applicator.push(additionalItems, items)\n applicator.push(contains)\n return applicator\n}\n\nexport type ApplicatorKeywordError =\n | ErrorNoParams<\"false schema\">\n | AdditionalItemsError\n | ItemsError\n | ContainsError\n | AdditionalPropertiesError\n | DependenciesError\n | IfKeywordError\n | AnyOfError\n | OneOfError\n | NotKeywordError\n | PropertyNamesError\n","import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt: KeywordCxt) {\n const {schema, it} = cxt\n if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n cxt.ok(validateArray(cxt))\n },\n}\n\nexport function validateTuple(\n cxt: KeywordCxt,\n extraItems: string,\n schArr: AnySchema[] = cxt.schema\n): void {\n const {gen, parentSchema, data, keyword, it} = cxt\n checkStrictTuple(parentSchema)\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n }\n const valid = gen.name(\"valid\")\n const len = gen.const(\"len\", _`${data}.length`)\n schArr.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n gen.if(_`${len} > ${i}`, () =>\n cxt.subschema(\n {\n keyword,\n schemaProp: i,\n dataProp: i,\n },\n valid\n )\n )\n cxt.ok(valid)\n })\n\n function checkStrictTuple(sch: AnySchemaObject): void {\n const {opts, errSchemaPath} = it\n const l = schArr.length\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false)\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`\n checkStrictMode(it, msg, opts.strictTuples)\n }\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {schema, parentSchema, it} = cxt\n const {prefixItems} = parentSchema\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n else cxt.ok(validateArray(cxt))\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n if (alwaysValidSchema(it, schema)) {\n cxt.fail()\n return\n }\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n valid\n )\n\n cxt.failResult(\n valid,\n () => cxt.reset(),\n () => cxt.error()\n )\n },\n error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n \"oneOf\",\n {passingSchemas: [number, number] | null},\n AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must match exactly one schema in oneOf\",\n params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n if (it.opts.discriminator && parentSchema.discriminator) return\n const schArr: AnySchema[] = schema\n const valid = gen.let(\"valid\", false)\n const passing = gen.let(\"passing\", null)\n const schValid = gen.name(\"_valid\")\n cxt.setParams({passing})\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n\n gen.block(validateOneOf)\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n\n function validateOneOf(): void {\n schArr.forEach((sch: AnySchema, i: number) => {\n let schCxt: SchemaCxt | undefined\n if (alwaysValidSchema(it, sch)) {\n gen.var(schValid, true)\n } else {\n schCxt = cxt.subschema(\n {\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n }\n\n if (i > 0) {\n gen\n .if(_`${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, _`[${passing}, ${i}]`)\n .else()\n }\n\n gen.if(schValid, () => {\n gen.assign(valid, true)\n gen.assign(passing, i)\n if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, data, parentSchema, it} = cxt\n const {opts} = it\n const patterns = allSchemaProperties(schema)\n const alwaysValidPatterns = patterns.filter((p) =>\n alwaysValidSchema(it, schema[p] as AnySchema)\n )\n\n if (\n patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))\n ) {\n return\n }\n\n const checkProperties =\n opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n const valid = gen.name(\"valid\")\n if (it.props !== true && !(it.props instanceof Name)) {\n it.props = evaluatedPropsToName(gen, it.props)\n }\n const {props} = it\n validatePatternProperties()\n\n function validatePatternProperties(): void {\n for (const pat of patterns) {\n if (checkProperties) checkMatchingProperties(pat)\n if (it.allErrors) {\n validateProperties(pat)\n } else {\n gen.var(valid, true) // TODO var\n validateProperties(pat)\n gen.if(valid)\n }\n }\n }\n\n function checkMatchingProperties(pat: string): void {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n checkStrictMode(\n it,\n `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n )\n }\n }\n }\n\n function validateProperties(pat: string): void {\n gen.forIn(\"key\", data, (key) => {\n gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat)\n if (!alwaysValid) {\n cxt.subschema(\n {\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n }\n\n if (it.opts.unevaluated && props !== true) {\n gen.assign(_`${props}[${key}]`, true)\n } else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if(not(valid), () => gen.break())\n }\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n }\n const allProps = allSchemaProperties(schema)\n for (const prop of allProps) {\n it.definedProperties.add(prop)\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = mergeEvaluated.props(gen, toHash(allProps), it.props)\n }\n const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n if (properties.length === 0) return\n const valid = gen.name(\"valid\")\n\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop)\n } else {\n gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n applyPropertySchema(prop)\n if (!it.allErrors) gen.else().var(valid, true)\n gen.endIf()\n }\n cxt.it.definedProperties.add(prop)\n cxt.ok(valid)\n }\n\n function hasDefault(prop: string): boolean | undefined {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n }\n\n function applyPropertySchema(prop: string): void {\n cxt.subschema(\n {\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n },\n valid\n )\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: \"property name must be valid\",\n params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n if (alwaysValidSchema(it, schema)) return\n const valid = gen.name(\"valid\")\n\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({propertyName: key})\n cxt.subschema(\n {\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n },\n valid\n )\n gen.if(not(valid), () => {\n cxt.error(true)\n if (!it.allErrors) gen.break()\n })\n })\n\n cxt.ok(valid)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n },\n}\n\nexport default def\n","import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n const {gen, data, it} = cxt\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({missingProperty: _`${prop}`}, true)\n cxt.error()\n })\n}\n\nexport function checkMissingProp(\n {gen, data, it: {opts}}: KeywordCxt,\n properties: string[],\n missing: Name\n): Code {\n return or(\n ...properties.map((prop) =>\n and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n )\n )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n cxt.setParams({missingProperty: missing}, true)\n cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: _`Object.prototype.hasOwnProperty`,\n })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} !== undefined`\n return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} === undefined`\n return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n return allSchemaProperties(schemaMap).filter(\n (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n )\n}\n\nexport function callValidateCode(\n {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n func: Code,\n context: Code,\n passSchema?: boolean\n): Code {\n const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n const valCxt: [Name, Code | number][] = [\n [N.instancePath, strConcat(N.instancePath, errorPath)],\n [N.parentData, it.parentData],\n [N.parentDataProperty, it.parentDataProperty],\n [N.rootData, N.rootData],\n ]\n if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n const u = opts.unicodeRegExp ? \"u\" : \"\"\n const {regExp} = opts.code\n const rx = regExp(pattern, u)\n\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true)\n validateItems(() => gen.assign(validArr, false))\n return validArr\n }\n gen.var(valid, true)\n validateItems(() => gen.break())\n return valid\n\n function validateItems(notValid: () => void): void {\n const len = gen.const(\"len\", _`${data}.length`)\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword,\n dataProp: i,\n dataPropType: Type.Num,\n },\n valid\n )\n gen.if(not(valid), notValid)\n })\n }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n const {gen, schema, keyword, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n if (alwaysValid && !it.opts.unevaluated) return\n\n const valid = gen.let(\"valid\", false)\n const schValid = gen.name(\"_valid\")\n\n gen.block(() =>\n schema.forEach((_sch: AnySchema, i: number) => {\n const schCxt = cxt.subschema(\n {\n keyword,\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n gen.assign(valid, _`${valid} || ${schValid}`)\n const merged = cxt.mergeValidEvaluated(schCxt, schValid)\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged) gen.if(not(valid))\n })\n )\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n}\n","import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n {keyword: \"$comment\"},\n \"definitions\",\n idKeyword,\n refKeyword,\n]\n\nexport default core\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt: KeywordCxt): void {\n const {gen, schema: $ref, it} = cxt\n const {baseId, schemaEnv: env, validateName, opts, self} = it\n const {root} = env\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId) return callRootRef()\n const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n return inlineRefSchema(schOrEnv)\n\n function callRootRef(): void {\n if (env === root) return callRef(cxt, validateName, env, env.$async)\n const rootName = gen.scopeValue(\"root\", {ref: root})\n return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n }\n\n function callValidate(sch: SchemaEnv): void {\n const v = getValidate(cxt, sch)\n callRef(cxt, v, sch, sch.$async)\n }\n\n function inlineRefSchema(sch: AnySchema): void {\n const schName = gen.scopeValue(\n \"schema\",\n opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n )\n const valid = gen.name(\"valid\")\n const schCxt = cxt.subschema(\n {\n schema: sch,\n dataTypes: [],\n schemaPath: nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n },\n valid\n )\n cxt.mergeEvaluated(schCxt)\n cxt.ok(valid)\n }\n },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n const {gen} = cxt\n return sch.validate\n ? gen.scopeValue(\"validate\", {ref: sch.validate})\n : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n const {gen, it} = cxt\n const {allErrors, schemaEnv: env, opts} = it\n const passCxt = opts.passContext ? N.this : nil\n if ($async) callAsyncRef()\n else callSyncRef()\n\n function callAsyncRef(): void {\n if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n const valid = gen.let(\"valid\")\n gen.try(\n () => {\n gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n if (!allErrors) gen.assign(valid, true)\n },\n (e) => {\n gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n addErrorsFrom(e)\n if (!allErrors) gen.assign(valid, false)\n }\n )\n cxt.ok(valid)\n }\n\n function callSyncRef(): void {\n cxt.result(\n callValidateCode(cxt, v, passCxt),\n () => addEvaluatedFrom(v),\n () => addErrorsFrom(v)\n )\n }\n\n function addErrorsFrom(source: Code): void {\n const errs = _`${source}.errors`\n gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n gen.assign(N.errors, _`${N.vErrors}.length`)\n }\n\n function addEvaluatedFrom(source: Code): void {\n if (!it.opts.unevaluated) return\n const schEvaluated = sch?.validate?.evaluated\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n }\n } else {\n const props = gen.var(\"props\", _`${source}.evaluated.props`)\n it.props = mergeEvaluated.props(gen, props, it.props, Name)\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n }\n } else {\n const items = gen.var(\"items\", _`${source}.evaluated.items`)\n it.items = mergeEvaluated.items(gen, items, it.items, Name)\n }\n }\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj | DiscrErrorObj\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {discrError, tagName}}) =>\n discrError === DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({params: {discrError, tag, tagName}}) =>\n _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schema, parentSchema, it} = cxt\n const {oneOf} = parentSchema\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\")\n }\n const tagName = schema.propertyName\n if (typeof tagName != \"string\") throw new Error(\"discriminator: requires propertyName\")\n if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n const valid = gen.let(\"valid\", false)\n const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n gen.if(\n _`typeof ${tag} == \"string\"`,\n () => validateMapping(),\n () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n )\n cxt.ok(valid)\n\n function validateMapping(): void {\n const mapping = getMapping()\n gen.if(false)\n for (const tagValue in mapping) {\n gen.elseIf(_`${tag} === ${tagValue}`)\n gen.assign(valid, applyTagSchema(mapping[tagValue]))\n }\n gen.else()\n cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n gen.endIf()\n }\n\n function applyTagSchema(schemaProp?: number): Name {\n const _valid = gen.name(\"valid\")\n const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n cxt.mergeEvaluated(schCxt, Name)\n return _valid\n }\n\n function getMapping(): {[T in string]?: number} {\n const oneOfMapping: {[T in string]?: number} = {}\n const topRequired = hasRequired(parentSchema)\n let tagRequired = true\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i]\n if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n const ref = sch.$ref\n sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref)\n if (sch instanceof SchemaEnv) sch = sch.schema\n if (sch === undefined) throw new MissingRefError(it.opts.uriResolver, it.baseId, ref)\n }\n const propSch = sch?.properties?.[tagName]\n if (typeof propSch != \"object\") {\n throw new Error(\n `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n )\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch))\n addMappings(propSch, i)\n }\n if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n return oneOfMapping\n\n function hasRequired({required}: AnySchemaObject): boolean {\n return Array.isArray(required) && required.includes(tagName)\n }\n\n function addMappings(sch: AnySchemaObject, i: number): void {\n if (sch.const) {\n addMapping(sch.const, i)\n } else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i)\n }\n } else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n }\n }\n\n function addMapping(tagValue: unknown, i: number): void {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`)\n }\n oneOfMapping[tagValue] = i\n }\n }\n },\n}\n\nexport default def\n","import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n Tag = \"tag\",\n Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj = ErrorObject<\n \"discriminator\",\n {error: E; tag: string; tagValue: unknown},\n string\n>\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft7Vocabularies: Vocabulary[] = [\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n]\n\nexport default draft7Vocabularies\n","import type {\n AddedFormat,\n FormatValidator,\n AsyncFormatValidator,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n | FormatValidator\n | FormatValidator\n | AsyncFormatValidator\n | AsyncFormatValidator\n | RegExp\n | string\n | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt, ruleType?: string) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const {opts, errSchemaPath, schemaEnv, self} = it\n if (!opts.validateFormats) return\n\n if ($data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n const fType = gen.let(\"fType\")\n const format = gen.let(\"format\")\n // TODO simplify\n gen.if(\n _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n )\n cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n function unknownFmt(): Code {\n if (opts.strictSchema === false) return nil\n return _`${schemaCode} && !${format}`\n }\n\n function invalidFmt(): Code {\n const callFormat = schemaEnv.$async\n ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : _`${format}(${data})`\n const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n }\n }\n\n function validateFormat(): void {\n const formatDef: AddedFormat | undefined = self.formats[schema]\n if (!formatDef) {\n unknownFormat()\n return\n }\n if (formatDef === true) return\n const [fmtType, format, fmtRef] = getFormat(formatDef)\n if (fmtType === ruleType) cxt.pass(validCondition())\n\n function unknownFormat(): void {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg())\n return\n }\n throw new Error(unknownMsg())\n\n function unknownMsg(): string {\n return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n }\n }\n\n function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n const code =\n fmtDef instanceof RegExp\n ? regexpCode(fmtDef)\n : opts.code.formats\n ? _`${opts.code.formats}${getProperty(schema)}`\n : undefined\n const fmt = gen.scopeValue(\"formats\", {key: schema, ref: fmtDef, code})\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, _`${fmt}.validate`]\n }\n\n return [\"string\", fmtDef, fmt]\n }\n\n function validCondition(): Code {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n return _`await ${fmtRef}(${data})`\n }\n return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n }\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n","import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n]\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to constant\",\n params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schemaCode, schema} = cxt\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n } else {\n cxt.fail(_`${schema} !== ${data}`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to one of the allowed values\",\n params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n const useLoop = schema.length >= it.opts.loopEnum\n let eql: Name | undefined\n const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n let valid: Code\n if (useLoop || $data) {\n valid = gen.let(\"valid\")\n cxt.block$data(valid, loopEnum)\n } else {\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const vSchema = gen.const(\"vSchema\", schemaCode)\n valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n }\n cxt.pass(valid)\n\n function loopEnum(): void {\n gen.assign(valid, false)\n gen.forOf(\"v\", schemaCode as Code, (v) =>\n gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n )\n }\n\n function equalCode(vSchema: Name, i: number): Code {\n const sch = schema[i]\n return typeof sch === \"object\" && sch !== null\n ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n : _`${data} === ${sch}`\n }\n },\n}\n\nexport default def\n","import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n // number\n limitNumber,\n multipleOf,\n // string\n limitLength,\n pattern,\n // object\n limitProperties,\n required,\n // array\n limitItems,\n uniqueItems,\n // any\n {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n {keyword: \"nullable\", schemaType: \"boolean\"},\n constKeyword,\n enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n {limit: number},\n number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n | LimitError\n | LimitNumberError\n | MultipleOfError\n | PatternError\n | RequiredError\n | UniqueItemsError\n | ConstError\n | EnumError\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} items`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} characters`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode, it} = cxt\n const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n const len =\n it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n maximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n minimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n exclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n exclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitNumberError = ErrorObject<\n Kwd,\n {limit: number; comparison: Comparison},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} properties`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n \"multipleOf\",\n {multipleOf: number},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schemaCode, it} = cxt\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision\n const res = gen.let(\"res\")\n const invalid = prec\n ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : _`${res} !== parseInt(${res})`\n cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {data, $data, schema, schemaCode, it} = cxt\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n const regExp = $data ? _`(new RegExp(${schemaCode}, ${u}))` : usePattern(cxt, schema)\n cxt.fail$data(_`!${regExp}.test(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n checkReportMissingProp,\n checkMissingProp,\n reportMissingProp,\n propertyInData,\n noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n \"required\",\n {missingProperty: string},\n string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, schemaCode, data, $data, it} = cxt\n const {opts} = it\n if (!$data && schema.length === 0) return\n const useLoop = schema.length >= opts.loopRequired\n if (it.allErrors) allErrorsMode()\n else exitOnErrorMode()\n\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties\n const {definedProperties} = cxt.it\n for (const requiredKey of schema) {\n if (props?.[requiredKey] === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`\n checkStrictMode(it, msg, it.opts.strictRequired)\n }\n }\n }\n\n function allErrorsMode(): void {\n if (useLoop || $data) {\n cxt.block$data(nil, loopAllRequired)\n } else {\n for (const prop of schema) {\n checkReportMissingProp(cxt, prop)\n }\n }\n }\n\n function exitOnErrorMode(): void {\n const missing = gen.let(\"missing\")\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true)\n cxt.block$data(valid, () => loopUntilMissing(missing, valid))\n cxt.ok(valid)\n } else {\n gen.if(checkMissingProp(cxt, schema, missing))\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n\n function loopAllRequired(): void {\n gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n cxt.setParams({missingProperty: prop})\n gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n })\n }\n\n function loopUntilMissing(missing: Name, valid: Name): void {\n cxt.setParams({missingProperty: missing})\n gen.forOf(\n missing,\n schemaCode as Code,\n () => {\n gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n gen.if(not(valid), () => {\n cxt.error()\n gen.break()\n })\n },\n nil\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n \"uniqueItems\",\n {i: number; j: number},\n boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {i, j}}) =>\n str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n if (!$data && !schema) return\n const valid = gen.let(\"valid\")\n const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n cxt.ok(valid)\n\n function validateUniqueItems(): void {\n const i = gen.let(\"i\", _`${data}.length`)\n const j = gen.let(\"j\")\n cxt.setParams({i, j})\n gen.assign(valid, true)\n gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n }\n\n function canOptimize(): boolean {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n }\n\n function loopN(i: Name, j: Name): void {\n const item = gen.name(\"item\")\n const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n const indices = gen.const(\"indices\", _`{}`)\n gen.for(_`;${i}--;`, () => {\n gen.let(item, _`${data}[${i}]`)\n gen.if(wrongType, _`continue`)\n if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n gen\n .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, _`${indices}[${item}]`)\n cxt.error()\n gen.assign(valid, false).break()\n })\n .code(_`${indices}[${item}] = ${i}`)\n })\n }\n\n function loopN2(i: Name, j: Name): void {\n const eql = useFunc(gen, equal)\n const outer = gen.name(\"outer\")\n gen.label(outer).for(_`;${i}--;`, () =>\n gen.for(_`${j} = ${i}; ${j}--;`, () =>\n gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error()\n gen.assign(valid, false).break(outer)\n })\n )\n )\n }\n },\n}\n\nexport default def\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n while (++index < events.length) {\n const token = events[index][1];\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n events.splice(index + 1, token.type === \"labelImage\" ? 4 : 2);\n token.type = \"data\";\n index++;\n }\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const label = {\n type: \"label\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n };\n const text = {\n type: \"labelText\",\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = Object.assign({}, events[open][1].end);\n const end = Object.assign({}, events[index][1].start);\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: Object.assign({}, events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: Object.assign({}, events[index][1].start),\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n };\n events[open][1].end = Object.assign({}, openingSequence.start);\n events[index][1].start = Object.assign({}, closingSequence.end);\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {undefined}\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type)\n return as([type, [...value]], value);\n \n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// \n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(options || destination)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// 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, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\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\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// Register `Raw` in tree:\n/// \n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */\nexport function Markdown(options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const children = options.children || ''\n const className = options.className\n const components = options.components\n const disallowedElements = options.disallowedElements\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n const mdastTree = processor.parse(file)\n /** @type {Nodes} */\n let hastTree = processor.runSync(mdastTree, file)\n\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: 'element',\n tagName: 'div',\n properties: {className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n hastTree.type === 'root' ? hastTree.children : [hastTree]\n )\n }\n }\n\n visit(hastTree, transform)\n\n return toJsxRuntime(hastTree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {Visitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {import('unist-util-visit-parents').BuildVisitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","export default function escapeStringRegexp(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 `\\xnn` 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","/**\n * @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'\n * @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'\n * @import {ConstructName, Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n * @import {Link, PhrasingContent} from 'mdast'\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct,\n notInConstruct\n }\n ]\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'link')\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/gu, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n // If it’s an email, the previous character should not be a slash.\n (!email || code !== 47)\n )\n}\n","/**\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteDefinition')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteReference')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteReference')\n const subexit = state.enter('reference')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\nfunction footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteDefinition')\n const subexit = state.enter('label')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n state.indentLines(state.containerFlow(node, tracker.current()), map)\n )\n exit()\n\n return value\n}\n\n/** @type {Map} */\nfunction map(line, index, blank) {\n if (index === 0) {\n return line\n }\n\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: \n *\n * @type {Array}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info)\n const exit = state.enter('strikethrough')\n let value = tracker.move('~~')\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|ReadonlyArray} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').ConstructName} ConstructName\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\n\nemphasis.peek = emphasisPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Html} Html\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').State} State\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Exit} Exit\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n /** @type {(node?: unknown) => node is Exclude} */\n (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n // To do: next major: removed since footnotes were added to GFM.\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n // Enabled by `mdast-util-math`:\n 'inlineMath',\n 'link',\n 'linkReference',\n // Enabled by `mdast-util-mdx`:\n 'mdxJsxTextElement',\n // Enabled by `mdast-util-mdx`:\n 'mdxTextExpression',\n 'strong',\n 'text',\n // Enabled by `mdast-util-directive`:\n 'textDirective'\n ])\n )\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkStrong} from '../util/check-strong.js'\n\nstrong.peek = strongPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value =\n '&#x' +\n value.charCodeAt(0).toString(16).toUpperCase() +\n ';' +\n value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return fn.call(state, node, info)\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n const align = token._align\n assert(align, 'expected `_align` on table')\n this.enter(\n {\n type: 'table',\n align: align.map(function (d) {\n return d === 'none' ? null : d\n }),\n children: []\n },\n token\n )\n this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'inlineCode')\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, state, info) {\n const exit = state.enter('tableCell')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = state.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableRowAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = state.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, state) {\n let value = defaultHandlers.inlineCode(node, parent, state)\n\n if (state.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2]\n assert(node.type === 'listItem')\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'paragraph')\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = state.createTracker(info)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = defaultHandlers.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiControl, markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: 'wwwAutolink',\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: 'protocolAutolink',\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: 'emailAutolink',\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\n\n/** @type {ConstructRecord} */\nconst text = {};\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {\n text\n };\n}\n\n/** @type {Code} */\nlet code = 48;\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this;\n /** @type {boolean | undefined} */\n let dot;\n /** @type {boolean} */\n let data;\n return start;\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (!gfmAtext(code) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkEmail');\n return atext(code);\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code);\n return atext;\n }\n if (code === 64) {\n effects.consume(code);\n return emailDomain;\n }\n return nok(code);\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: \n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code);\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true;\n effects.consume(code);\n return emailDomain;\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code);\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code);\n dot = true;\n return emailDomain;\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: .\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail');\n effects.exit('literalAutolink');\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this;\n return wwwStart;\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (code !== 87 && code !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkWww');\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code);\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this;\n let buffer = '';\n let seen = false;\n return protocolStart;\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if ((code === 72 || code === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkHttp');\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n return nok(code);\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code);\n return protocolSlashesInside;\n }\n }\n return nok(code);\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code);\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null || asciiControl(code) || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || unicodePunctuation(code) ? nok(code) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code);\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0;\n return wwwPrefixInside;\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++;\n effects.consume(code);\n return wwwPrefixInside;\n }\n if (code === 46 && size === 3) {\n effects.consume(code);\n return wwwPrefixAfter;\n }\n return nok(code);\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code);\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment;\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment;\n /** @type {boolean | undefined} */\n let seen;\n return domainInside;\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code);\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: .\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || code !== 45 && unicodePunctuation(code)) {\n return domainAfter(code);\n }\n seen = true;\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true;\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = undefined;\n }\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // \n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code);\n }\n return ok(code);\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++;\n effects.consume(code);\n return pathInside;\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code);\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 63 || code === 93 || code === 95 || code === 126) {\n return effects.check(trail, ok, pathAtPunctuation)(code);\n }\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n effects.consume(code);\n return pathInside;\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++;\n }\n effects.consume(code);\n return pathInside;\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail;\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (code === 33 || code === 34 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 63 || code === 95 || code === 126) {\n effects.consume(code);\n return trail;\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code);\n return trailCharacterReferenceStart;\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // .\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (code === null || code === 40 || code === 91 || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return trail(code);\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharacterReferenceInside(code) : nok(code);\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code);\n return trail;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return trailCharacterReferenceInside;\n }\n\n // It’s not a trail.\n return nok(code);\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code);\n return after;\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code);\n }\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return code === null || code === 40 || code === 42 || code === 95 || code === 91 || code === 93 || code === 126 || markdownLineEndingOrSpace(code);\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code);\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: .\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code));\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return code === 43 || code === 45 || code === 46 || code === 95 || asciiAlphanumeric(code);\n}\n\n/**\n * @param {Array} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === 'labelLink' || token.type === 'labelImage') && !token._balanced) {\n result = true;\n break;\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}","/**\n * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { blankLine } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n name: 'gfmFootnoteDefinition',\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: 'gfmFootnoteCall',\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: 'gfmPotentialFootnoteCall',\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {Token} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n\n // Exit if we’ve walked far enough.\n if (token.type === 'gfmFootnoteCall' || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return ok(code);\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n /** @type {Token | undefined} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === 'enter') {\n labelStart = events[index][1];\n break;\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker';\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n // Increment the end 1 character.\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n /** @type {Token} */\n const chunk = {\n type: \"chunkString\",\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n\n /** @type {Array} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1], events[index + 2], ['enter', call, context],\n // The `[`\n events[index + 3], events[index + 4],\n // The `^`.\n ['enter', marker, context], ['exit', marker, context],\n // Everything in between.\n ['enter', string, context], ['enter', chunk, context], ['exit', chunk, context], ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2], events[events.length - 1], ['exit', call, context]];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n /** @type {boolean} */\n let data;\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start;\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall');\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return callStart;\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code);\n effects.enter('gfmFootnoteCallMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallMarker');\n effects.enter('gfmFootnoteCallString');\n effects.enter('chunkString').contentType = 'string';\n return callData;\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteCallString');\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n effects.exit('gfmFootnoteCall');\n return ok;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? callEscape : callData;\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return callData;\n }\n return callData(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {string} */\n let identifier;\n let size = 0;\n /** @type {boolean | undefined} */\n let data;\n return start;\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true;\n effects.enter('gfmFootnoteDefinitionLabel');\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n return labelAtMarker;\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionMarker');\n effects.enter('gfmFootnoteDefinitionLabelString');\n effects.enter('chunkString').contentType = 'string';\n return labelInside;\n }\n return nok(code);\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteDefinitionLabelString');\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n effects.exit('gfmFootnoteDefinitionLabel');\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > \n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker');\n effects.consume(code);\n effects.exit('definitionMarker');\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(effects, whitespaceAfter, 'gfmFootnoteDefinitionWhitespace');\n }\n return nok(code);\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition');\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, 'gfmFootnoteDefinitionIndent', 4 + 1);\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'gfmFootnoteDefinitionIndent' && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);\n }\n}","/**\n * @import {Options} from 'micromark-extension-gfm-strikethrough'\n * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: 'strikethrough',\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === undefined) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {\n let open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = 'strikethroughSequence';\n events[open][1].type = 'strikethroughSequence';\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n\n // Opening.\n /** @type {Array} */\n const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n // Between.\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (previous === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code);\n }\n effects.enter('strikethroughSequenceTemporary');\n return more(code);\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous);\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code);\n effects.consume(code);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code);\n const token = effects.exit('strikethroughSequenceTemporary');\n const after = classifyCharacter(code);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok(code);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array}\n */\n this.map = [];\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0];\n });\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return;\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length;\n /** @type {Array>} */\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n\n // Truncate rest.\n events.length = this.map[index][0];\n }\n vecs.push([...events]);\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n events.push(...slice);\n slice = vecs.pop();\n }\n\n // Truncate everything.\n this.map.length = 0;\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add);\n // }\n\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array} events\n// * @param {Array} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n /** @type {Array} */\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(events[index + 1][1].type === 'tableDelimiterMarker' ? 'left' : 'none');\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right';\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break;\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}","/**\n * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { EditMap } from './edit-map.js';\nimport { gfmTableAlign } from './infer.js';\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {\n null: {\n name: 'table',\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n /** @type {boolean | undefined} */\n let seen;\n return start;\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore;\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n return next(code);\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead');\n effects.enter('tableRow');\n return headRowStart(code);\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code);\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true;\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1;\n return headRowBreak(code);\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0;\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true;\n effects.exit('tableRow');\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, \"whitespace\")(code);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n // Header cell count.\n size += 1;\n }\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n // Whether a delimiter was seen.\n seen = true;\n return headRowBreak;\n }\n\n // Anything else is cell data.\n effects.enter(\"data\");\n return headRowData(code);\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return headRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? headRowEscape : headRowData;\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return headRowData;\n }\n return headRowData(code);\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false;\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n effects.enter('tableDelimiterRow');\n // Track if we’ve seen a `:` or `|`.\n seen = false;\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return headDelimiterBefore(code);\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code);\n }\n if (code === 124) {\n seen = true;\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return headDelimiterCellBefore;\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code);\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code);\n }\n return headDelimiterValueBefore(code);\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1;\n seen = true;\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterLeftAlignmentAfter;\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1;\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code);\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller');\n return headDelimiterFiller(code);\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code);\n return headDelimiterFiller;\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true;\n effects.exit('tableDelimiterFiller');\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit('tableDelimiterFiller');\n return headDelimiterRightAlignmentAfter(code);\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code);\n }\n return headDelimiterCellAfter(code);\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code);\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code);\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow');\n effects.exit('tableHead');\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow');\n return bodyRowBreak(code);\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return bodyRowBreak;\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow');\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code);\n }\n\n // Anything else is cell content.\n effects.enter(\"data\");\n return bodyRowData(code);\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return bodyRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? bodyRowEscape : bodyRowData;\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return bodyRowData;\n }\n return bodyRowData(code);\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n /** @type {RowKind} */\n let rowKind = 0;\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0];\n /** @type {Range} */\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n /** @type {Token | undefined} */\n let currentTable;\n /** @type {Token | undefined} */\n let currentBody;\n /** @type {Token | undefined} */\n let currentCell;\n const map = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false;\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = undefined;\n lastTableEnd = 0;\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentTable, context]]);\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n inFirstCellAwaitingPipe = true;\n currentCell = undefined;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentBody, context]]);\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1;\n }\n // Cell data.\n else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n inFirstCellAwaitingPipe = false;\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly} context\n * @param {Readonly} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName = rowKind === 1 ? 'tableHeader' : rowKind === 2 ? 'tableDelimiter' : 'tableData';\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent';\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [['exit', previousCell, context]]);\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [['enter', previousCell, context]]);\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [['enter', valueToken, context]]);\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]]);\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [['exit', previousCell, context]]);\n previousCell = undefined;\n }\n return previousCell;\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly} map\n * @param {Readonly} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array} */\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push(['exit', tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push(['exit', table, context]);\n map.add(index + 1, 0, exits);\n}\n\n/**\n * @param {Readonly>} events\n * @param {number} index\n * @returns {Readonly}\n */\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === 'enter' ? 'start' : 'end';\n return event[1][side];\n}","/**\n * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nconst tasklistCheck = {\n name: 'tasklistCheck',\n tokenize: tokenizeTasklistCheck\n};\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this;\n return open;\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem) {\n return nok(code);\n }\n effects.enter('taskListCheck');\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n return inside;\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked');\n effects.consume(code);\n effects.exit('taskListCheckValueUnchecked');\n return close;\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked');\n effects.consume(code);\n effects.exit('taskListCheckValueChecked');\n return close;\n }\n return nok(code);\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n effects.exit('taskListCheck');\n return after;\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code);\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok, nok)(code);\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, \"whitespace\");\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code);\n }\n}","/// \n/// \n\n/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-gfm').Options} MdastOptions\n * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {MicromarkOptions & MdastOptions} Options\n * Configuration.\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n const settings = options || emptyOptions\n const data = self.data()\n\n const micromarkExtensions =\n data.micromarkExtensions || (data.micromarkExtensions = [])\n const fromMarkdownExtensions =\n data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n const toMarkdownExtensions =\n data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n micromarkExtensions.push(gfm(settings))\n fromMarkdownExtensions.push(gfmFromMarkdown())\n toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n * Configuration.\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n }\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export 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}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react'; // Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n\n return classNameCombinations[key];\n}\n\nexport function createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\nexport default function createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n\n if (!useInlineStyles) {\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []); // For compatibility with older versions of react-syntax-highlighter\n\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n\n var children = childrenCreator(node.children);\n return /*#__PURE__*/React.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}","export default (function (astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return /*#__PURE__*/React.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\n\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n \"float\": 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return /*#__PURE__*/React.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\n\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n\n return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines;\n var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n properties['className'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread(_objectSpread({}, properties.style), {}, {\n display: 'flex'\n });\n }\n\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\n\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n flattenCodeTree(node.children, classNames).forEach(function (i) {\n return newTree.push(i);\n });\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines\n });\n }\n\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return children;\n }\n\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n }; // if it's the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n\n if (stringChild) {\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [lastLineInPreviousSpan];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it's neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segement\".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n\n // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n } // must be refractor/prism, then\n\n\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\n\nexport default function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, _excluded);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre-wrap'\n });\n } else {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre'\n });\n }\n\n if (!astGenerator) {\n return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n }\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n\n\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}","import highlight from './highlight';\nimport defaultStyle from './styles/prism/prism';\nimport refractor from 'refractor';\nimport supportedLanguages from './languages/prism/supported-languages';\nvar highlighter = highlight(refractor, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"black\",\n \"background\": \"none\",\n \"textShadow\": \"0 1px white\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"black\",\n \"background\": \"#f5f2f0\",\n \"textShadow\": \"0 1px white\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \".5em 0\",\n \"overflow\": \"auto\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#f5f2f0\",\n \"padding\": \".1em\",\n \"borderRadius\": \".3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"slategray\"\n },\n \"prolog\": {\n \"color\": \"slategray\"\n },\n \"doctype\": {\n \"color\": \"slategray\"\n },\n \"cdata\": {\n \"color\": \"slategray\"\n },\n \"punctuation\": {\n \"color\": \"#999\"\n },\n \"namespace\": {\n \"Opacity\": \".7\"\n },\n \"property\": {\n \"color\": \"#905\"\n },\n \"tag\": {\n \"color\": \"#905\"\n },\n \"boolean\": {\n \"color\": \"#905\"\n },\n \"number\": {\n \"color\": \"#905\"\n },\n \"constant\": {\n \"color\": \"#905\"\n },\n \"symbol\": {\n \"color\": \"#905\"\n },\n \"deleted\": {\n \"color\": \"#905\"\n },\n \"selector\": {\n \"color\": \"#690\"\n },\n \"attr-name\": {\n \"color\": \"#690\"\n },\n \"string\": {\n \"color\": \"#690\"\n },\n \"char\": {\n \"color\": \"#690\"\n },\n \"builtin\": {\n \"color\": \"#690\"\n },\n \"inserted\": {\n \"color\": \"#690\"\n },\n \"operator\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \"entity\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\",\n \"cursor\": \"help\"\n },\n \"url\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \".language-css .token.string\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \".style .token.string\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \"atrule\": {\n \"color\": \"#07a\"\n },\n \"attr-value\": {\n \"color\": \"#07a\"\n },\n \"keyword\": {\n \"color\": \"#07a\"\n },\n \"function\": {\n \"color\": \"#DD4A68\"\n },\n \"class-name\": {\n \"color\": \"#DD4A68\"\n },\n \"regex\": {\n \"color\": \"#e90\"\n },\n \"important\": {\n \"color\": \"#e90\",\n \"fontWeight\": \"bold\"\n },\n \"variable\": {\n \"color\": \"#e90\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n }\n};","//\n// This file has been auto-generated by the `npm run build-languages-prism` task\n//\nexport default ['abap', 'abnf', 'actionscript', 'ada', 'agda', 'al', 'antlr4', 'apacheconf', 'apex', 'apl', 'applescript', 'aql', 'arduino', 'arff', 'asciidoc', 'asm6502', 'asmatmel', 'aspnet', 'autohotkey', 'autoit', 'avisynth', 'avro-idl', 'bash', 'basic', 'batch', 'bbcode', 'bicep', 'birb', 'bison', 'bnf', 'brainfuck', 'brightscript', 'bro', 'bsl', 'c', 'cfscript', 'chaiscript', 'cil', 'clike', 'clojure', 'cmake', 'cobol', 'coffeescript', 'concurnas', 'coq', 'cpp', 'crystal', 'csharp', 'cshtml', 'csp', 'css-extras', 'css', 'csv', 'cypher', 'd', 'dart', 'dataweave', 'dax', 'dhall', 'diff', 'django', 'dns-zone-file', 'docker', 'dot', 'ebnf', 'editorconfig', 'eiffel', 'ejs', 'elixir', 'elm', 'erb', 'erlang', 'etlua', 'excel-formula', 'factor', 'false', 'firestore-security-rules', 'flow', 'fortran', 'fsharp', 'ftl', 'gap', 'gcode', 'gdscript', 'gedcom', 'gherkin', 'git', 'glsl', 'gml', 'gn', 'go-module', 'go', 'graphql', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hcl', 'hlsl', 'hoon', 'hpkp', 'hsts', 'http', 'ichigojam', 'icon', 'icu-message-format', 'idris', 'iecst', 'ignore', 'inform7', 'ini', 'io', 'j', 'java', 'javadoc', 'javadoclike', 'javascript', 'javastacktrace', 'jexl', 'jolie', 'jq', 'js-extras', 'js-templates', 'jsdoc', 'json', 'json5', 'jsonp', 'jsstacktrace', 'jsx', 'julia', 'keepalived', 'keyman', 'kotlin', 'kumir', 'kusto', 'latex', 'latte', 'less', 'lilypond', 'liquid', 'lisp', 'livescript', 'llvm', 'log', 'lolcode', 'lua', 'magma', 'makefile', 'markdown', 'markup-templating', 'markup', 'matlab', 'maxscript', 'mel', 'mermaid', 'mizar', 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', 'naniscript', 'nasm', 'neon', 'nevod', 'nginx', 'nim', 'nix', 'nsis', 'objectivec', 'ocaml', 'opencl', 'openqasm', 'oz', 'parigp', 'parser', 'pascal', 'pascaligo', 'pcaxis', 'peoplecode', 'perl', 'php-extras', 'php', 'phpdoc', 'plsql', 'powerquery', 'powershell', 'processing', 'prolog', 'promql', 'properties', 'protobuf', 'psl', 'pug', 'puppet', 'pure', 'purebasic', 'purescript', 'python', 'q', 'qml', 'qore', 'qsharp', 'r', 'racket', 'reason', 'regex', 'rego', 'renpy', 'rest', 'rip', 'roboconf', 'robotframework', 'ruby', 'rust', 'sas', 'sass', 'scala', 'scheme', 'scss', 'shell-session', 'smali', 'smalltalk', 'smarty', 'sml', 'solidity', 'solution-file', 'soy', 'sparql', 'splunk-spl', 'sqf', 'sql', 'squirrel', 'stan', 'stylus', 'swift', 'systemd', 't4-cs', 't4-templating', 't4-vb', 'tap', 'tcl', 'textile', 'toml', 'tremor', 'tsx', 'tt2', 'turtle', 'twig', 'typescript', 'typoscript', 'unrealscript', 'uorazor', 'uri', 'v', 'vala', 'vbnet', 'velocity', 'verilog', 'vhdl', 'vim', 'visual-basic', 'warpscript', 'wasm', 'web-idl', 'wiki', 'wolfram', 'wren', 'xeora', 'xml-doc', 'xojo', 'xquery', 'yaml', 'yang', 'zig'];","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"#d6deeb\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"fontSize\": \"1em\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"white\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"fontSize\": \"1em\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \"0.5em 0\",\n \"overflow\": \"auto\",\n \"background\": \"#011627\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"rgba(29, 59, 83, 0.99)\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"rgba(29, 59, 83, 0.99)\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"rgba(29, 59, 83, 0.99)\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"rgba(29, 59, 83, 0.99)\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"rgba(29, 59, 83, 0.99)\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"rgba(29, 59, 83, 0.99)\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"rgba(29, 59, 83, 0.99)\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"rgba(29, 59, 83, 0.99)\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"color\": \"white\",\n \"background\": \"#011627\",\n \"padding\": \"0.1em\",\n \"borderRadius\": \"0.3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"rgb(99, 119, 119)\",\n \"fontStyle\": \"italic\"\n },\n \"prolog\": {\n \"color\": \"rgb(99, 119, 119)\",\n \"fontStyle\": \"italic\"\n },\n \"cdata\": {\n \"color\": \"rgb(99, 119, 119)\",\n \"fontStyle\": \"italic\"\n },\n \"punctuation\": {\n \"color\": \"rgb(199, 146, 234)\"\n },\n \".namespace\": {\n \"color\": \"rgb(178, 204, 214)\"\n },\n \"deleted\": {\n \"color\": \"rgba(239, 83, 80, 0.56)\",\n \"fontStyle\": \"italic\"\n },\n \"symbol\": {\n \"color\": \"rgb(128, 203, 196)\"\n },\n \"property\": {\n \"color\": \"rgb(128, 203, 196)\"\n },\n \"tag\": {\n \"color\": \"rgb(127, 219, 202)\"\n },\n \"operator\": {\n \"color\": \"rgb(127, 219, 202)\"\n },\n \"keyword\": {\n \"color\": \"rgb(127, 219, 202)\"\n },\n \"boolean\": {\n \"color\": \"rgb(255, 88, 116)\"\n },\n \"number\": {\n \"color\": \"rgb(247, 140, 108)\"\n },\n \"constant\": {\n \"color\": \"rgb(130, 170, 255)\"\n },\n \"function\": {\n \"color\": \"rgb(130, 170, 255)\"\n },\n \"builtin\": {\n \"color\": \"rgb(130, 170, 255)\"\n },\n \"char\": {\n \"color\": \"rgb(130, 170, 255)\"\n },\n \"selector\": {\n \"color\": \"rgb(199, 146, 234)\",\n \"fontStyle\": \"italic\"\n },\n \"doctype\": {\n \"color\": \"rgb(199, 146, 234)\",\n \"fontStyle\": \"italic\"\n },\n \"attr-name\": {\n \"color\": \"rgb(173, 219, 103)\",\n \"fontStyle\": \"italic\"\n },\n \"inserted\": {\n \"color\": \"rgb(173, 219, 103)\",\n \"fontStyle\": \"italic\"\n },\n \"string\": {\n \"color\": \"rgb(173, 219, 103)\"\n },\n \"url\": {\n \"color\": \"rgb(173, 219, 103)\"\n },\n \"entity\": {\n \"color\": \"rgb(173, 219, 103)\"\n },\n \".language-css .token.string\": {\n \"color\": \"rgb(173, 219, 103)\"\n },\n \".style .token.string\": {\n \"color\": \"rgb(173, 219, 103)\"\n },\n \"class-name\": {\n \"color\": \"rgb(255, 203, 139)\"\n },\n \"atrule\": {\n \"color\": \"rgb(255, 203, 139)\"\n },\n \"attr-value\": {\n \"color\": \"rgb(255, 203, 139)\"\n },\n \"regex\": {\n \"color\": \"rgb(214, 222, 235)\"\n },\n \"important\": {\n \"color\": \"rgb(214, 222, 235)\",\n \"fontWeight\": \"bold\"\n },\n \"variable\": {\n \"color\": \"rgb(214, 222, 235)\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n }\n};","export var IconsManifest = [\n {\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n },\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n },\n {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n },\n {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n }\n]","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function FiActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 18 12 15 21 9 3 6 12 2 12\"},\"child\":[]}]})(props);\n};\nexport function FiAirplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 15 17 21 7 21 12 15\"},\"child\":[]}]})(props);\n};\nexport function FiAlertCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"10\",\"x2\":\"6\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"18\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"7\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"7\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H2a10 10 0 0 0 20 0h-3\"},\"child\":[]}]})(props);\n};\nexport function FiAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"8\",\"x2\":\"20.05\",\"y2\":\"17.94\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"8\",\"x2\":\"21.17\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7.38\",\"y1\":\"12\",\"x2\":\"13.12\",\"y2\":\"2.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"16\",\"x2\":\"3.95\",\"y2\":\"6.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"16\",\"x2\":\"2.83\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.62\",\"y1\":\"12\",\"x2\":\"10.88\",\"y2\":\"21.94\"},\"child\":[]}]})(props);\n};\nexport function FiArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 8 21 21 3 21 3 8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"22\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"12\",\"x2\":\"14\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 12 12 16 16 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 17 7 17 7 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"17\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 7 17 17 7 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 12 12 19 5 12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 8 8 12 12 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"12\",\"x2\":\"8\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"12\",\"x2\":\"5\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 19 5 12 12 5\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 16 16 12 12 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 5 19 12 12 19\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 12 12 8 8 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 17 7 7 17 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"17\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 7 17 7 17 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 12 12 5 19 12\"},\"child\":[]}]})(props);\n};\nexport function FiAtSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"},\"child\":[]}]})(props);\n};\nexport function FiAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 6 7 12 13 12 9 18\"},\"child\":[]}]})(props);\n};\nexport function FiBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"6\",\"width\":\"18\",\"height\":\"12\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiBellOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.63 13A17.89 17.89 0 0 1 18 8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a6 6 0 0 0-9.33-5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]}]})(props);\n};\nexport function FiBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"},\"child\":[]}]})(props);\n};\nexport function FiBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]}]})(props);\n};\nexport function FiBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"},\"child\":[]}]})(props);\n};\nexport function FiBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"},\"child\":[]}]})(props);\n};\nexport function FiCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"4\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"2\",\"x2\":\"16\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCameraOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"},\"child\":[]}]})(props);\n};\nexport function FiCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"20\",\"x2\":\"2.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 4 12 14.01 9 11.01\"},\"child\":[]}]})(props);\n};\nexport function FiCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 11 12 14 22 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"},\"child\":[]}]})(props);\n};\nexport function FiCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 6 9 17 4 12\"},\"child\":[]}]})(props);\n};\nexport function FiChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 12 15 18 9\"},\"child\":[]}]})(props);\n};\nexport function FiChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 18 9 12 15 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 18 15 12 9 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 15 12 9 6 15\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 13 12 18 17 13\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 6 12 11 17 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 17 6 12 11 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 17 13 12 18 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 17 18 12 13 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 17 11 12 6 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 12 6 7 11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 12 13 7 18\"},\"child\":[]}]})(props);\n};\nexport function FiChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21.17\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3.95\",\"y1\":\"6.06\",\"x2\":\"8.54\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10.88\",\"y1\":\"21.94\",\"x2\":\"15.46\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"2\",\"width\":\"8\",\"height\":\"4\",\"rx\":\"1\",\"ry\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"},\"child\":[]}]})(props);\n};\nexport function FiCloudDrizzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"19\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"19\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 11 9 17 15 17 11 23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"16\",\"x2\":\"8.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"20\",\"x2\":\"8.01\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12.01\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"16\",\"x2\":\"16.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"20\",\"x2\":\"16.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"},\"child\":[]}]})(props);\n};\nexport function FiCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 18 22 12 16 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 2 12 8 18\"},\"child\":[]}]})(props);\n};\nexport function FiCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"15.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8.5 12 15.5 2 8.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 15.5 12 8.5 22 15.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"8.5\"},\"child\":[]}]})(props);\n};\nexport function FiCodesandbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 4.21 12 6.81 16.5 4.21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 19.79 7.5 14.6 3 12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 12 16.5 14.6 16.5 19.79\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h1a4 4 0 0 1 0 8h-1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"1\",\"x2\":\"6\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"1\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"1\",\"x2\":\"14\",\"y2\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"},\"child\":[]}]})(props);\n};\nexport function FiCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"},\"child\":[]}]})(props);\n};\nexport function FiCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"},\"child\":[]}]})(props);\n};\nexport function FiCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"13\",\"height\":\"13\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 10 4 15 9 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v7a4 4 0 0 1-4 4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 10 20 15 15 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v7a4 4 0 0 0 4 4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 15 9 20 4 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-7a4 4 0 0 0-4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 9 9 4 4 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20h-7a4 4 0 0 1-4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 15 15 20 20 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7a4 4 0 0 1 4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 15 4 20 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h7a4 4 0 0 0 4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 14 4 9 9 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-7a4 4 0 0 0-4-4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 14 20 9 15 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20v-7a4 4 0 0 1 4-4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCpu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"width\":\"16\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"1\",\"x2\":\"9\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"1\",\"x2\":\"15\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"9\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"14\",\"x2\":\"23\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"9\",\"x2\":\"4\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"4\",\"width\":\"22\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"10\",\"x2\":\"23\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.13 1L6 16a2 2 0 0 0 2 2h15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 6.13L16 6a2 2 0 0 1 2 2v15\"},\"child\":[]}]})(props);\n};\nexport function FiCrosshair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"18\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"},\"child\":[]}]})(props);\n};\nexport function FiDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"18\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDivideCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiDivideSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"},\"child\":[]}]})(props);\n};\nexport function FiDownloadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 17 12 21 16 17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"},\"child\":[]}]})(props);\n};\nexport function FiDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\"},\"child\":[]}]})(props);\n};\nexport function FiDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"},\"child\":[]}]})(props);\n};\nexport function FiExternalLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"14\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"},\"child\":[]}]})(props);\n};\nexport function FiFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 19 22 12 13 5 13 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"2 19 11 12 2 5 2 19\"},\"child\":[]}]})(props);\n};\nexport function FiFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"2\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"15\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"},\"child\":[]}]})(props);\n};\nexport function FiFileMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFilePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 9 9 8 9\"},\"child\":[]}]})(props);\n};\nexport function FiFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 2 13 9 20 9\"},\"child\":[]}]})(props);\n};\nexport function FiFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"2.18\",\"ry\":\"2.18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"2\",\"x2\":\"7\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"2\",\"x2\":\"17\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"22\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"22\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"},\"child\":[]}]})(props);\n};\nexport function FiFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"22\",\"x2\":\"4\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"11\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiFramer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\"},\"child\":[]}]})(props);\n};\nexport function FiFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 12 20 22 4 22 4 12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"},\"child\":[]}]})(props);\n};\nexport function FiGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"3\",\"x2\":\"6\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a9 9 0 0 1-9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1.05\",\"y1\":\"12\",\"x2\":\"7\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.01\",\"y1\":\"12\",\"x2\":\"22.96\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21V9a9 9 0 0 0 9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"9\",\"x2\":\"6\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"},\"child\":[]}]})(props);\n};\nexport function FiGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"},\"child\":[]}]})(props);\n};\nexport function FiGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"},\"child\":[]}]})(props);\n};\nexport function FiGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"16\",\"x2\":\"6.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"16\",\"x2\":\"10.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiHash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"9\",\"x2\":\"20\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"15\",\"x2\":\"20\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"3\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18v-6a9 9 0 0 1 18 0v6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"},\"child\":[]}]})(props);\n};\nexport function FiHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"},\"child\":[]}]})(props);\n};\nexport function FiHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiHexagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]}]})(props);\n};\nexport function FiHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 22 9 12 15 12 15 22\"},\"child\":[]}]})(props);\n};\nexport function FiImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"8.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 15 16 10 5 21\"},\"child\":[]}]})(props);\n};\nexport function FiInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]}]})(props);\n};\nexport function FiInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"5\",\"ry\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"6.5\",\"x2\":\"17.51\",\"y2\":\"6.5\"},\"child\":[]}]})(props);\n};\nexport function FiItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"4\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"20\",\"x2\":\"5\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"},\"child\":[]}]})(props);\n};\nexport function FiLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 2 7 12 12 22 7 12 2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 17 12 22 22 17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 12 12 17 22 12\"},\"child\":[]}]})(props);\n};\nexport function FiLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"9\",\"x2\":\"21\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"21\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiLifeBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"9.17\",\"y2\":\"9.17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"14.83\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"18.36\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"9.17\",\"y2\":\"14.83\"},\"child\":[]}]})(props);\n};\nexport function FiLink2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"},\"child\":[]}]})(props);\n};\nexport function FiLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"9\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"3.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"3.01\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"3.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiLoader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"7.76\",\"y2\":\"7.76\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"16.24\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"6\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"7.76\",\"y2\":\"16.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"7.76\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]}]})(props);\n};\nexport function FiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"},\"child\":[]}]})(props);\n};\nexport function FiLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 17 15 12 10 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 21 12 16 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"9\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22,6 12,13 2,6\"},\"child\":[]}]})(props);\n};\nexport function FiMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"6\",\"x2\":\"16\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 21 3 21 3 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"},\"child\":[]}]})(props);\n};\nexport function FiMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"15\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiMessageCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"},\"child\":[]}]})(props);\n};\nexport function FiMessageSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v2a7 7 0 0 1-14 0v-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 14 10 14 10 20\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 10 14 10 14 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"},\"child\":[]}]})(props);\n};\nexport function FiMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"3\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"21\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"},\"child\":[]}]})(props);\n};\nexport function FiMoreHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMoreVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMousePointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13l6 6\"},\"child\":[]}]})(props);\n};\nexport function FiMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 9 2 12 5 15\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 5 12 2 15 5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 19 12 22 9 19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 9 22 12 19 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 19 21 12 17 5 21 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 11 22 2 13 21 11 13 3 11\"},\"child\":[]}]})(props);\n};\nexport function FiOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]}]})(props);\n};\nexport function FiPackage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16.5\",\"y1\":\"9.4\",\"x2\":\"7.5\",\"y2\":\"4.21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"},\"child\":[]}]})(props);\n};\nexport function FiPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"15\",\"x2\":\"10\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"15\",\"x2\":\"14\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiPenTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19l7-7 3 3-7 7-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2l7.586 7.586\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"5\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneForwarded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 1 23 5 19 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"5\",\"x2\":\"23\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneIncoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 2 16 8 22 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"16\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"1\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 7 23 1 17 1\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.21 15.89A10 10 0 1 1 8 2.83\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 0 0 12 2v10z\"},\"child\":[]}]})(props);\n};\nexport function FiPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10 8 16 12 10 16 10 8\"},\"child\":[]}]})(props);\n};\nexport function FiPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 3 19 12 5 21 5 3\"},\"child\":[]}]})(props);\n};\nexport function FiPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 10 12 14 16 10\"},\"child\":[]}]})(props);\n};\nexport function FiPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64a9 9 0 1 1-12.73 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 6 2 18 2 18 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"width\":\"12\",\"height\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 20 23 14 17 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 20 1 14 7 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"},\"child\":[]}]})(props);\n};\nexport function FiRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 1 21 5 17 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11V9a4 4 0 0 1 4-4h14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 23 3 19 7 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v2a4 4 0 0 1-4 4H3\"},\"child\":[]}]})(props);\n};\nexport function FiRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 19 2 12 11 5 11 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 19 13 12 22 5 22 19\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"},\"child\":[]}]})(props);\n};\nexport function FiRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11a9 9 0 0 1 9 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a16 16 0 0 1 16 16\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 21 17 13 7 13 7 21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 3 7 8 15 8\"},\"child\":[]}]})(props);\n};\nexport function FiScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"4\",\"x2\":\"8.12\",\"y2\":\"15.88\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.47\",\"y1\":\"14.48\",\"x2\":\"20\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.12\",\"y1\":\"8.12\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]}]})(props);\n};\nexport function FiSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"2\",\"x2\":\"11\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 2 15 22 11 13 2 9 22 2\"},\"child\":[]}]})(props);\n};\nexport function FiServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"14\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"6.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"18\",\"x2\":\"6.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"},\"child\":[]}]})(props);\n};\nexport function FiShare2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.59\",\"y1\":\"13.51\",\"x2\":\"15.42\",\"y2\":\"17.49\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15.41\",\"y1\":\"6.51\",\"x2\":\"8.59\",\"y2\":\"10.49\"},\"child\":[]}]})(props);\n};\nexport function FiShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 6 12 2 8 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiShieldOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10a4 4 0 0 1-8 0\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"},\"child\":[]}]})(props);\n};\nexport function FiShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 3 21 3 21 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"20\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 16 21 21 16 21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"15\",\"x2\":\"21\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"3\",\"x2\":\"9\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiSkipBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19 20 9 12 19 4 19 20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"19\",\"x2\":\"5\",\"y2\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiSkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 4 15 12 5 20 5 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"19\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"},\"child\":[]}]})(props);\n};\nexport function FiSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]}]})(props);\n};\nexport function FiSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"10\",\"x2\":\"4\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"12\",\"x2\":\"20\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"7\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"8\",\"x2\":\"15\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"16\",\"x2\":\"23\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"2\",\"width\":\"14\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12.01\",\"y2\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"4.22\",\"x2\":\"5.64\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"18.36\",\"x2\":\"19.78\",\"y2\":\"19.78\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"23\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"19.78\",\"x2\":\"5.64\",\"y2\":\"18.36\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"5.64\",\"x2\":\"19.78\",\"y2\":\"4.22\"},\"child\":[]}]})(props);\n};\nexport function FiSunrise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 12 2 16 6\"},\"child\":[]}]})(props);\n};\nexport function FiSunset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 5 12 9 8 5\"},\"child\":[]}]})(props);\n};\nexport function FiTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\"},\"child\":[]}]})(props);\n};\nexport function FiTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"7.01\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiTarget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 17 10 11 4 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"20\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"},\"child\":[]}]})(props);\n};\nexport function FiTrash2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"11\",\"x2\":\"10\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]}]})(props);\n};\nexport function FiTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"7\",\"width\":\"3\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"7\",\"width\":\"3\",\"height\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 18 13.5 8.5 8.5 13.5 1 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 23 18 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 6 13.5 15.5 8.5 10.5 1 18\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 6 23 6 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FiTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"15\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16 8 20 8 23 11 23 16 16 16 16 8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"15\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 2 12 7 7 2\"},\"child\":[]}]})(props);\n};\nexport function FiTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3v16h5v4l4-4h5l4-4V2zM11 11V7M16 11V7\"},\"child\":[]}]})(props);\n};\nexport function FiTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"},\"child\":[]}]})(props);\n};\nexport function FiType (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 7 4 4 20 4 20 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"4\",\"x2\":\"12\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"},\"child\":[]}]})(props);\n};\nexport function FiUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 9.9-1\"},\"child\":[]}]})(props);\n};\nexport function FiUploadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]}]})(props);\n};\nexport function FiUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"3\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 19 13 23 9\"},\"child\":[]}]})(props);\n};\nexport function FiUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"8\",\"x2\":\"20\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"8\",\"x2\":\"18\",\"y2\":\"13\"},\"child\":[]}]})(props);\n};\nexport function FiUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 21v-2a4 4 0 0 0-3-3.87\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.13a4 4 0 0 1 0 7.75\"},\"child\":[]}]})(props);\n};\nexport function FiVideoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"23 7 16 12 23 17 23 7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"15\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5.5\",\"y1\":\"16\",\"x2\":\"18.5\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiVolume1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolume2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolumeX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"9\",\"x2\":\"17\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]}]})(props);\n};\nexport function FiWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 9 12 12 13.5 13.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"},\"child\":[]}]})(props);\n};\nexport function FiWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.71 5.05A16 16 0 0 1 22.58 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a11 11 0 0 1 14.08 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a16 16 0 0 1 21.16 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"},\"child\":[]}]})(props);\n};\nexport function FiXCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"6\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"18\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"},\"child\":[]}]})(props);\n};\nexport function FiZapOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"12.41 6.75 13 2 10.57 4.92\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18.57 12.91 21 10 15.66 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 3 14 12 14 11 22 16 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiZap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"},\"child\":[]}]})(props);\n};\nexport function FiZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"y1\":\"8\",\"x2\":\"11\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\n","import { Component } from \"react\";\nimport \"./blog-post.css\";\nimport { Spinner } from \"../../../spinner/spinner\";\nimport axios from \"axios\";\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { nightOwl } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport { FiCopy } from 'react-icons/fi';\n\n\nconst loadingblogPreviewsHtml = () => {\n return ;\n};\n\n\nexport class BlogPost extends Component {\n serviceUrl =\n \"https://5zu8h1w5o9.execute-api.us-east-1.amazonaws.com/default/blog\";\n\n constructor(props) {\n super(props);\n this.state = { content: \"\", loading: true };\n }\n\n retrieveBlogContent(id) {\n return axios.get(`${this.serviceUrl}/${id}`).then((content) => {\n this.content = content.data;\n this.setState({ content: content.data, loading: false });\n });\n }\n render() {\n const id = this.props.id;\n if (this.state.loading) {\n this.retrieveBlogContent(id);\n return loadingblogPreviewsHtml();\n } else {\n let content = this.state.content;\n return (\n
\n \n
\n

{content.title}

\n

{content.categorie.toUpperCase()} {content.updatedAt}

\n
\n
\n \n
\n
\n );\n }\n }\n}\n\nconst MarkdownRenderer = ({ content }) => {\n return (\n
\n \n {\n navigator.clipboard.writeText(children);\n }}\n >\n \n \n \n {String(children).replace(/\\n$/, '')}\n \n
\n ) : (\n \n {children}\n \n );\n },\n }}\n >\n {content}\n \n
\n );\n};\n","import { Component } from \"react\";\nimport { blogPreviewSectionHtml } from \"./blog-preview-section.html\";\nimport \"./blog-preview-section.css\";\n\nexport class BlogPeviewSection extends Component {\n render() {\n return blogPreviewSectionHtml(this.props.blogPost, this.props.onClick);\n }\n}\n","export const blogPreviewSectionHtml = (blogPost, onClick) => {\n return (\n
\n
\n
\n {blogPost.categorie}\n

{blogPost.updatedAt}

\n
\n
\n
\n
\n

\n {blogPost.title}\n

\n
\n

{blogPost.content.slice(0, 300) + '...'}

\n
\n \n
\n
\n );\n};\n","import { Component } from \"react\";\nimport { Spinner } from \"../../../spinner/spinner\";\nimport { BlogPeviewSection } from \"./components/blog-preview-section/blog-preview-section\";\nimport \"./blog-previews.css\";\nimport axios from \"axios\";\n\nexport class BlogPeviews extends Component {\n serviceUrl =\n \"https://5zu8h1w5o9.execute-api.us-east-1.amazonaws.com/default/blog\";\n\n constructor(props) {\n super(props);\n this.state = {\n content: \"\",\n loading: true,\n selectedCategory: \"\", // State to store selected category\n };\n }\n\n retrieveBlogContent() {\n return axios.get(this.serviceUrl).then((content) => {\n this.setState({ content: content.data, loading: false });\n });\n }\n\n handleCategoryChange = (event) => {\n this.setState({ selectedCategory: event.target.value });\n };\n\n render() {\n if (this.state.loading) {\n this.retrieveBlogContent();\n return loadingblogPreviewsHtml();\n } else {\n let content = this.state.content;\n\n // Get unique categories\n const categories = [\n ...new Set(content.map((post) => post.categorie.toUpperCase())),\n ];\n\n // Filter blog posts based on the selected category\n const filteredBlogPosts =\n this.state.selectedCategory === \"\" || this.state.selectedCategory === \"All\"\n ? content\n : content.filter(\n (post) =>\n post.categorie.toUpperCase() === this.state.selectedCategory\n );\n\n return (\n
\n
\n
\n \n Filter\n \n \n \n {categories.map((category) => (\n \n ))}\n \n
\n
\n
\n {filteredBlogPosts.map((blogPost) => (\n handleClick(blogPost.id)}\n />\n ))}\n
\n
\n );\n }\n }\n}\n\nfunction handleClick(id) {\n window.location.href = `/blog/${id}`;\n}\n\nexport const loadingblogPreviewsHtml = () => {\n return ;\n};\n","import { blogHtml, blogPost } from \"./blog.html\";\nimport \"./blog.css\";\n\nimport { useParams } from 'react-router-dom';\n\nexport function Blog(props) {\n const {id} = useParams();\n if(id){\n return blogPost(id);\n }\n return blogHtml();\n}\n","import { DarkHeader } from \"../headers/dark-header/dark-header\";\nimport { BlogPost } from \"./components/blog-post/blog-post\";\nimport { MainMenu } from \"../menu/menu\";\nimport { BlogPeviews } from \"./components/blog-previews/blog-previews\";\n\nexport const blogHtml = () => {\n var titleArray = [\"My doodles blog\", \"Software Bunker blog\"];\n var randomIndex = Math.floor(Math.random() * titleArray.length);\n var title = titleArray[randomIndex];\n return (\n
\n \n \n \n
\n );\n};\n\n\nexport const blogPost = (id) => {\n return (\n
\n \n \n
\n );\n};","import { Component } from \"react\";\nimport { loadingblogPreviewsHtml } from \"../blog/components/blog-previews/blog-previews.html\";\nimport { DarkHeader } from \"../headers/dark-header/dark-header\";\nimport axios from \"axios\";\nimport { MainMenu } from \"../menu/menu\";\nimport './docs.css';\n\n\nlet serviceUrl =\n \"https://a34oglmw79.execute-api.us-east-1.amazonaws.com/default/docs\";\n\nexport class Docs extends Component {\n render() {\n return (\n
\n \n \n \n
\n );\n }\n}\n\nclass DocsContent extends Component {\n \n constructor(props) {\n super(props);\n this.state = { content: \"\", loading: true, showPopup: false};\n }\n retrieveDocsContent() {\n return axios.get(serviceUrl).then((content) => {\n this.content = content.data;\n this.setState({ content: content.data, loading: false });\n });\n }\n render() {\n if (this.state.loading) {\n this.retrieveDocsContent();\n return loadingblogPreviewsHtml();\n } else {\n return (\n
\n
\n {this.state.content.map((doc, index) => (\n
\n \n {this.setState({showPopup: false})}}/>\n
\n ))}\n
\n
\n );\n }\n }\n}\n\nclass DocsPopup extends Component {\n\n constructor(props) {\n super(props);\n this.state = { status: 'idle', inputValue:'' };\n }\n \n getDoc(auth, document){\n axios.get(`${serviceUrl}?auth=${auth}&resource=${encodeURI(document)}`).then((response) => {\n let content = response.data;\n if(content.hasOwnProperty('link')){\n this.setState({status: 'success'})\n window.location.href = content.link;\n }\n else{\n this.setState({status: 'error'})\n }\n });\n }\n\n updateInputValue(evt) {\n const val = evt.target.value; \n this.setState({\n inputValue: val\n });\n }\n render() {\n if(this.props.show){\n return (\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n

Retrieve Document

\n {this.state.status === 'error' ?

Wrong passcode

: ''}\n
\n \n this.updateInputValue(evt)} name=\"passcode\" type=\"passcode\" autocomplete=\"passcode\" required className=\"min-w-0 flex-auto rounded-md border-0 bg-white/5 px-3.5 py-2 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-indigo-500 sm:text-sm sm:leading-6\" placeholder=\"Enter your passcode\"/>\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n );\n }\n }\n}\n","import { Spinner } from \"../../../spinner/spinner\";\nimport { BlogPeviewSection } from \"./components/blog-preview-section/blog-preview-section\";\n\n\nexport const blogPreviews = (blogPosts, categories) => {\n return (\n
\n
\n
\n \n \n \n {categories.map((category) => (\n \n ))}\n \n
\n
\n
\n {blogPosts.map((blogPost) => (\n handleClick(blogPost.id)}/>\n ))}\n
\n
\n );\n};\n\nfunction handleClick(id) {\n window.location.href = `/blog/${id}`;\n};\nexport const loadingblogPreviewsHtml = () => {\n return ;\n};\n","import { Component } from \"react\";\nimport { DarkHeader } from \"../headers/dark-header/dark-header\";\nimport { MainMenu } from \"../menu/menu\";\nimport \"./querycontent.css\";\n\nexport class QueryDisplayContent extends Component {\n render() {\n return (\n
\n \n \n \n
\n );\n }\n}\n\nclass DocsContent extends Component {\n\nrender() {\n const queryParams = new URLSearchParams(window.location.search);\n const params = {};\n\n for (const [name, value] of queryParams) {\n params[name] = value;\n }\n\n return (\n
\n
\n {Object.entries(params).map(([name, value]) => (\n
\n {name}: {value}\n
\n ))}\n
\n
\n );\n}\n}\n","import { Component } from \"react\";\n\nexport class ToolsDisplay extends Component {\n tools = [\n {\n name: 'JSON Formatter',\n icon: '/img/tools/json-formatter.png',\n description: 'A simple JSON formatter that allows you to format JSON data in a readable way.',\n link: '/tools/json-formatter'\n },\n {\n name: 'YAML Formatter',\n icon: '/img/tools/yaml-formatter.png',\n description: 'A simple YAML formatter that allows you to format YAML data in a readable way.',\n link: '/tools/yaml-formatter'\n },\n {\n name: 'Color Picker',\n icon: '/img/tools/color-picker.png',\n description: 'A simple color picker that allows you to pick a color from a color palette.',\n link: '/tools/color-picker'\n },\n {\n name: 'UUID Generator',\n icon: '/img/tools/uuid.png',\n description: 'Generates a random UUID.',\n link: '/tools/uuid-generator'\n },\n {\n name: 'JSON Schema Validator',\n icon: '/img/tools/json-schema-validator.png',\n description: 'A simple JSON schema validator that allows you to validate JSON data against a schema.',\n link: '/tools/json-schema-validator'\n },\n {\n name: 'Regex Tester',\n icon: '/img/tools/regex-tester.png',\n description: 'Allows you to test regular expressions against a string.',\n link: '/tools/regex-tester'\n }\n ]\n render() {\n return (\n
\n
\n {this.tools.map((tool, index) => (\n \n ))}\n
\n
\n );\n }\n}\n\nclass ToolCard extends Component {\n render() {\n return (\n
\n
\n {this.props.tool.name}\n

{this.props.tool.name}

\n

{this.props.tool.description}

\n\n \n Try it\n \n
\n
\n );\n }\n}","import React, { useState } from 'react';\n\nexport function JSONFormatter(props) {\n const [input, setInput] = useState('');\n const [output, setOutput] = useState('');\n const [error, setError] = useState('');\n\n const handleFormat = () => {\n try {\n // Preprocess input to replace single quotes with double quotes\n let sanitizedInput = input\n .replace(/'/g, '\"') // Replace all single quotes with double quotes\n .replace(/(\\w+)\\s*:/g, '\"$1\":') // Add quotes around object keys if missing\n .replace(/,\\s*}/g, '}'); // Correct trailing commas\n \n const formattedJson = JSON.stringify(JSON.parse(sanitizedInput), null, 2);\n setOutput(formattedJson);\n setError('');\n } catch (err) {\n setError(`Invalid JSON: ${err.message}`);\n setOutput('');\n }\n };\n\n const handleClear = () => {\n setInput('');\n setOutput('');\n setError('');\n };\n\n return (\n
\n
\n Unlike other formatters, this will correct some of your mistakes like missing quotes around keys and trailing commas.\n
\n

Original JSON:

\n setInput(e.target.value)}\n placeholder=\"Enter your JSON here...\"\n style={styles.textArea}\n />\n {error &&

{error}

}\n \n \n

Formatted JSON:

\n \n
\n );\n};\n\nconst styles = {\n container: {\n // maxWidth: '800px',\n margin: '0 auto',\n padding: '20px',\n fontFamily: 'Arial, sans-serif',\n },\n textArea: {\n width: '100%',\n height: '300px',\n padding: '15px',\n marginBottom: '10px',\n fontSize: '16px',\n border: '2px solid #ccc',\n borderRadius: '20px',\n },\n button: {\n backgroundColor: '#28a745',\n color: '#fff',\n padding: '10px 15px',\n border: 'none',\n borderRadius: '10px',\n cursor: 'pointer',\n marginRight: '10px',\n },\n clearButton: {\n backgroundColor: '#f4eeec',\n color: '#272727',\n padding: '10px 15px',\n border: 'none',\n borderRadius: '10px',\n cursor: 'pointer',\n },\n error: {\n color: '#880808',\n },\n};\n","\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}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\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;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\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\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\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) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\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\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\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\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\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\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}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\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\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\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\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\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\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\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\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 () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\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 (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\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\n\n if (ch === 'x') {\n // base 16\n index++;\n\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\n\n if (ch === 'o') {\n // base 8\n index++;\n\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\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\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\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\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\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\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 (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\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});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\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}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\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});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\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\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\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\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\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\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\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\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\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});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\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;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\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}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (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\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\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\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\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 &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _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\n // used for this specific key only because Object.defineProperty is slow\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\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\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}\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\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\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\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\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\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\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\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\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\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\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\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\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\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\n ch = state.input.charCodeAt(state.position);\n\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\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\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 // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current 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\n ch = state.input.charCodeAt(state.position);\n\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\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\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\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\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\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\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\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\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\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\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\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\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\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\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 sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\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}\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\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\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\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\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\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\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\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\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\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\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\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\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\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\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\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\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this 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\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\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\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\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\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\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\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\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 // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\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\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\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\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\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\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\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\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n 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\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\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}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\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\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\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}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\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; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\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';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\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\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\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\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\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\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\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\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 // Case: block styles permitted.\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 // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n 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 // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\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\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\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)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + 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}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\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\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\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 // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\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\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\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\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\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\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\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\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\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\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\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\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\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\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\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\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\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}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\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\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\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\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;\n\n// Re-export all types in case user wants to create custom schema\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};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","import React, { useState } from 'react';\nimport yaml from 'js-yaml';\n\nexport function YAMLFormatter(props) {\n const [input, setInput] = useState('');\n const [output, setOutput] = useState('');\n const [error, setError] = useState('');\n\n const handleFormat = () => {\n try {\n const parsedYaml = yaml.load(input); // Parse YAML to JavaScript object\n const formattedYaml = yaml.dump(parsedYaml, { indent: 2 }); // Dump it back to YAML with formatting\n setOutput(formattedYaml);\n setError('');\n } catch (err) {\n setError(`Invalid YAML ${err.message}`);\n setOutput('');\n }\n };\n\n const handleClear = () => {\n setInput('');\n setOutput('');\n setError('');\n };\n\n return (\n
\n

YAML Formatter

\n setInput(e.target.value)}\n placeholder=\"Enter your YAML here...\"\n style={styles.textArea}\n />\n {error &&

{error}

}\n \n \n

Formatted YAML:

\n \n
\n );\n};\n\n// Inline styles for simplicity\nconst styles = {\n container: {\n maxWidth: '800px',\n margin: '0 auto',\n padding: '20px',\n fontFamily: 'Arial, sans-serif',\n },\n textArea: {\n width: '100%',\n height: '200px',\n padding: '10px',\n marginBottom: '10px',\n fontSize: '16px',\n border: '2px solid #ccc',\n borderRadius: '4px',\n },\n button: {\n backgroundColor: '#28a745',\n color: '#fff',\n padding: '10px 15px',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n marginRight: '10px',\n },\n clearButton: {\n backgroundColor: '#f4eeec',\n color: '#272727',\n padding: '10px 15px',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n error: {\n color: '#880808',\n },\n};\n","import React, { useState } from \"react\";\nimport './color-picker.css';\n\n\nexport function ColorPickerConverter() {\n const [colorHex, setColorHex] = useState(\"#272727\"); // Initial color\n const [colorRgb, setColorRgb] = useState(\"rgb(255, 0, 0)\");\n const [colorHsl, setColorHsl] = useState(\"hsl(0, 100%, 50%)\");\n const recommendedColors = [\n { name: 'Ocean Blue', hex: '#1B4F72' },\n { name: 'Sunset Orange', hex: '#F39C12' },\n { name: 'Emerald Green', hex: '#2ECC71' },\n { name: 'Royal Purple', hex: '#8E44AD' },\n { name: 'Soft Pink', hex: '#FADBD8' },\n { name: 'Bright Yellow', hex: '#F4D03F' },\n { name: 'Sky Blue', hex: '#5DADE2' },\n { name: 'Coral Red', hex: '#E74C3C' },\n { name: 'Forest Green', hex: '#27AE60' },\n { name: 'Midnight Black', hex: '#2C3E50' },\n ];\n const [copiedColor, setCopiedColor] = useState(null);\n\n const handleCopy = (hex) => {\n navigator.clipboard.writeText(hex);\n setCopiedColor(hex);\n setTimeout(() => setCopiedColor(null), 2000); // Reset after 2 seconds\n };\n const hexToRgb = (hex) => {\n let r = 0,\n g = 0,\n b = 0;\n if (hex.length === 7) {\n r = parseInt(hex.slice(1, 3), 16);\n g = parseInt(hex.slice(3, 5), 16);\n b = parseInt(hex.slice(5, 7), 16);\n }\n return `rgb(${r}, ${g}, ${b})`;\n };\n\n const hexToHsl = (hex) => {\n let r = 0,\n g = 0,\n b = 0;\n if (hex.length === 7) {\n r = parseInt(hex.slice(1, 3), 16) / 255;\n g = parseInt(hex.slice(3, 5), 16) / 255;\n b = parseInt(hex.slice(5, 7), 16) / 255;\n }\n const max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n let h,\n s,\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h = h * 60;\n }\n return `hsl(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(\n l * 100\n )}%)`;\n };\n\n const handleColorChange = (e) => {\n const newColor = e.target.value;\n setColorHex(newColor);\n setColorRgb(hexToRgb(newColor));\n setColorHsl(hexToHsl(newColor));\n };\n\n return (\n
\n

Color Picker

\n
\n
\n \n {\n const hex = e.target.value;\n if (/^#[0-9A-F]{6}$/i.test(hex)) {\n setColorHex(hex);\n setColorRgb(hexToRgb(hex));\n setColorHsl(hexToHsl(hex));\n }\n }}\n style={styles.input}\n />\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n
\n

Recommended Colors

\n
\n
\n {recommendedColors.map((color) => (\n handleCopy(color.hex)}\n >\n

{color.name}

\n

{color.hex}

\n
\n ))}\n
\n {copiedColor &&

Copied {copiedColor} to clipboard!

}\n
\n
\n
\n );\n}\n\n// Inline styles\nconst styles = {\n container: {\n fontFamily: \"Arial, sans-serif\",\n margin: \"20px auto\",\n padding: \"20px\",\n backgroundColor: \"#f9f9f9\",\n borderRadius: \"20px\",\n },\n picker: {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"20px\",\n borderRadius: \"20px\",\n },\n input: {\n width: \"100%\",\n padding: \"5px\",\n marginTop: \"5px\",\n fontSize: \"16px\",\n backgroundColor: \"#f9f9f9\",\n },\n result: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr\",\n gridGap: \"10px\",\n marginBottom: \"20px\",\n },\n grid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))',\n gap: '20px',\n },\n colorBlock: {\n padding: '20px',\n color: '#fff',\n textAlign: 'center',\n borderRadius: '8px',\n cursor: 'pointer',\n transition: 'transform 0.2s ease-in-out',\n },\n colorName: {\n fontSize: '16px',\n marginBottom: '5px',\n },\n hexCode: {\n fontSize: '14px',\n },\n copiedMessage: {\n color: 'green',\n marginTop: '20px',\n textAlign: 'center',\n fontSize: '18px',\n },\n};\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import React, { useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport function UUIDGenerator(){\n const [uuidList, setUuidList] = useState([]);\n const [copiedUUID, setCopiedUUID] = useState(null);\n\n const generateUUID = () => {\n const newUUID = uuidv4();\n setUuidList([newUUID, ...uuidList]);\n };\n\n const handleCopy = (uuid) => {\n navigator.clipboard.writeText(uuid);\n setCopiedUUID(uuid);\n setTimeout(() => setCopiedUUID(null), 2000); // Reset after 2 seconds\n };\n\n const clearUUIDs = () => {\n setUuidList([]);\n };\n\n return (\n
\n

UUID Generator

\n \n \n
\n {uuidList.map((uuid, index) => (\n
\n {uuid}\n \n
\n ))}\n
\n {copiedUUID &&

Copied {copiedUUID} to clipboard!

}\n
\n );\n};\n\nconst styles = {\n container: {\n fontFamily: 'Arial, sans-serif',\n maxWidth: '600px',\n margin: '20px auto',\n padding: '20px',\n border: '1px solid #ccc',\n borderRadius: '8px',\n textAlign: 'center',\n },\n button: {\n backgroundColor: '#2C3E50',\n color: '#fff',\n padding: '10px 15px',\n margin: '10px',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n clearButton: {\n backgroundColor: '#f4eeec',\n color: '#272727',\n padding: '10px 15px',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n uuidList: {\n marginTop: '20px',\n textAlign: 'left',\n },\n uuidItem: {\n display: 'flex',\n justifyContent: 'space-between',\n backgroundColor: '#f8f9fa',\n padding: '10px',\n margin: '10px 0',\n border: '1px solid #ddd',\n borderRadius: '4px',\n },\n copyButton: {\n backgroundColor: '#2C3E50',\n color: '#fff',\n border: 'none',\n padding: '5px 10px',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n copiedMessage: {\n color: 'green',\n marginTop: '20px',\n fontSize: '16px',\n },\n};","import React, { useState } from \"react\";\nimport Ajv from \"ajv\";\nimport { Prism as SyntaxHighlighter } from \"react-syntax-highlighter\";\nimport { nightOwl } from \"react-syntax-highlighter/dist/esm/styles/prism\";\nimport { FiCopy } from \"react-icons/fi\";\n\nexport function JsonSchemaValidator() {\n const [jsonData, setJsonData] = useState(\"\");\n const [jsonSchema, setJsonSchema] = useState(\"\");\n const [validationResult, setValidationResult] = useState(null);\n const exampleSchema = `{\n \"type\": \"object\",\n \"properties\": {\n \"productName\": { \"type\": \"string\" },\n \"price\": { \"type\": \"number\" },\n \"inStock\": { \"type\": \"boolean\" },\n \"specifications\": {\n \"type\": \"object\",\n \"properties\": {\n \"processor\": { \"type\": \"string\" },\n \"ram\": { \"type\": \"string\" },\n \"storage\": { \"type\": \"string\" }\n },\n \"required\": [\"processor\", \"ram\", \"storage\"]\n }\n },\n \"required\": [\"productName\", \"price\", \"inStock\", \"specifications\"]\n}`;\n const exampleData = `{\n \"productName\": \"Laptop\",\n \"price\": 999.99,\n \"inStock\": true,\n \"specifications\": {\n \"processor\": \"Intel i7\",\n \"ram\": \"16GB\",\n \"storage\": \"512GB SSD\"\n }\n}`;\n const ajv = new Ajv();\n\n const handleValidate = () => {\n try {\n const parsedData = JSON.parse(jsonData);\n const parsedSchema = JSON.parse(jsonSchema);\n\n const validate = ajv.compile(parsedSchema);\n const isValid = validate(parsedData);\n\n if (isValid) {\n setValidationResult({ isValid: true, errors: null });\n } else {\n setValidationResult({ isValid: false, errors: validate.errors });\n }\n } catch (error) {\n setValidationResult({\n isValid: false,\n errors: [{ message: \"Invalid JSON or Schema syntax\" }],\n });\n }\n };\n\n const handleClear = () => {\n setJsonData(\"\");\n setJsonSchema(\"\");\n setValidationResult(null);\n };\n\n return (\n
\n

JSON Schema Validator

\n
\n setJsonData(e.target.value)}\n style={styles.textArea}\n />\n setJsonSchema(e.target.value)}\n style={styles.textArea}\n />\n
\n
\n \n \n
\n {validationResult && (\n
\n {validationResult.isValid ? (\n

\n JSON is valid according to the schema!\n

\n ) : (\n
\n

\n JSON is invalid according to the schema:\n

\n
    \n {validationResult.errors.map((error, index) => (\n
  • {error.message}
  • \n ))}\n
\n
\n )}\n
\n )}\n

Example:

\n
\n

JSON Data

\n
\n {\n navigator.clipboard.writeText(exampleSchema);\n }}\n >\n \n \n \n {exampleData}\n \n
\n

JSON Schema

\n
\n {\n navigator.clipboard.writeText(exampleSchema);\n }}\n >\n \n \n \n {exampleSchema}\n \n
\n
\n
\n );\n}\n\nconst styles = {\n container: {\n fontFamily: \"Arial, sans-serif\",\n maxWidth: \"900px\",\n margin: \"10px auto\",\n padding: \"20px\",\n border: \"1px solid #ccc\",\n borderRadius: \"8px\",\n },\n inputContainer: {\n display: \"flex\",\n gap: \"20px\",\n },\n textArea: {\n width: \"100%\",\n height: \"400px\",\n padding: \"10px\",\n fontSize: \"14px\",\n border: \"1px solid #ccc\",\n borderRadius: \"4px\",\n },\n buttonContainer: {\n marginTop: \"20px\",\n textAlign: \"center\",\n },\n button: {\n backgroundColor: \"#28a745\",\n color: \"#fff\",\n padding: \"10px 20px\",\n marginRight: \"10px\",\n border: \"none\",\n borderRadius: \"4px\",\n cursor: \"pointer\",\n },\n clearButton: {\n backgroundColor: '#f4eeec',\n color: '#272727',\n padding: '10px 15px',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n resultContainer: {\n marginTop: \"20px\",\n },\n validMessage: {\n color: \"green\",\n fontWeight: \"bold\",\n },\n invalidMessage: {\n color: \"red\",\n fontWeight: \"bold\",\n },\n errorList: {\n color: \"red\",\n },\n};\n","import React, { useState, useEffect } from 'react';\nimport './regex-tester.css';\n\n\nexport function RegexTester(props) {\n const [regex, setRegex] = useState('');\n const [testString, setTestString] = useState('');\n const [isMatch, setIsMatch] = useState(null); // true, false, or null for no result\n const [error, setError] = useState('');\n\n // Update match result automatically when regex or testString changes\n useEffect(() => {\n if (!regex) {\n setIsMatch(null);\n setError('');\n return;\n }\n\n try {\n // Clear previous results and errors\n setIsMatch(null);\n setError('');\n\n // Create a new RegExp object and test whether the whole string matches\n const regexPattern = new RegExp(`^${regex}$`); // Add ^ and $ to match the entire string\n const result = regexPattern.test(testString);\n setIsMatch(result);\n } catch (err) {\n // Catch regex errors and display them\n setError(`Invalid regex: ${err.message}`);\n setIsMatch(null);\n }\n }, [regex, testString]);\n\n const handleClear = () => {\n setRegex('');\n setTestString('');\n setIsMatch(null);\n setError('');\n };\n\n return (\n
\n
\n

Match Result:

\n {isMatch === null ? (\n

No regex provided or no result yet.

\n ) : isMatch ? (\n

Match

\n ) : (\n

No Match.

\n )}\n
\n {error &&

{error}

}\n
\n setRegex(e.target.value)}\n className=\"regex-textarea\"\n />\n setTestString(e.target.value)}\n className=\"regex-textarea\"\n />\n
\n\n
\n \n
\n
\n );\n};\n\nexport default RegexTester;\n","import { DarkHeader } from \"../headers/dark-header/dark-header\";\nimport { MainMenu } from \"../menu/menu\";\nimport { ToolsDisplay } from \"./tools-display\";\nimport { useParams } from 'react-router-dom';\nimport { JSONFormatter } from \"./formatters/json-formatter\";\nimport { YAMLFormatter } from \"./formatters/yaml-formatter\";\nimport { ColorPickerConverter } from \"./design/color-picker\";\nimport { UUIDGenerator } from \"./generators/uuid\";\nimport { JsonSchemaValidator } from \"./validators/json-schema-validator\";\nimport { RegexTester } from \"./validators/regex-tester\";\n\nexport function Tools(props) {\n const {name} = useParams();\n switch(name){\n case \"json-formatter\":\n return (\n
\n \n \n \n
\n ); \n case \"yaml-formatter\":\n return (\n
\n \n \n \n
\n );\n case \"color-picker\":\n return (\n
\n \n \n \n
\n );\n case \"uuid-generator\":\n return (\n
\n \n \n \n
\n );\n case \"json-schema-validator\":\n return (\n
\n \n \n \n
\n );\n case \"regex-tester\":\n return (\n
\n \n \n \n
\n );\n default:\n return (\n
\n \n \n \n
\n ); \n }\n \n}\n","import './light-header.css';\n\nexport function LightHeader(props) {\n const title = props.title;\n const content = props.content;\n return (\n
\n

{title}

\n

{content}

\n
\n ); \n}\n","import { useState } from \"react\";\nimport { LightHeader } from \"../headers/light-header/light-header\";\nimport { MainMenu } from \"../menu/menu\";\nimport './courses.css';\n\nconst courses = [\n {\n name: \"Headless Architecture\",\n description: \"Headless Architecture is the new way to build your applications, learn the basics here\",\n link: \"/courses/headless-architecture\"\n },\n // {\n // name: \"Serverless Computing\",\n // description: \"Learn how to build scalable and cost-effective applications using serverless computing\",\n // link: \"/courses/serverless-computing\"\n // },\n // {\n // name: \"Microservices Architecture\",\n // description: \"Discover the benefits and best practices of building applications using microservices architecture\",\n // link: \"/courses/microservices-architecture\"\n // },\n // {\n // name: \"Cloud Native Development\",\n // description: \"Learn how to develop and deploy applications in a cloud-native environment\",\n // link: \"/courses/cloud-native-development\"\n // },\n // {\n // name: \"DevOps Fundamentals\",\n // description: \"Master the principles and tools of DevOps to streamline your software development process\",\n // link: \"/courses/devops-fundamentals\"\n // },\n // {\n // name: \"Containerization with Docker\",\n // description: \"Get hands-on experience with Docker and learn how to containerize your applications\",\n // link: \"/courses/containerization-with-docker\"\n // }\n];\n\nexport function Courses(props) {\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const filteredCourses = courses.filter(course => \n course.name.toLowerCase().includes(searchTerm.toLowerCase()) ||\n course.description.toLowerCase().includes(searchTerm.toLowerCase())\n );\n\n return (\n
\n \n \n
\n
\n \n {/* Search Bar */}\n
\n setSearchTerm(e.target.value)}\n />\n
\n\n {/* Course Cards */}\n
\n {filteredCourses.length > 0 ? (\n filteredCourses.map((course, index) => (\n \n ))\n ) : (\n

No courses found

\n )}\n
\n
\n
\n
\n ); \n}\n\nfunction CourseCard(props) {\n return (\n
\n

{props.course.name}

\n

{props.course.description}

\n \n
\n \n Access\n \n \n \n \n
\n
\n );\n}\n","import './small-dark-header.css';\n\nexport function SmallDarkHeader(props) {\n const title = props.title;\n const content = props.content;\n return (\n
\n

{title}

\n

{content}

\n
\n ); \n}\n","import { useState } from \"react\";\nimport \"./headless-architecture.css\";\n\nconst courseContent = {\n title: \"Headless Architecture\",\n lessons: [\n { id: 1, title: \"What is Headless Architecture?\", content: \"Headless architecture is a design principle that decouples the front-end and back-end of a web application.\" },\n { id: 2, title: \"Why Use Headless Architecture?\", content: \"Headless architecture allows for more flexibility in the design and development of web applications.\" },\n { id: 3, title: \"How to Implement Headless Architecture\", content: \"To implement headless architecture, you need to create separate front-end and back-end components that communicate with each other using APIs.\" }\n ]\n};\n\nexport function HeadlessArchitecture() {\n const [selectedLesson, setSelectedLesson] = useState(courseContent.lessons[0]);\n const [menuOpen, setMenuOpen] = useState(false);\n\n return (\n
\n {/* Dropdown Button for Small Screens */}\n
\n setMenuOpen(!menuOpen)}\n >\n {menuOpen ? \"Close Menu\" : \"Select Chapter\"}\n \n
\n\n {/* Side Navigation Menu */}\n \n
    \n {courseContent.lessons.map((lesson) => (\n
  • \n {\n setSelectedLesson(lesson);\n setMenuOpen(false); // Close menu when a lesson is selected on mobile\n }}\n >\n {lesson.title}\n \n
  • \n ))}\n
\n \n\n {/* Main Course Content */}\n
\n

{selectedLesson.title}

\n

{selectedLesson.content}

\n
\n
\n );\n}\n","import { useParams } from \"react-router-dom\";\nimport { LightHeader } from \"../headers/light-header/light-header\";\nimport { SmallDarkHeader } from \"../headers/small-dark-header/small-dark-header\";\nimport { HeadlessArchitecture } from \"./headless-architecture/headless-architecture\";\nimport { MainMenu } from \"../menu/menu\";\nimport \"./courses.css\";\n\nexport function CourseDisplay(props) {\n const { name } = useParams();\n switch (name) {\n case \"headless-architecture\":\n return (\n
\n \n \n \n
\n );\n default:\n return (\n
\n \n \n
\n );\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\n */\n\nexport const CONSTANTS = {\n /**\n * @define {boolean} Whether this is the client Node.js SDK.\n */\n NODE_CLIENT: false,\n /**\n * @define {boolean} Whether this is the Admin Node.js SDK.\n */\n NODE_ADMIN: false,\n\n /**\n * Firebase SDK Version\n */\n SDK_VERSION: '${JSCORE_VERSION}'\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst stringToByteArray = function (str: string): number[] {\n // TODO(user): Use native implementations if/when available\n const out: number[] = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n } else if (\n (c & 0xfc00) === 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00\n ) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n } else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes: number[]): string {\n // TODO(user): Use native implementations if/when available\n const out: string[] = [];\n let pos = 0,\n c = 0;\n while (pos < bytes.length) {\n const c1 = bytes[pos++];\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n const c2 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n const c4 = bytes[pos++];\n const u =\n (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n out[c++] = String.fromCharCode(\n ((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)\n );\n }\n }\n return out.join('');\n};\n\ninterface Base64 {\n byteToCharMap_: { [key: number]: string } | null;\n charToByteMap_: { [key: string]: number } | null;\n byteToCharMapWebSafe_: { [key: number]: string } | null;\n charToByteMapWebSafe_: { [key: string]: number } | null;\n ENCODED_VALS_BASE: string;\n readonly ENCODED_VALS: string;\n readonly ENCODED_VALS_WEBSAFE: string;\n HAS_NATIVE_SUPPORT: boolean;\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string;\n encodeString(input: string, webSafe?: boolean): string;\n decodeString(input: string, webSafe: boolean): string;\n decodeStringToByteArray(input: string, webSafe: boolean): number[];\n init_(): void;\n}\n\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\nexport const base64: Base64 = {\n /**\n * Maps bytes to characters.\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n */\n ENCODED_VALS_BASE:\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\n * Our websafe alphabet.\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\n * Whether this browser supports the atob and btoa functions. This extension\n * started at Mozilla but is now implemented by many browsers. We use the\n * ASSUME_* variables to avoid pulling in the full useragent detection library\n * but still allowing the standard per-browser compilations.\n *\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\n * Base64-encode an array of bytes.\n *\n * @param input An array of bytes (numbers with\n * value in [0, 255]) to encode.\n * @param webSafe Boolean indicating we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n\n const byteToCharMap = webSafe\n ? this.byteToCharMapWebSafe_!\n : this.byteToCharMap_!;\n\n const output = [];\n\n for (let i = 0; i < input.length; i += 3) {\n const byte1 = input[i];\n const haveByte2 = i + 1 < input.length;\n const byte2 = haveByte2 ? input[i + 1] : 0;\n const haveByte3 = i + 2 < input.length;\n const byte3 = haveByte3 ? input[i + 2] : 0;\n\n const outByte1 = byte1 >> 2;\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n let outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(\n byteToCharMap[outByte1],\n byteToCharMap[outByte2],\n byteToCharMap[outByte3],\n byteToCharMap[outByte4]\n );\n }\n\n return output.join('');\n },\n\n /**\n * Base64-encode a string.\n *\n * @param input A string to encode.\n * @param webSafe If true, we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeString(input: string, webSafe?: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\n * Base64-decode a string.\n *\n * @param input to decode.\n * @param webSafe True if we should use the\n * alternative alphabet.\n * @return string representing the decoded value.\n */\n decodeString(input: string, webSafe: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\n * Base64-decode a string.\n *\n * In base-64 decoding, groups of four characters are converted into three\n * bytes. If the encoder did not apply padding, the input length may not\n * be a multiple of 4.\n *\n * In this case, the last group will have fewer than 4 characters, and\n * padding will be inferred. If the group has one or two characters, it decodes\n * to one byte. If the group has three characters, it decodes to two bytes.\n *\n * @param input Input to decode.\n * @param webSafe True if we should use the web-safe alphabet.\n * @return bytes representing the decoded value.\n */\n decodeStringToByteArray(input: string, webSafe: boolean): number[] {\n this.init_();\n\n const charToByteMap = webSafe\n ? this.charToByteMapWebSafe_!\n : this.charToByteMap_!;\n\n const output: number[] = [];\n\n for (let i = 0; i < input.length; ) {\n const byte1 = charToByteMap[input.charAt(i++)];\n\n const haveByte2 = i < input.length;\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n const haveByte3 = i < input.length;\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n const haveByte4 = i < input.length;\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw new DecodeBase64StringError();\n }\n\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\n output.push(outByte1);\n\n if (byte3 !== 64) {\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n output.push(outByte2);\n\n if (byte4 !== 64) {\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Lazy static initialization function. Called before\n * accessing any of the static map variables.\n * @private\n */\n init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n\n // Be forgiving when decoding and correctly decode both encodings.\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n\n/**\n * An error encountered while decoding base64 string.\n */\nexport class DecodeBase64StringError extends Error {\n readonly name = 'DecodeBase64StringError';\n}\n\n/**\n * URL-safe base64 encoding\n */\nexport const base64Encode = function (str: string): string {\n const utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nexport const base64urlEncodeWithoutPadding = function (str: string): string {\n // Use base64url encoding and remove padding in the end (dot characters).\n return base64Encode(str).replace(/\\./g, '');\n};\n\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nexport const base64Decode = function (str: string): string | null {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n return null;\n};\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { base64Decode } from './crypt';\nimport { getGlobal } from './global';\n\n/**\n * Keys for experimental properties on the `FirebaseDefaults` object.\n * @public\n */\nexport type ExperimentalKey = 'authTokenSyncURL' | 'authIdTokenMaxAge';\n\n/**\n * An object that can be injected into the environment as __FIREBASE_DEFAULTS__,\n * either as a property of globalThis, a shell environment variable, or a\n * cookie.\n *\n * This object can be used to automatically configure and initialize\n * a Firebase app as well as any emulators.\n *\n * @public\n */\nexport interface FirebaseDefaults {\n config?: Record;\n emulatorHosts?: Record;\n _authTokenSyncURL?: string;\n _authIdTokenMaxAge?: number;\n /**\n * Override Firebase's runtime environment detection and\n * force the SDK to act as if it were in the specified environment.\n */\n forceEnvironment?: 'browser' | 'node';\n [key: string]: unknown;\n}\n\ndeclare global {\n // Need `var` for this to work.\n // eslint-disable-next-line no-var\n var __FIREBASE_DEFAULTS__: FirebaseDefaults | undefined;\n}\n\nconst getDefaultsFromGlobal = (): FirebaseDefaults | undefined =>\n getGlobal().__FIREBASE_DEFAULTS__;\n\n/**\n * Attempt to read defaults from a JSON string provided to\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\n * The dots are in parens because certain compilers (Vite?) cannot\n * handle seeing that variable in comments.\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\n */\nconst getDefaultsFromEnvVariable = (): FirebaseDefaults | undefined => {\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\n return;\n }\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\n if (defaultsJsonString) {\n return JSON.parse(defaultsJsonString);\n }\n};\n\nconst getDefaultsFromCookie = (): FirebaseDefaults | undefined => {\n if (typeof document === 'undefined') {\n return;\n }\n let match;\n try {\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\n } catch (e) {\n // Some environments such as Angular Universal SSR have a\n // `document` object but error on accessing `document.cookie`.\n return;\n }\n const decoded = match && base64Decode(match[1]);\n return decoded && JSON.parse(decoded);\n};\n\n/**\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\n * (1) if such an object exists as a property of `globalThis`\n * (2) if such an object was provided on a shell environment variable\n * (3) if such an object exists in a cookie\n * @public\n */\nexport const getDefaults = (): FirebaseDefaults | undefined => {\n try {\n return (\n getDefaultsFromGlobal() ||\n getDefaultsFromEnvVariable() ||\n getDefaultsFromCookie()\n );\n } catch (e) {\n /**\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\n * to any environment case we have not accounted for. Log to\n * info instead of swallowing so we can find these unknown cases\n * and add paths for them if needed.\n */\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\n return;\n }\n};\n\n/**\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\n * @public\n */\nexport const getDefaultEmulatorHost = (\n productName: string\n): string | undefined => getDefaults()?.emulatorHosts?.[productName];\n\n/**\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\n * @public\n */\nexport const getDefaultEmulatorHostnameAndPort = (\n productName: string\n): [hostname: string, port: number] | undefined => {\n const host = getDefaultEmulatorHost(productName);\n if (!host) {\n return undefined;\n }\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\n }\n // eslint-disable-next-line no-restricted-globals\n const port = parseInt(host.substring(separatorIndex + 1), 10);\n if (host[0] === '[') {\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\n return [host.substring(1, separatorIndex - 1), port];\n } else {\n return [host.substring(0, separatorIndex), port];\n }\n};\n\n/**\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\n * @public\n */\nexport const getDefaultAppConfig = (): Record | undefined =>\n getDefaults()?.config;\n\n/**\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\n * prefixed by \"_\")\n * @public\n */\nexport const getExperimentalSetting = (\n name: T\n): FirebaseDefaults[`_${T}`] =>\n getDefaults()?.[`_${name}`] as FirebaseDefaults[`_${T}`];\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n * @public\n */\nexport function getGlobal(): typeof globalThis {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('Unable to locate global object.');\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class Deferred {\n promise: Promise;\n reject: (value?: unknown) => void = () => {};\n resolve: (value?: unknown) => void = () => {};\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve as (value?: unknown) => void;\n this.reject = reject as (value?: unknown) => void;\n });\n }\n\n /**\n * Our API internals are not promisified and cannot because our callback APIs have subtle expectations around\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\n */\n wrapCallback(\n callback?: (error?: unknown, value?: unknown) => void\n ): (error: unknown, value?: unknown) => void {\n return (error, value?) => {\n if (error) {\n this.reject(error);\n } else {\n this.resolve(value);\n }\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n this.promise.catch(() => {});\n\n // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CONSTANTS } from './constants';\nimport { getDefaults } from './defaults';\n\n/**\n * Type placeholder for `WorkerGlobalScope` from `webworker`\n */\ndeclare class WorkerGlobalScope {}\n\n/**\n * Returns navigator.userAgent string or '' if it's not defined.\n * @return user agent string\n */\nexport function getUA(): string {\n if (\n typeof navigator !== 'undefined' &&\n typeof navigator['userAgent'] === 'string'\n ) {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n\n/**\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\n *\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\n * wait for a callback.\n */\nexport function isMobileCordova(): boolean {\n return (\n typeof window !== 'undefined' &&\n // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())\n );\n}\n\n/**\n * Detect Node.js.\n *\n * @return true if Node.js environment is detected or specified.\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\nexport function isNode(): boolean {\n const forceEnvironment = getDefaults()?.forceEnvironment;\n if (forceEnvironment === 'node') {\n return true;\n } else if (forceEnvironment === 'browser') {\n return false;\n }\n\n try {\n return (\n Object.prototype.toString.call(global.process) === '[object process]'\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Detect Browser Environment.\n * Note: This will return true for certain test frameworks that are incompletely\n * mimicking a browser, and should not lead to assuming all browser APIs are\n * available.\n */\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined' || isWebWorker();\n}\n\n/**\n * Detect Web Worker context.\n */\nexport function isWebWorker(): boolean {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n typeof self !== 'undefined' &&\n self instanceof WorkerGlobalScope\n );\n}\n\n/**\n * Detect Cloudflare Worker context.\n */\nexport function isCloudflareWorker(): boolean {\n return (\n typeof navigator !== 'undefined' &&\n navigator.userAgent === 'Cloudflare-Workers'\n );\n}\n\n/**\n * Detect browser extensions (Chrome and Firefox at least).\n */\ninterface BrowserRuntime {\n id?: unknown;\n}\ndeclare const chrome: { runtime?: BrowserRuntime };\ndeclare const browser: { runtime?: BrowserRuntime };\nexport function isBrowserExtension(): boolean {\n const runtime =\n typeof chrome === 'object'\n ? chrome.runtime\n : typeof browser === 'object'\n ? browser.runtime\n : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n\n/**\n * Detect React Native.\n *\n * @return true if ReactNative environment is detected.\n */\nexport function isReactNative(): boolean {\n return (\n typeof navigator === 'object' && navigator['product'] === 'ReactNative'\n );\n}\n\n/** Detects Electron apps. */\nexport function isElectron(): boolean {\n return getUA().indexOf('Electron/') >= 0;\n}\n\n/** Detects Internet Explorer. */\nexport function isIE(): boolean {\n const ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n\n/** Detects Universal Windows Platform apps. */\nexport function isUWP(): boolean {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n\n/**\n * Detect whether the current SDK build is the Node version.\n *\n * @return true if it's the Node SDK build.\n */\nexport function isNodeSdk(): boolean {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n\n/** Returns true if we are running in Safari. */\nexport function isSafari(): boolean {\n return (\n !isNode() &&\n !!navigator.userAgent &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n );\n}\n\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nexport function isIndexedDBAvailable(): boolean {\n try {\n return typeof indexedDB === 'object';\n } catch (e) {\n return false;\n }\n}\n\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nexport function validateIndexedDBOpenable(): Promise {\n return new Promise((resolve, reject) => {\n try {\n let preExist: boolean = true;\n const DB_CHECK_NAME =\n 'validate-browser-context-for-indexeddb-analytics-module';\n const request = self.indexedDB.open(DB_CHECK_NAME);\n request.onsuccess = () => {\n request.result.close();\n // delete database only when it doesn't pre-exist\n if (!preExist) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n }\n resolve(true);\n };\n request.onupgradeneeded = () => {\n preExist = false;\n };\n\n request.onerror = () => {\n reject(request.error?.message || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n *\n * This method checks whether cookie is enabled within current browser\n * @return true if cookie is enabled within current browser\n */\nexport function areCookiesEnabled(): boolean {\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\n return false;\n }\n return true;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Standardized Firebase Error.\n *\n * Usage:\n *\n * // TypeScript string literals for type-safe codes\n * type Err =\n * 'unknown' |\n * 'object-not-found'\n * ;\n *\n * // Closure enum for type-safe error codes\n * // at-enum {string}\n * var Err = {\n * UNKNOWN: 'unknown',\n * OBJECT_NOT_FOUND: 'object-not-found',\n * }\n *\n * let errors: Map = {\n * 'generic-error': \"Unknown error\",\n * 'file-not-found': \"Could not find file: {$file}\",\n * };\n *\n * // Type-safe function - must pass a valid error code as param.\n * let error = new ErrorFactory('service', 'Service', errors);\n *\n * ...\n * throw error.create(Err.GENERIC);\n * ...\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\n * ...\n * // Service: Could not file file: foo.txt (service/file-not-found).\n *\n * catch (e) {\n * assert(e.message === \"Could not find file: foo.txt.\");\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\n * console.log(\"Could not read file: \" + e['file']);\n * }\n * }\n */\n\nexport type ErrorMap = {\n readonly [K in ErrorCode]: string;\n};\n\nconst ERROR_NAME = 'FirebaseError';\n\nexport interface StringLike {\n toString(): string;\n}\n\nexport interface ErrorData {\n [key: string]: unknown;\n}\n\n// Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\nexport class FirebaseError extends Error {\n /** The custom name for all FirebaseErrors. */\n readonly name: string = ERROR_NAME;\n\n constructor(\n /** The error code for this error. */\n readonly code: string,\n message: string,\n /** Custom data for this error. */\n public customData?: Record\n ) {\n super(message);\n\n // Fix For ES5\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, FirebaseError.prototype);\n\n // Maintains proper stack trace for where our error was thrown.\n // Only available on V8.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\n }\n }\n}\n\nexport class ErrorFactory<\n ErrorCode extends string,\n ErrorParams extends { readonly [K in ErrorCode]?: ErrorData } = {}\n> {\n constructor(\n private readonly service: string,\n private readonly serviceName: string,\n private readonly errors: ErrorMap\n ) {}\n\n create(\n code: K,\n ...data: K extends keyof ErrorParams ? [ErrorParams[K]] : []\n ): FirebaseError {\n const customData = (data[0] as ErrorData) || {};\n const fullCode = `${this.service}/${code}`;\n const template = this.errors[code];\n\n const message = template ? replaceTemplate(template, customData) : 'Error';\n // Service Name: Error message (service/code).\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\n\n const error = new FirebaseError(fullCode, fullMessage, customData);\n\n return error;\n }\n}\n\nfunction replaceTemplate(template: string, data: ErrorData): string {\n return template.replace(PATTERN, (_, key) => {\n const value = data[key];\n return value != null ? String(value) : `<${key}?>`;\n });\n}\n\nconst PATTERN = /\\{\\$([^}]+)}/g;\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function contains(obj: T, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport function safeGet(\n obj: T,\n key: K\n): T[K] | undefined {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nexport function isEmpty(obj: object): obj is {} {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function map(\n obj: { [key in K]: V },\n fn: (value: V, key: K, obj: { [key in K]: V }) => U,\n contextObj?: unknown\n): { [key in K]: U } {\n const res: Partial<{ [key in K]: U }> = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n return res as { [key in K]: U };\n}\n\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nexport function deepEqual(a: object, b: object): boolean {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n for (const k of aKeys) {\n if (!bKeys.includes(k)) {\n return false;\n }\n\n const aProp = (a as Record)[k];\n const bProp = (b as Record)[k];\n if (isObject(aProp) && isObject(bProp)) {\n if (!deepEqual(aProp, bProp)) {\n return false;\n }\n } else if (aProp !== bProp) {\n return false;\n }\n }\n\n for (const k of bKeys) {\n if (!aKeys.includes(k)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isObject(thing: unknown): thing is object {\n return thing !== null && typeof thing === 'object';\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\n * params object (e.g. {arg: 'val', arg2: 'val2'})\n * Note: You must prepend it with ? when adding it to a URL.\n */\nexport function querystring(querystringParams: {\n [key: string]: string | number;\n}): string {\n const params = [];\n for (const [key, value] of Object.entries(querystringParams)) {\n if (Array.isArray(value)) {\n value.forEach(arrayVal => {\n params.push(\n encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal)\n );\n });\n } else {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n }\n return params.length ? '&' + params.join('&') : '';\n}\n\n/**\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\n * (e.g. {arg: 'val', arg2: 'val2'})\n */\nexport function querystringDecode(querystring: string): Record {\n const obj: Record = {};\n const tokens = querystring.replace(/^\\?/, '').split('&');\n\n tokens.forEach(token => {\n if (token) {\n const [key, value] = token.split('=');\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n });\n return obj;\n}\n\n/**\n * Extract the query string part of a URL, including the leading question mark (if present).\n */\nexport function extractQuerystring(url: string): string {\n const queryStart = url.indexOf('?');\n if (!queryStart) {\n return '';\n }\n const fragmentStart = url.indexOf('#', queryStart);\n return url.substring(\n queryStart,\n fragmentStart > 0 ? fragmentStart : undefined\n );\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport type NextFn = (value: T) => void;\nexport type ErrorFn = (error: Error) => void;\nexport type CompleteFn = () => void;\n\nexport interface Observer {\n // Called once for each value in a stream of values.\n next: NextFn;\n\n // A stream terminates by a single call to EITHER error() or complete().\n error: ErrorFn;\n\n // No events will be sent to next() once complete() is called.\n complete: CompleteFn;\n}\n\nexport type PartialObserver = Partial>;\n\n// TODO: Support also Unsubscribe.unsubscribe?\nexport type Unsubscribe = () => void;\n\n/**\n * The Subscribe interface has two forms - passing the inline function\n * callbacks, or a object interface with callback properties.\n */\nexport interface Subscribe {\n (next?: NextFn, error?: ErrorFn, complete?: CompleteFn): Unsubscribe;\n (observer: PartialObserver): Unsubscribe;\n}\n\nexport interface Observable {\n // Subscribe method\n subscribe: Subscribe;\n}\n\nexport type Executor = (observer: Observer) => void;\n\n/**\n * Helper to make a Subscribe function (just like Promise helps make a\n * Thenable).\n *\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\nexport function createSubscribe(\n executor: Executor,\n onNoObservers?: Executor\n): Subscribe {\n const proxy = new ObserverProxy(executor, onNoObservers);\n return proxy.subscribe.bind(proxy);\n}\n\n/**\n * Implement fan-out for any number of Observers attached via a subscribe\n * function.\n */\nclass ObserverProxy implements Observer {\n private observers: Array> | undefined = [];\n private unsubscribes: Unsubscribe[] = [];\n private onNoObservers: Executor | undefined;\n private observerCount = 0;\n // Micro-task scheduling by calling task.then().\n private task = Promise.resolve();\n private finalized = false;\n private finalError?: Error;\n\n /**\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\n constructor(executor: Executor, onNoObservers?: Executor) {\n this.onNoObservers = onNoObservers;\n // Call the executor asynchronously so subscribers that are called\n // synchronously after the creation of the subscribe function\n // can still receive the very first value generated in the executor.\n this.task\n .then(() => {\n executor(this);\n })\n .catch(e => {\n this.error(e);\n });\n }\n\n next(value: T): void {\n this.forEachObserver((observer: Observer) => {\n observer.next(value);\n });\n }\n\n error(error: Error): void {\n this.forEachObserver((observer: Observer) => {\n observer.error(error);\n });\n this.close(error);\n }\n\n complete(): void {\n this.forEachObserver((observer: Observer) => {\n observer.complete();\n });\n this.close();\n }\n\n /**\n * Subscribe function that can be used to add an Observer to the fan-out list.\n *\n * - We require that no event is sent to a subscriber synchronously to their\n * call to subscribe().\n */\n subscribe(\n nextOrObserver?: NextFn | PartialObserver,\n error?: ErrorFn,\n complete?: CompleteFn\n ): Unsubscribe {\n let observer: Observer;\n\n if (\n nextOrObserver === undefined &&\n error === undefined &&\n complete === undefined\n ) {\n throw new Error('Missing Observer.');\n }\n\n // Assemble an Observer object when passed as callback functions.\n if (\n implementsAnyMethods(nextOrObserver as { [key: string]: unknown }, [\n 'next',\n 'error',\n 'complete'\n ])\n ) {\n observer = nextOrObserver as Observer;\n } else {\n observer = {\n next: nextOrObserver as NextFn,\n error,\n complete\n } as Observer;\n }\n\n if (observer.next === undefined) {\n observer.next = noop as NextFn;\n }\n if (observer.error === undefined) {\n observer.error = noop as ErrorFn;\n }\n if (observer.complete === undefined) {\n observer.complete = noop as CompleteFn;\n }\n\n const unsub = this.unsubscribeOne.bind(this, this.observers!.length);\n\n // Attempt to subscribe to a terminated Observable - we\n // just respond to the Observer with the final error or complete\n // event.\n if (this.finalized) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n try {\n if (this.finalError) {\n observer.error(this.finalError);\n } else {\n observer.complete();\n }\n } catch (e) {\n // nothing\n }\n return;\n });\n }\n\n this.observers!.push(observer as Observer);\n\n return unsub;\n }\n\n // Unsubscribe is synchronous - we guarantee that no events are sent to\n // any unsubscribed Observer.\n private unsubscribeOne(i: number): void {\n if (this.observers === undefined || this.observers[i] === undefined) {\n return;\n }\n\n delete this.observers[i];\n\n this.observerCount -= 1;\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\n this.onNoObservers(this);\n }\n }\n\n private forEachObserver(fn: (observer: Observer) => void): void {\n if (this.finalized) {\n // Already closed by previous event....just eat the additional values.\n return;\n }\n\n // Since sendOne calls asynchronously - there is no chance that\n // this.observers will become undefined.\n for (let i = 0; i < this.observers!.length; i++) {\n this.sendOne(i, fn);\n }\n }\n\n // Call the Observer via one of it's callback function. We are careful to\n // confirm that the observe has not been unsubscribed since this asynchronous\n // function had been queued.\n private sendOne(i: number, fn: (observer: Observer) => void): void {\n // Execute the callback asynchronously\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n if (this.observers !== undefined && this.observers[i] !== undefined) {\n try {\n fn(this.observers[i]);\n } catch (e) {\n // Ignore exceptions raised in Observers or missing methods of an\n // Observer.\n // Log error to console. b/31404806\n if (typeof console !== 'undefined' && console.error) {\n console.error(e);\n }\n }\n }\n });\n }\n\n private close(err?: Error): void {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n if (err !== undefined) {\n this.finalError = err;\n }\n // Proxy is no longer needed - garbage collect references\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n this.observers = undefined;\n this.onNoObservers = undefined;\n });\n }\n}\n\n/** Turn synchronous function into one called asynchronously. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function async(fn: Function, onError?: ErrorFn): Function {\n return (...args: unknown[]) => {\n Promise.resolve(true)\n .then(() => {\n fn(...args);\n })\n .catch((error: Error) => {\n if (onError) {\n onError(error);\n }\n });\n };\n}\n\n/**\n * Return true if the object passed in implements any of the named methods.\n */\nfunction implementsAnyMethods(\n obj: { [key: string]: unknown },\n methods: string[]\n): boolean {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n for (const method of methods) {\n if (method in obj && typeof obj[method] === 'function') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction noop(): void {\n // do nothing\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Compat {\n _delegate: T;\n}\n\nexport function getModularInstance(\n service: Compat | ExpService\n): ExpService {\n if (service && (service as Compat)._delegate) {\n return (service as Compat)._delegate;\n } else {\n return service as ExpService;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n InstantiationMode,\n InstanceFactory,\n ComponentType,\n Dictionary,\n Name,\n onInstanceCreatedCallback\n} from './types';\n\n/**\n * Component for service name T, e.g. `auth`, `auth-internal`\n */\nexport class Component {\n multipleInstances = false;\n /**\n * Properties to be added to the service namespace\n */\n serviceProps: Dictionary = {};\n\n instantiationMode = InstantiationMode.LAZY;\n\n onInstanceCreated: onInstanceCreatedCallback | null = null;\n\n /**\n *\n * @param name The public service name, e.g. app, auth, firestore, database\n * @param instanceFactory Service factory responsible for creating the public interface\n * @param type whether the service provided by the component is public or private\n */\n constructor(\n readonly name: T,\n readonly instanceFactory: InstanceFactory,\n readonly type: ComponentType\n ) {}\n\n setInstantiationMode(mode: InstantiationMode): this {\n this.instantiationMode = mode;\n return this;\n }\n\n setMultipleInstances(multipleInstances: boolean): this {\n this.multipleInstances = multipleInstances;\n return this;\n }\n\n setServiceProps(props: Dictionary): this {\n this.serviceProps = props;\n return this;\n }\n\n setInstanceCreatedCallback(callback: onInstanceCreatedCallback): this {\n this.onInstanceCreated = callback;\n return this;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Deferred } from '@firebase/util';\nimport { ComponentContainer } from './component_container';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport {\n InitializeOptions,\n InstantiationMode,\n Name,\n NameServiceMapping,\n OnInitCallBack\n} from './types';\nimport { Component } from './component';\n\n/**\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\n * NameServiceMapping[T] is an alias for the type of the instance\n */\nexport class Provider {\n private component: Component | null = null;\n private readonly instances: Map = new Map();\n private readonly instancesDeferred: Map<\n string,\n Deferred\n > = new Map();\n private readonly instancesOptions: Map> =\n new Map();\n private onInitCallbacks: Map>> = new Map();\n\n constructor(\n private readonly name: T,\n private readonly container: ComponentContainer\n ) {}\n\n /**\n * @param identifier A provider can provide multiple instances of a service\n * if this.component.multipleInstances is true.\n */\n get(identifier?: string): Promise {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\n const deferred = new Deferred();\n this.instancesDeferred.set(normalizedIdentifier, deferred);\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n // initialize the service if it can be auto-initialized\n try {\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n if (instance) {\n deferred.resolve(instance);\n }\n } catch (e) {\n // when the instance factory throws an exception during get(), it should not cause\n // a fatal error. We just return the unresolved promise in this case.\n }\n }\n }\n\n return this.instancesDeferred.get(normalizedIdentifier)!.promise;\n }\n\n /**\n *\n * @param options.identifier A provider can provide multiple instances of a service\n * if this.component.multipleInstances is true.\n * @param options.optional If optional is false or not provided, the method throws an error when\n * the service is not immediately available.\n * If optional is true, the method returns null if the service is not immediately available.\n */\n getImmediate(options: {\n identifier?: string;\n optional: true;\n }): NameServiceMapping[T] | null;\n getImmediate(options?: {\n identifier?: string;\n optional?: false;\n }): NameServiceMapping[T];\n getImmediate(options?: {\n identifier?: string;\n optional?: boolean;\n }): NameServiceMapping[T] | null {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n options?.identifier\n );\n const optional = options?.optional ?? false;\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n try {\n return this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n } catch (e) {\n if (optional) {\n return null;\n } else {\n throw e;\n }\n }\n } else {\n // In case a component is not initialized and should/cannot be auto-initialized at the moment, return null if the optional flag is set, or throw\n if (optional) {\n return null;\n } else {\n throw Error(`Service ${this.name} is not available`);\n }\n }\n }\n\n getComponent(): Component | null {\n return this.component;\n }\n\n setComponent(component: Component): void {\n if (component.name !== this.name) {\n throw Error(\n `Mismatching Component ${component.name} for Provider ${this.name}.`\n );\n }\n\n if (this.component) {\n throw Error(`Component for ${this.name} has already been provided`);\n }\n\n this.component = component;\n\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\n if (!this.shouldAutoInitialize()) {\n return;\n }\n\n // if the service is eager, initialize the default instance\n if (isComponentEager(component)) {\n try {\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\n } catch (e) {\n // when the instance factory for an eager Component throws an exception during the eager\n // initialization, it should not cause a fatal error.\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\n // a fatal error in this case?\n }\n }\n\n // Create service instances for the pending promises and resolve them\n // NOTE: if this.multipleInstances is false, only the default instance will be created\n // and all promises with resolve with it regardless of the identifier.\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n\n try {\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n })!;\n instanceDeferred.resolve(instance);\n } catch (e) {\n // when the instance factory throws an exception, it should not cause\n // a fatal error. We just leave the promise unresolved.\n }\n }\n }\n\n clearInstance(identifier: string = DEFAULT_ENTRY_NAME): void {\n this.instancesDeferred.delete(identifier);\n this.instancesOptions.delete(identifier);\n this.instances.delete(identifier);\n }\n\n // app.delete() will call this method on every provider to delete the services\n // TODO: should we mark the provider as deleted?\n async delete(): Promise {\n const services = Array.from(this.instances.values());\n\n await Promise.all([\n ...services\n .filter(service => 'INTERNAL' in service) // legacy services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any).INTERNAL!.delete()),\n ...services\n .filter(service => '_delete' in service) // modularized services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any)._delete())\n ]);\n }\n\n isComponentSet(): boolean {\n return this.component != null;\n }\n\n isInitialized(identifier: string = DEFAULT_ENTRY_NAME): boolean {\n return this.instances.has(identifier);\n }\n\n getOptions(identifier: string = DEFAULT_ENTRY_NAME): Record {\n return this.instancesOptions.get(identifier) || {};\n }\n\n initialize(opts: InitializeOptions = {}): NameServiceMapping[T] {\n const { options = {} } = opts;\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n opts.instanceIdentifier\n );\n if (this.isInitialized(normalizedIdentifier)) {\n throw Error(\n `${this.name}(${normalizedIdentifier}) has already been initialized`\n );\n }\n\n if (!this.isComponentSet()) {\n throw Error(`Component ${this.name} has not been registered yet`);\n }\n\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier,\n options\n })!;\n\n // resolve any pending promise waiting for the service instance\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedDeferredIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\n instanceDeferred.resolve(instance);\n }\n }\n\n return instance;\n }\n\n /**\n *\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\n *\n * @param identifier An optional instance identifier\n * @returns a function to unregister the callback\n */\n onInit(callback: OnInitCallBack, identifier?: string): () => void {\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n const existingCallbacks =\n this.onInitCallbacks.get(normalizedIdentifier) ??\n new Set>();\n existingCallbacks.add(callback);\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\n\n const existingInstance = this.instances.get(normalizedIdentifier);\n if (existingInstance) {\n callback(existingInstance, normalizedIdentifier);\n }\n\n return () => {\n existingCallbacks.delete(callback);\n };\n }\n\n /**\n * Invoke onInit callbacks synchronously\n * @param instance the service instance`\n */\n private invokeOnInitCallbacks(\n instance: NameServiceMapping[T],\n identifier: string\n ): void {\n const callbacks = this.onInitCallbacks.get(identifier);\n if (!callbacks) {\n return;\n }\n for (const callback of callbacks) {\n try {\n callback(instance, identifier);\n } catch {\n // ignore errors in the onInit callback\n }\n }\n }\n\n private getOrInitializeService({\n instanceIdentifier,\n options = {}\n }: {\n instanceIdentifier: string;\n options?: Record;\n }): NameServiceMapping[T] | null {\n let instance = this.instances.get(instanceIdentifier);\n if (!instance && this.component) {\n instance = this.component.instanceFactory(this.container, {\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\n options\n });\n this.instances.set(instanceIdentifier, instance);\n this.instancesOptions.set(instanceIdentifier, options);\n\n /**\n * Invoke onInit listeners.\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\n * while onInit listeners are registered by consumers of the provider.\n */\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\n\n /**\n * Order is important\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\n * makes `isInitialized()` return true.\n */\n if (this.component.onInstanceCreated) {\n try {\n this.component.onInstanceCreated(\n this.container,\n instanceIdentifier,\n instance\n );\n } catch {\n // ignore errors in the onInstanceCreatedCallback\n }\n }\n }\n\n return instance || null;\n }\n\n private normalizeInstanceIdentifier(\n identifier: string = DEFAULT_ENTRY_NAME\n ): string {\n if (this.component) {\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\n } else {\n return identifier; // assume multiple instances are supported before the component is provided.\n }\n }\n\n private shouldAutoInitialize(): boolean {\n return (\n !!this.component &&\n this.component.instantiationMode !== InstantiationMode.EXPLICIT\n );\n }\n}\n\n// undefined should be passed to the service factory for the default instance\nfunction normalizeIdentifierForFactory(identifier: string): string | undefined {\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\n}\n\nfunction isComponentEager(component: Component): boolean {\n return component.instantiationMode === InstantiationMode.EAGER;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Provider } from './provider';\nimport { Component } from './component';\nimport { Name } from './types';\n\n/**\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\n */\nexport class ComponentContainer {\n private readonly providers = new Map>();\n\n constructor(private readonly name: string) {}\n\n /**\n *\n * @param component Component being added\n * @param overwrite When a component with the same name has already been registered,\n * if overwrite is true: overwrite the existing component with the new component and create a new\n * provider with the new component. It can be useful in tests where you want to use different mocks\n * for different tests.\n * if overwrite is false: throw an exception\n */\n addComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n throw new Error(\n `Component ${component.name} has already been registered with ${this.name}`\n );\n }\n\n provider.setComponent(component);\n }\n\n addOrOverwriteComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n // delete the existing provider from the container, so we can register the new component\n this.providers.delete(component.name);\n }\n\n this.addComponent(component);\n }\n\n /**\n * getProvider provides a type safe interface where it can only be called with a field name\n * present in NameServiceMapping interface.\n *\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\n * themselves.\n */\n getProvider(name: T): Provider {\n if (this.providers.has(name)) {\n return this.providers.get(name) as unknown as Provider;\n }\n\n // create a Provider for a service that hasn't registered with Firebase\n const provider = new Provider(name, this);\n this.providers.set(name, provider as unknown as Provider);\n\n return provider as Provider;\n }\n\n getProviders(): Array> {\n return Array.from(this.providers.values());\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type LogLevelString =\n | 'debug'\n | 'verbose'\n | 'info'\n | 'warn'\n | 'error'\n | 'silent';\n\nexport interface LogOptions {\n level: LogLevelString;\n}\n\nexport type LogCallback = (callbackParams: LogCallbackParams) => void;\n\nexport interface LogCallbackParams {\n level: LogLevelString;\n message: string;\n args: unknown[];\n type: string;\n}\n\n/**\n * A container for all of the Logger instances\n */\nexport const instances: Logger[] = [];\n\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nexport enum LogLevel {\n DEBUG,\n VERBOSE,\n INFO,\n WARN,\n ERROR,\n SILENT\n}\n\nconst levelStringToEnum: { [key in LogLevelString]: LogLevel } = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n\n/**\n * The default log level\n */\nconst defaultLogLevel: LogLevel = LogLevel.INFO;\n\n/**\n * We allow users the ability to pass their own log handler. We will pass the\n * type of log, the current log level, and any other arguments passed (i.e. the\n * messages that the user wants to log) to this function.\n */\nexport type LogHandler = (\n loggerInstance: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n [LogLevel.DEBUG]: 'log',\n [LogLevel.VERBOSE]: 'log',\n [LogLevel.INFO]: 'info',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error'\n};\n\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler: LogHandler = (instance, logType, ...args): void => {\n if (logType < instance.logLevel) {\n return;\n }\n const now = new Date().toISOString();\n const method = ConsoleMethod[logType as keyof typeof ConsoleMethod];\n if (method) {\n console[method as 'log' | 'info' | 'warn' | 'error'](\n `[${now}] ${instance.name}:`,\n ...args\n );\n } else {\n throw new Error(\n `Attempted to log a message with an invalid logType (value: ${logType})`\n );\n }\n};\n\nexport class Logger {\n /**\n * Gives you an instance of a Logger to capture messages according to\n * Firebase's logging scheme.\n *\n * @param name The name that the logs will be associated with\n */\n constructor(public name: string) {\n /**\n * Capture the current instance for later use\n */\n instances.push(this);\n }\n\n /**\n * The log level of the given Logger instance.\n */\n private _logLevel = defaultLogLevel;\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(val: LogLevel) {\n if (!(val in LogLevel)) {\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n }\n this._logLevel = val;\n }\n\n // Workaround for setter/getter having to be the same type.\n setLogLevel(val: LogLevel | LogLevelString): void {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n }\n\n /**\n * The main (internal) log handler for the Logger instance.\n * Can be set to a new function in internal package code but not by user.\n */\n private _logHandler: LogHandler = defaultLogHandler;\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n set logHandler(val: LogHandler) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n this._logHandler = val;\n }\n\n /**\n * The optional, additional, user-defined log handler for the Logger instance.\n */\n private _userLogHandler: LogHandler | null = null;\n get userLogHandler(): LogHandler | null {\n return this._userLogHandler;\n }\n set userLogHandler(val: LogHandler | null) {\n this._userLogHandler = val;\n }\n\n /**\n * The functions below are all based on the `console` interface\n */\n\n debug(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n this._logHandler(this, LogLevel.DEBUG, ...args);\n }\n log(...args: unknown[]): void {\n this._userLogHandler &&\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n this._logHandler(this, LogLevel.VERBOSE, ...args);\n }\n info(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n this._logHandler(this, LogLevel.INFO, ...args);\n }\n warn(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n this._logHandler(this, LogLevel.WARN, ...args);\n }\n error(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n this._logHandler(this, LogLevel.ERROR, ...args);\n }\n}\n\nexport function setLogLevel(level: LogLevelString | LogLevel): void {\n instances.forEach(inst => {\n inst.setLogLevel(level);\n });\n}\n\nexport function setUserLogHandler(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n for (const instance of instances) {\n let customLogLevel: LogLevel | null = null;\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = (\n instance: Logger,\n level: LogLevel,\n ...args: unknown[]\n ) => {\n const message = args\n .map(arg => {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n })\n .filter(arg => arg)\n .join(' ');\n if (level >= (customLogLevel ?? instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase() as LogLevelString,\n message,\n args,\n type: instance.name\n });\n }\n };\n }\n }\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ComponentContainer,\n ComponentType,\n Provider,\n Name\n} from '@firebase/component';\nimport { PlatformLoggerService, VersionService } from './types';\n\nexport class PlatformLoggerServiceImpl implements PlatformLoggerService {\n constructor(private readonly container: ComponentContainer) {}\n // In initial implementation, this will be called by installations on\n // auth token refresh, and installations will send this string.\n getPlatformInfoString(): string {\n const providers = this.container.getProviders();\n // Loop through providers and get library/version pairs from any that are\n // version components.\n return providers\n .map(provider => {\n if (isVersionServiceProvider(provider)) {\n const service = provider.getImmediate() as VersionService;\n return `${service.library}/${service.version}`;\n } else {\n return null;\n }\n })\n .filter(logString => logString)\n .join(' ');\n }\n}\n/**\n *\n * @param provider check if this provider provides a VersionService\n *\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\n * provides VersionService. The provider is not necessarily a 'app-version'\n * provider.\n */\nfunction isVersionServiceProvider(provider: Provider): boolean {\n const component = provider.getComponent();\n return component?.type === ComponentType.VERSION;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger } from '@firebase/logger';\n\nexport const logger = new Logger('@firebase/app');\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { name as appName } from '../package.json';\nimport { name as appCompatName } from '../../app-compat/package.json';\nimport { name as analyticsCompatName } from '../../../packages/analytics-compat/package.json';\nimport { name as analyticsName } from '../../../packages/analytics/package.json';\nimport { name as appCheckCompatName } from '../../../packages/app-check-compat/package.json';\nimport { name as appCheckName } from '../../../packages/app-check/package.json';\nimport { name as authName } from '../../../packages/auth/package.json';\nimport { name as authCompatName } from '../../../packages/auth-compat/package.json';\nimport { name as databaseName } from '../../../packages/database/package.json';\nimport { name as dataconnectName } from '../../../packages/data-connect/package.json';\nimport { name as databaseCompatName } from '../../../packages/database-compat/package.json';\nimport { name as functionsName } from '../../../packages/functions/package.json';\nimport { name as functionsCompatName } from '../../../packages/functions-compat/package.json';\nimport { name as installationsName } from '../../../packages/installations/package.json';\nimport { name as installationsCompatName } from '../../../packages/installations-compat/package.json';\nimport { name as messagingName } from '../../../packages/messaging/package.json';\nimport { name as messagingCompatName } from '../../../packages/messaging-compat/package.json';\nimport { name as performanceName } from '../../../packages/performance/package.json';\nimport { name as performanceCompatName } from '../../../packages/performance-compat/package.json';\nimport { name as remoteConfigName } from '../../../packages/remote-config/package.json';\nimport { name as remoteConfigCompatName } from '../../../packages/remote-config-compat/package.json';\nimport { name as storageName } from '../../../packages/storage/package.json';\nimport { name as storageCompatName } from '../../../packages/storage-compat/package.json';\nimport { name as firestoreName } from '../../../packages/firestore/package.json';\nimport { name as vertexName } from '../../../packages/vertexai/package.json';\nimport { name as firestoreCompatName } from '../../../packages/firestore-compat/package.json';\nimport { name as packageName } from '../../../packages/firebase/package.json';\n\n/**\n * The default app name\n *\n * @internal\n */\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\nexport const PLATFORM_LOG_STRING = {\n [appName]: 'fire-core',\n [appCompatName]: 'fire-core-compat',\n [analyticsName]: 'fire-analytics',\n [analyticsCompatName]: 'fire-analytics-compat',\n [appCheckName]: 'fire-app-check',\n [appCheckCompatName]: 'fire-app-check-compat',\n [authName]: 'fire-auth',\n [authCompatName]: 'fire-auth-compat',\n [databaseName]: 'fire-rtdb',\n [dataconnectName]: 'fire-data-connect',\n [databaseCompatName]: 'fire-rtdb-compat',\n [functionsName]: 'fire-fn',\n [functionsCompatName]: 'fire-fn-compat',\n [installationsName]: 'fire-iid',\n [installationsCompatName]: 'fire-iid-compat',\n [messagingName]: 'fire-fcm',\n [messagingCompatName]: 'fire-fcm-compat',\n [performanceName]: 'fire-perf',\n [performanceCompatName]: 'fire-perf-compat',\n [remoteConfigName]: 'fire-rc',\n [remoteConfigCompatName]: 'fire-rc-compat',\n [storageName]: 'fire-gcs',\n [storageCompatName]: 'fire-gcs-compat',\n [firestoreName]: 'fire-fst',\n [firestoreCompatName]: 'fire-fst-compat',\n [vertexName]: 'fire-vertex',\n 'fire-js': 'fire-js', // Platform identifier for JS SDK.\n [packageName]: 'fire-js-all'\n} as const;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseServerApp\n} from './public-types';\nimport { Component, Provider, Name } from '@firebase/component';\nimport { logger } from './logger';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { FirebaseServerAppImpl } from './firebaseServerApp';\n\n/**\n * @internal\n */\nexport const _apps = new Map();\n\n/**\n * @internal\n */\nexport const _serverApps = new Map();\n\n/**\n * Registered components.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const _components = new Map>();\n\n/**\n * @param component - the component being added to this app's container\n *\n * @internal\n */\nexport function _addComponent(\n app: FirebaseApp,\n component: Component\n): void {\n try {\n (app as FirebaseAppImpl).container.addComponent(component);\n } catch (e) {\n logger.debug(\n `Component ${component.name} failed to register with FirebaseApp ${app.name}`,\n e\n );\n }\n}\n\n/**\n *\n * @internal\n */\nexport function _addOrOverwriteComponent(\n app: FirebaseApp,\n component: Component\n): void {\n (app as FirebaseAppImpl).container.addOrOverwriteComponent(component);\n}\n\n/**\n *\n * @param component - the component to register\n * @returns whether or not the component is registered successfully\n *\n * @internal\n */\nexport function _registerComponent(\n component: Component\n): boolean {\n const componentName = component.name;\n if (_components.has(componentName)) {\n logger.debug(\n `There were multiple attempts to register component ${componentName}.`\n );\n\n return false;\n }\n\n _components.set(componentName, component);\n\n // add the component to existing app instances\n for (const app of _apps.values()) {\n _addComponent(app as FirebaseAppImpl, component);\n }\n\n for (const serverApp of _serverApps.values()) {\n _addComponent(serverApp as FirebaseServerAppImpl, component);\n }\n\n return true;\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n *\n * @returns the provider for the service with the matching name\n *\n * @internal\n */\nexport function _getProvider(\n app: FirebaseApp,\n name: T\n): Provider {\n const heartbeatController = (app as FirebaseAppImpl).container\n .getProvider('heartbeat')\n .getImmediate({ optional: true });\n if (heartbeatController) {\n void heartbeatController.triggerHeartbeat();\n }\n return (app as FirebaseAppImpl).container.getProvider(name);\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\n *\n * @internal\n */\nexport function _removeServiceInstance(\n app: FirebaseApp,\n name: T,\n instanceIdentifier: string = DEFAULT_ENTRY_NAME\n): void {\n _getProvider(app, name).clearInstance(instanceIdentifier);\n}\n\n/**\n *\n * @param obj - an object of type FirebaseApp or FirebaseOptions.\n *\n * @returns true if the provide object is of type FirebaseApp.\n *\n * @internal\n */\nexport function _isFirebaseApp(\n obj: FirebaseApp | FirebaseOptions\n): obj is FirebaseApp {\n return (obj as FirebaseApp).options !== undefined;\n}\n\n/**\n *\n * @param obj - an object of type FirebaseApp.\n *\n * @returns true if the provided object is of type FirebaseServerAppImpl.\n *\n * @internal\n */\nexport function _isFirebaseServerApp(\n obj: FirebaseApp | FirebaseServerApp\n): obj is FirebaseServerApp {\n return (obj as FirebaseServerApp).settings !== undefined;\n}\n\n/**\n * Test only\n *\n * @internal\n */\nexport function _clearComponents(): void {\n _components.clear();\n}\n\n/**\n * Exported in order to be used in app-compat package\n */\nexport { DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nexport const enum AppError {\n NO_APP = 'no-app',\n BAD_APP_NAME = 'bad-app-name',\n DUPLICATE_APP = 'duplicate-app',\n APP_DELETED = 'app-deleted',\n SERVER_APP_DELETED = 'server-app-deleted',\n NO_OPTIONS = 'no-options',\n INVALID_APP_ARGUMENT = 'invalid-app-argument',\n INVALID_LOG_ARGUMENT = 'invalid-log-argument',\n IDB_OPEN = 'idb-open',\n IDB_GET = 'idb-get',\n IDB_WRITE = 'idb-set',\n IDB_DELETE = 'idb-delete',\n FINALIZATION_REGISTRY_NOT_SUPPORTED = 'finalization-registry-not-supported',\n INVALID_SERVER_APP_ENVIRONMENT = 'invalid-server-app-environment'\n}\n\nconst ERRORS: ErrorMap = {\n [AppError.NO_APP]:\n \"No Firebase App '{$appName}' has been created - \" +\n 'call initializeApp() first',\n [AppError.BAD_APP_NAME]: \"Illegal App name: '{$appName}'\",\n [AppError.DUPLICATE_APP]:\n \"Firebase App named '{$appName}' already exists with different options or config\",\n [AppError.APP_DELETED]: \"Firebase App named '{$appName}' already deleted\",\n [AppError.SERVER_APP_DELETED]: 'Firebase Server App has been deleted',\n [AppError.NO_OPTIONS]:\n 'Need to provide options, when not being deployed to hosting via source.',\n [AppError.INVALID_APP_ARGUMENT]:\n 'firebase.{$appName}() takes either no argument or a ' +\n 'Firebase App instance.',\n [AppError.INVALID_LOG_ARGUMENT]:\n 'First argument to `onLog` must be null or a function.',\n [AppError.IDB_OPEN]:\n 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_GET]:\n 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_WRITE]:\n 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_DELETE]:\n 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED]:\n 'FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.',\n [AppError.INVALID_SERVER_APP_ENVIRONMENT]:\n 'FirebaseServerApp is not for use in browser environments.'\n};\n\ninterface ErrorParams {\n [AppError.NO_APP]: { appName: string };\n [AppError.BAD_APP_NAME]: { appName: string };\n [AppError.DUPLICATE_APP]: { appName: string };\n [AppError.APP_DELETED]: { appName: string };\n [AppError.INVALID_APP_ARGUMENT]: { appName: string };\n [AppError.IDB_OPEN]: { originalErrorMessage?: string };\n [AppError.IDB_GET]: { originalErrorMessage?: string };\n [AppError.IDB_WRITE]: { originalErrorMessage?: string };\n [AppError.IDB_DELETE]: { originalErrorMessage?: string };\n [AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED]: { appName?: string };\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n 'app',\n 'Firebase',\n ERRORS\n);\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppSettings\n} from './public-types';\nimport {\n ComponentContainer,\n Component,\n ComponentType\n} from '@firebase/component';\nimport { ERROR_FACTORY, AppError } from './errors';\n\nexport class FirebaseAppImpl implements FirebaseApp {\n protected readonly _options: FirebaseOptions;\n protected readonly _name: string;\n /**\n * Original config values passed in as a constructor parameter.\n * It is only used to compare with another config object to support idempotent initializeApp().\n *\n * Updating automaticDataCollectionEnabled on the App instance will not change its value in _config.\n */\n private readonly _config: Required;\n private _automaticDataCollectionEnabled: boolean;\n protected _isDeleted = false;\n private readonly _container: ComponentContainer;\n\n constructor(\n options: FirebaseOptions,\n config: Required,\n container: ComponentContainer\n ) {\n this._options = { ...options };\n this._config = { ...config };\n this._name = config.name;\n this._automaticDataCollectionEnabled =\n config.automaticDataCollectionEnabled;\n this._container = container;\n this.container.addComponent(\n new Component('app', () => this, ComponentType.PUBLIC)\n );\n }\n\n get automaticDataCollectionEnabled(): boolean {\n this.checkDestroyed();\n return this._automaticDataCollectionEnabled;\n }\n\n set automaticDataCollectionEnabled(val: boolean) {\n this.checkDestroyed();\n this._automaticDataCollectionEnabled = val;\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): FirebaseOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get config(): Required {\n this.checkDestroyed();\n return this._config;\n }\n\n get container(): ComponentContainer {\n return this._container;\n }\n\n get isDeleted(): boolean {\n return this._isDeleted;\n }\n\n set isDeleted(val: boolean) {\n this._isDeleted = val;\n }\n\n /**\n * This function will throw an Error if the App has already been deleted -\n * use before performing API actions on the App.\n */\n protected checkDestroyed(): void {\n if (this.isDeleted) {\n throw ERROR_FACTORY.create(AppError.APP_DELETED, { appName: this._name });\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseServerApp,\n FirebaseOptions,\n FirebaseAppSettings,\n FirebaseServerAppSettings\n} from './public-types';\nimport { DEFAULT_ENTRY_NAME, PLATFORM_LOG_STRING } from './constants';\nimport { ERROR_FACTORY, AppError } from './errors';\nimport {\n ComponentContainer,\n Component,\n Name,\n ComponentType\n} from '@firebase/component';\nimport { version } from '../../firebase/package.json';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { FirebaseServerAppImpl } from './firebaseServerApp';\nimport {\n _apps,\n _components,\n _isFirebaseApp,\n _registerComponent,\n _serverApps\n} from './internal';\nimport { logger } from './logger';\nimport {\n LogLevelString,\n setLogLevel as setLogLevelImpl,\n LogCallback,\n LogOptions,\n setUserLogHandler\n} from '@firebase/logger';\nimport {\n deepEqual,\n getDefaultAppConfig,\n isBrowser,\n isWebWorker\n} from '@firebase/util';\n\nexport { FirebaseError } from '@firebase/util';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const SDK_VERSION = version;\n\n/**\n * Creates and initializes a {@link @firebase/app#FirebaseApp} instance.\n *\n * See\n * {@link\n * https://firebase.google.com/docs/web/setup#add_firebase_to_your_app\n * | Add Firebase to your app} and\n * {@link\n * https://firebase.google.com/docs/web/setup#multiple-projects\n * | Initialize multiple projects} for detailed documentation.\n *\n * @example\n * ```javascript\n *\n * // Initialize default app\n * // Retrieve your own options values by adding a web app on\n * // https://console.firebase.google.com\n * initializeApp({\n * apiKey: \"AIza....\", // Auth / General Use\n * authDomain: \"YOUR_APP.firebaseapp.com\", // Auth with popup/redirect\n * databaseURL: \"https://YOUR_APP.firebaseio.com\", // Realtime Database\n * storageBucket: \"YOUR_APP.appspot.com\", // Storage\n * messagingSenderId: \"123456789\" // Cloud Messaging\n * });\n * ```\n *\n * @example\n * ```javascript\n *\n * // Initialize another app\n * const otherApp = initializeApp({\n * databaseURL: \"https://.firebaseio.com\",\n * storageBucket: \".appspot.com\"\n * }, \"otherApp\");\n * ```\n *\n * @param options - Options to configure the app's services.\n * @param name - Optional name of the app to initialize. If no name\n * is provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The initialized app.\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n name?: string\n): FirebaseApp;\n/**\n * Creates and initializes a FirebaseApp instance.\n *\n * @param options - Options to configure the app's services.\n * @param config - FirebaseApp Configuration\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n config?: FirebaseAppSettings\n): FirebaseApp;\n/**\n * Creates and initializes a FirebaseApp instance.\n *\n * @public\n */\nexport function initializeApp(): FirebaseApp;\nexport function initializeApp(\n _options?: FirebaseOptions,\n rawConfig = {}\n): FirebaseApp {\n let options = _options;\n\n if (typeof rawConfig !== 'object') {\n const name = rawConfig;\n rawConfig = { name };\n }\n\n const config: Required = {\n name: DEFAULT_ENTRY_NAME,\n automaticDataCollectionEnabled: false,\n ...rawConfig\n };\n const name = config.name;\n\n if (typeof name !== 'string' || !name) {\n throw ERROR_FACTORY.create(AppError.BAD_APP_NAME, {\n appName: String(name)\n });\n }\n\n options ||= getDefaultAppConfig();\n\n if (!options) {\n throw ERROR_FACTORY.create(AppError.NO_OPTIONS);\n }\n\n const existingApp = _apps.get(name) as FirebaseAppImpl;\n if (existingApp) {\n // return the existing app if options and config deep equal the ones in the existing app.\n if (\n deepEqual(options, existingApp.options) &&\n deepEqual(config, existingApp.config)\n ) {\n return existingApp;\n } else {\n throw ERROR_FACTORY.create(AppError.DUPLICATE_APP, { appName: name });\n }\n }\n\n const container = new ComponentContainer(name);\n for (const component of _components.values()) {\n container.addComponent(component);\n }\n\n const newApp = new FirebaseAppImpl(options, config, container);\n\n _apps.set(name, newApp);\n\n return newApp;\n}\n\n/**\n * Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.\n *\n * The `FirebaseServerApp` is similar to `FirebaseApp`, but is intended for execution in\n * server side rendering environments only. Initialization will fail if invoked from a\n * browser environment.\n *\n * See\n * {@link\n * https://firebase.google.com/docs/web/setup#add_firebase_to_your_app\n * | Add Firebase to your app} and\n * {@link\n * https://firebase.google.com/docs/web/setup#multiple-projects\n * | Initialize multiple projects} for detailed documentation.\n *\n * @example\n * ```javascript\n *\n * // Initialize an instance of `FirebaseServerApp`.\n * // Retrieve your own options values by adding a web app on\n * // https://console.firebase.google.com\n * initializeServerApp({\n * apiKey: \"AIza....\", // Auth / General Use\n * authDomain: \"YOUR_APP.firebaseapp.com\", // Auth with popup/redirect\n * databaseURL: \"https://YOUR_APP.firebaseio.com\", // Realtime Database\n * storageBucket: \"YOUR_APP.appspot.com\", // Storage\n * messagingSenderId: \"123456789\" // Cloud Messaging\n * },\n * {\n * authIdToken: \"Your Auth ID Token\"\n * });\n * ```\n *\n * @param options - `Firebase.AppOptions` to configure the app's services, or a\n * a `FirebaseApp` instance which contains the `AppOptions` within.\n * @param config - `FirebaseServerApp` configuration.\n *\n * @returns The initialized `FirebaseServerApp`.\n *\n * @public\n */\nexport function initializeServerApp(\n options: FirebaseOptions | FirebaseApp,\n config: FirebaseServerAppSettings\n): FirebaseServerApp;\n\nexport function initializeServerApp(\n _options: FirebaseOptions | FirebaseApp,\n _serverAppConfig: FirebaseServerAppSettings\n): FirebaseServerApp {\n if (isBrowser() && !isWebWorker()) {\n // FirebaseServerApp isn't designed to be run in browsers.\n throw ERROR_FACTORY.create(AppError.INVALID_SERVER_APP_ENVIRONMENT);\n }\n\n if (_serverAppConfig.automaticDataCollectionEnabled === undefined) {\n _serverAppConfig.automaticDataCollectionEnabled = false;\n }\n\n let appOptions: FirebaseOptions;\n if (_isFirebaseApp(_options)) {\n appOptions = _options.options;\n } else {\n appOptions = _options;\n }\n\n // Build an app name based on a hash of the configuration options.\n const nameObj = {\n ..._serverAppConfig,\n ...appOptions\n };\n\n // However, Do not mangle the name based on releaseOnDeref, since it will vary between the\n // construction of FirebaseServerApp instances. For example, if the object is the request headers.\n if (nameObj.releaseOnDeref !== undefined) {\n delete nameObj.releaseOnDeref;\n }\n\n const hashCode = (s: string): number => {\n return [...s].reduce(\n (hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0,\n 0\n );\n };\n\n if (_serverAppConfig.releaseOnDeref !== undefined) {\n if (typeof FinalizationRegistry === 'undefined') {\n throw ERROR_FACTORY.create(\n AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED,\n {}\n );\n }\n }\n\n const nameString = '' + hashCode(JSON.stringify(nameObj));\n const existingApp = _serverApps.get(nameString) as FirebaseServerApp;\n if (existingApp) {\n (existingApp as FirebaseServerAppImpl).incRefCount(\n _serverAppConfig.releaseOnDeref\n );\n return existingApp;\n }\n\n const container = new ComponentContainer(nameString);\n for (const component of _components.values()) {\n container.addComponent(component);\n }\n\n const newApp = new FirebaseServerAppImpl(\n appOptions,\n _serverAppConfig,\n nameString,\n container\n );\n\n _serverApps.set(nameString, newApp);\n\n return newApp;\n}\n\n/**\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\n *\n * When called with no arguments, the default app is returned. When an app name\n * is provided, the app corresponding to that name is returned.\n *\n * An exception is thrown if the app being retrieved has not yet been\n * initialized.\n *\n * @example\n * ```javascript\n * // Return the default app\n * const app = getApp();\n * ```\n *\n * @example\n * ```javascript\n * // Return a named app\n * const otherApp = getApp(\"otherApp\");\n * ```\n *\n * @param name - Optional name of the app to return. If no name is\n * provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The app corresponding to the provided app name.\n * If no app name is provided, the default app is returned.\n *\n * @public\n */\nexport function getApp(name: string = DEFAULT_ENTRY_NAME): FirebaseApp {\n const app = _apps.get(name);\n if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\n return initializeApp();\n }\n if (!app) {\n throw ERROR_FACTORY.create(AppError.NO_APP, { appName: name });\n }\n\n return app;\n}\n\n/**\n * A (read-only) array of all initialized apps.\n * @public\n */\nexport function getApps(): FirebaseApp[] {\n return Array.from(_apps.values());\n}\n\n/**\n * Renders this app unusable and frees the resources of all associated\n * services.\n *\n * @example\n * ```javascript\n * deleteApp(app)\n * .then(function() {\n * console.log(\"App deleted successfully\");\n * })\n * .catch(function(error) {\n * console.log(\"Error deleting app:\", error);\n * });\n * ```\n *\n * @public\n */\nexport async function deleteApp(app: FirebaseApp): Promise {\n let cleanupProviders = false;\n const name = app.name;\n if (_apps.has(name)) {\n cleanupProviders = true;\n _apps.delete(name);\n } else if (_serverApps.has(name)) {\n const firebaseServerApp = app as FirebaseServerAppImpl;\n if (firebaseServerApp.decRefCount() <= 0) {\n _serverApps.delete(name);\n cleanupProviders = true;\n }\n }\n\n if (cleanupProviders) {\n await Promise.all(\n (app as FirebaseAppImpl).container\n .getProviders()\n .map(provider => provider.delete())\n );\n (app as FirebaseAppImpl).isDeleted = true;\n }\n}\n\n/**\n * Registers a library's name and version for platform logging purposes.\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\n * @param version - Current version of that library.\n * @param variant - Bundle variant, e.g., node, rn, etc.\n *\n * @public\n */\nexport function registerVersion(\n libraryKeyOrName: string,\n version: string,\n variant?: string\n): void {\n // TODO: We can use this check to whitelist strings when/if we set up\n // a good whitelist system.\n let library = PLATFORM_LOG_STRING[libraryKeyOrName] ?? libraryKeyOrName;\n if (variant) {\n library += `-${variant}`;\n }\n const libraryMismatch = library.match(/\\s|\\//);\n const versionMismatch = version.match(/\\s|\\//);\n if (libraryMismatch || versionMismatch) {\n const warning = [\n `Unable to register library \"${library}\" with version \"${version}\":`\n ];\n if (libraryMismatch) {\n warning.push(\n `library name \"${library}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n if (libraryMismatch && versionMismatch) {\n warning.push('and');\n }\n if (versionMismatch) {\n warning.push(\n `version name \"${version}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n logger.warn(warning.join(' '));\n return;\n }\n _registerComponent(\n new Component(\n `${library}-version` as Name,\n () => ({ library, version }),\n ComponentType.VERSION\n )\n );\n}\n\n/**\n * Sets log handler for all Firebase SDKs.\n * @param logCallback - An optional custom log handler that executes user code whenever\n * the Firebase SDK makes a logging call.\n *\n * @public\n */\nexport function onLog(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n if (logCallback !== null && typeof logCallback !== 'function') {\n throw ERROR_FACTORY.create(AppError.INVALID_LOG_ARGUMENT);\n }\n setUserLogHandler(logCallback, options);\n}\n\n/**\n * Sets log level for all Firebase SDKs.\n *\n * All of the log types above the current log level are captured (i.e. if\n * you set the log level to `info`, errors are logged, but `debug` and\n * `verbose` logs are not).\n *\n * @public\n */\nexport function setLogLevel(logLevel: LogLevelString): void {\n setLogLevelImpl(logLevel);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { DBSchema, openDB, IDBPDatabase } from 'idb';\nimport { AppError, ERROR_FACTORY } from './errors';\nimport { FirebaseApp } from './public-types';\nimport { HeartbeatsInIndexedDB } from './types';\nimport { logger } from './logger';\n\nconst DB_NAME = 'firebase-heartbeat-database';\nconst DB_VERSION = 1;\nconst STORE_NAME = 'firebase-heartbeat-store';\n\ninterface AppDB extends DBSchema {\n 'firebase-heartbeat-store': {\n key: string;\n value: HeartbeatsInIndexedDB;\n };\n}\n\nlet dbPromise: Promise> | null = null;\nfunction getDbPromise(): Promise> {\n if (!dbPromise) {\n dbPromise = openDB(DB_NAME, DB_VERSION, {\n upgrade: (db, oldVersion) => {\n // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (oldVersion) {\n case 0:\n try {\n db.createObjectStore(STORE_NAME);\n } catch (e) {\n // Safari/iOS browsers throw occasional exceptions on\n // db.createObjectStore() that may be a bug. Avoid blocking\n // the rest of the app functionality.\n console.warn(e);\n }\n }\n }\n }).catch(e => {\n throw ERROR_FACTORY.create(AppError.IDB_OPEN, {\n originalErrorMessage: e.message\n });\n });\n }\n return dbPromise;\n}\n\nexport async function readHeartbeatsFromIndexedDB(\n app: FirebaseApp\n): Promise {\n try {\n const db = await getDbPromise();\n const tx = db.transaction(STORE_NAME);\n const result = await tx.objectStore(STORE_NAME).get(computeKey(app));\n // We already have the value but tx.done can throw,\n // so we need to await it here to catch errors\n await tx.done;\n return result;\n } catch (e) {\n if (e instanceof FirebaseError) {\n logger.warn(e.message);\n } else {\n const idbGetError = ERROR_FACTORY.create(AppError.IDB_GET, {\n originalErrorMessage: (e as Error)?.message\n });\n logger.warn(idbGetError.message);\n }\n }\n}\n\nexport async function writeHeartbeatsToIndexedDB(\n app: FirebaseApp,\n heartbeatObject: HeartbeatsInIndexedDB\n): Promise {\n try {\n const db = await getDbPromise();\n const tx = db.transaction(STORE_NAME, 'readwrite');\n const objectStore = tx.objectStore(STORE_NAME);\n await objectStore.put(heartbeatObject, computeKey(app));\n await tx.done;\n } catch (e) {\n if (e instanceof FirebaseError) {\n logger.warn(e.message);\n } else {\n const idbGetError = ERROR_FACTORY.create(AppError.IDB_WRITE, {\n originalErrorMessage: (e as Error)?.message\n });\n logger.warn(idbGetError.message);\n }\n }\n}\n\nfunction computeKey(app: FirebaseApp): string {\n return `${app.name}!${app.options.appId}`;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentContainer } from '@firebase/component';\nimport {\n base64urlEncodeWithoutPadding,\n isIndexedDBAvailable,\n validateIndexedDBOpenable\n} from '@firebase/util';\nimport {\n readHeartbeatsFromIndexedDB,\n writeHeartbeatsToIndexedDB\n} from './indexeddb';\nimport { FirebaseApp } from './public-types';\nimport {\n HeartbeatsByUserAgent,\n HeartbeatService,\n HeartbeatsInIndexedDB,\n HeartbeatStorage,\n SingleDateHeartbeat\n} from './types';\nimport { logger } from './logger';\n\nconst MAX_HEADER_BYTES = 1024;\n// 30 days\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\n\nexport class HeartbeatServiceImpl implements HeartbeatService {\n /**\n * The persistence layer for heartbeats\n * Leave public for easier testing.\n */\n _storage: HeartbeatStorageImpl;\n\n /**\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\n * the header string.\n * Stores one record per date. This will be consolidated into the standard\n * format of one record per user agent string before being sent as a header.\n * Populated from indexedDB when the controller is instantiated and should\n * be kept in sync with indexedDB.\n * Leave public for easier testing.\n */\n _heartbeatsCache: HeartbeatsInIndexedDB | null = null;\n\n /**\n * the initialization promise for populating heartbeatCache.\n * If getHeartbeatsHeader() is called before the promise resolves\n * (heartbeatsCache == null), it should wait for this promise\n * Leave public for easier testing.\n */\n _heartbeatsCachePromise: Promise;\n constructor(private readonly container: ComponentContainer) {\n const app = this.container.getProvider('app').getImmediate();\n this._storage = new HeartbeatStorageImpl(app);\n this._heartbeatsCachePromise = this._storage.read().then(result => {\n this._heartbeatsCache = result;\n return result;\n });\n }\n\n /**\n * Called to report a heartbeat. The function will generate\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\n * to IndexedDB.\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\n * already logged, subsequent calls to this function in the same day will be ignored.\n */\n async triggerHeartbeat(): Promise {\n try {\n const platformLogger = this.container\n .getProvider('platform-logger')\n .getImmediate();\n\n // This is the \"Firebase user agent\" string from the platform logger\n // service, not the browser user agent.\n const agent = platformLogger.getPlatformInfoString();\n const date = getUTCDateString();\n if (this._heartbeatsCache?.heartbeats == null) {\n this._heartbeatsCache = await this._heartbeatsCachePromise;\n // If we failed to construct a heartbeats cache, then return immediately.\n if (this._heartbeatsCache?.heartbeats == null) {\n return;\n }\n }\n // Do not store a heartbeat if one is already stored for this day\n // or if a header has already been sent today.\n if (\n this._heartbeatsCache.lastSentHeartbeatDate === date ||\n this._heartbeatsCache.heartbeats.some(\n singleDateHeartbeat => singleDateHeartbeat.date === date\n )\n ) {\n return;\n } else {\n // There is no entry for this date. Create one.\n this._heartbeatsCache.heartbeats.push({ date, agent });\n }\n // Remove entries older than 30 days.\n this._heartbeatsCache.heartbeats =\n this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\n const now = Date.now();\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\n });\n return this._storage.overwrite(this._heartbeatsCache);\n } catch (e) {\n logger.warn(e);\n }\n }\n\n /**\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\n * It also clears all heartbeats from memory as well as in IndexedDB.\n *\n * NOTE: Consuming product SDKs should not send the header if this method\n * returns an empty string.\n */\n async getHeartbeatsHeader(): Promise {\n try {\n if (this._heartbeatsCache === null) {\n await this._heartbeatsCachePromise;\n }\n // If it's still null or the array is empty, there is no data to send.\n if (\n this._heartbeatsCache?.heartbeats == null ||\n this._heartbeatsCache.heartbeats.length === 0\n ) {\n return '';\n }\n const date = getUTCDateString();\n // Extract as many heartbeats from the cache as will fit under the size limit.\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(\n this._heartbeatsCache.heartbeats\n );\n const headerString = base64urlEncodeWithoutPadding(\n JSON.stringify({ version: 2, heartbeats: heartbeatsToSend })\n );\n // Store last sent date to prevent another being logged/sent for the same day.\n this._heartbeatsCache.lastSentHeartbeatDate = date;\n if (unsentEntries.length > 0) {\n // Store any unsent entries if they exist.\n this._heartbeatsCache.heartbeats = unsentEntries;\n // This seems more likely than emptying the array (below) to lead to some odd state\n // since the cache isn't empty and this will be called again on the next request,\n // and is probably safest if we await it.\n await this._storage.overwrite(this._heartbeatsCache);\n } else {\n this._heartbeatsCache.heartbeats = [];\n // Do not wait for this, to reduce latency.\n void this._storage.overwrite(this._heartbeatsCache);\n }\n return headerString;\n } catch (e) {\n logger.warn(e);\n return '';\n }\n }\n}\n\nfunction getUTCDateString(): string {\n const today = new Date();\n // Returns date format 'YYYY-MM-DD'\n return today.toISOString().substring(0, 10);\n}\n\nexport function extractHeartbeatsForHeader(\n heartbeatsCache: SingleDateHeartbeat[],\n maxSize = MAX_HEADER_BYTES\n): {\n heartbeatsToSend: HeartbeatsByUserAgent[];\n unsentEntries: SingleDateHeartbeat[];\n} {\n // Heartbeats grouped by user agent in the standard format to be sent in\n // the header.\n const heartbeatsToSend: HeartbeatsByUserAgent[] = [];\n // Single date format heartbeats that are not sent.\n let unsentEntries = heartbeatsCache.slice();\n for (const singleDateHeartbeat of heartbeatsCache) {\n // Look for an existing entry with the same user agent.\n const heartbeatEntry = heartbeatsToSend.find(\n hb => hb.agent === singleDateHeartbeat.agent\n );\n if (!heartbeatEntry) {\n // If no entry for this user agent exists, create one.\n heartbeatsToSend.push({\n agent: singleDateHeartbeat.agent,\n dates: [singleDateHeartbeat.date]\n });\n if (countBytes(heartbeatsToSend) > maxSize) {\n // If the header would exceed max size, remove the added heartbeat\n // entry and stop adding to the header.\n heartbeatsToSend.pop();\n break;\n }\n } else {\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\n // If the header would exceed max size, remove the added date\n // and stop adding to the header.\n if (countBytes(heartbeatsToSend) > maxSize) {\n heartbeatEntry.dates.pop();\n break;\n }\n }\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\n // quota and the loop breaks early.)\n unsentEntries = unsentEntries.slice(1);\n }\n return {\n heartbeatsToSend,\n unsentEntries\n };\n}\n\nexport class HeartbeatStorageImpl implements HeartbeatStorage {\n private _canUseIndexedDBPromise: Promise;\n constructor(public app: FirebaseApp) {\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\n }\n async runIndexedDBEnvironmentCheck(): Promise {\n if (!isIndexedDBAvailable()) {\n return false;\n } else {\n return validateIndexedDBOpenable()\n .then(() => true)\n .catch(() => false);\n }\n }\n /**\n * Read all heartbeats.\n */\n async read(): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return { heartbeats: [] };\n } else {\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\n if (idbHeartbeatObject?.heartbeats) {\n return idbHeartbeatObject;\n } else {\n return { heartbeats: [] };\n }\n }\n }\n // overwrite the storage with the provided heartbeats\n async overwrite(heartbeatsObject: HeartbeatsInIndexedDB): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeatsObject = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n lastSentHeartbeatDate:\n heartbeatsObject.lastSentHeartbeatDate ??\n existingHeartbeatsObject.lastSentHeartbeatDate,\n heartbeats: heartbeatsObject.heartbeats\n });\n }\n }\n // add heartbeats\n async add(heartbeatsObject: HeartbeatsInIndexedDB): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeatsObject = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n lastSentHeartbeatDate:\n heartbeatsObject.lastSentHeartbeatDate ??\n existingHeartbeatsObject.lastSentHeartbeatDate,\n heartbeats: [\n ...existingHeartbeatsObject.heartbeats,\n ...heartbeatsObject.heartbeats\n ]\n });\n }\n }\n}\n\n/**\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\n * in a platform logging header JSON object, stringified, and converted\n * to base 64.\n */\nexport function countBytes(heartbeatsCache: HeartbeatsByUserAgent[]): number {\n // base64 has a restricted set of characters, all of which should be 1 byte.\n return base64urlEncodeWithoutPadding(\n // heartbeatsCache wrapper properties\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })\n ).length;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, ComponentType } from '@firebase/component';\nimport { PlatformLoggerServiceImpl } from './platformLoggerService';\nimport { name, version } from '../package.json';\nimport { _registerComponent } from './internal';\nimport { registerVersion } from './api';\nimport { HeartbeatServiceImpl } from './heartbeatService';\n\nexport function registerCoreComponents(variant?: string): void {\n _registerComponent(\n new Component(\n 'platform-logger',\n container => new PlatformLoggerServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n _registerComponent(\n new Component(\n 'heartbeat',\n container => new HeartbeatServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n\n // Register `app` package.\n registerVersion(name, version, variant);\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n // Register platform SDK identifier (no version).\n registerVersion('fire-js', '');\n}\n","/**\n * Firebase App\n *\n * @remarks This package coordinates the communication between the different Firebase components\n * @packageDocumentation\n */\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { registerCoreComponents } from './registerCoreComponents';\n\nexport * from './api';\nexport * from './internal';\nexport * from './public-types';\n\nregisterCoreComponents('__RUNTIME_ENV__');\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { registerVersion } from '@firebase/app';\nimport { name, version } from '../package.json';\n\nregisterVersion(name, version, 'app');\nexport * from '@firebase/app';\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(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)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorMap, User } from '../model/public_types';\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nimport { IdTokenMfaResponse } from '../api/authentication/mfa';\nimport { AppName } from '../model/auth';\nimport { AuthCredential } from './credentials';\n\n/**\n * Enumeration of Firebase Auth error codes.\n *\n * @internal\n */\nexport const enum AuthErrorCode {\n ADMIN_ONLY_OPERATION = 'admin-restricted-operation',\n ARGUMENT_ERROR = 'argument-error',\n APP_NOT_AUTHORIZED = 'app-not-authorized',\n APP_NOT_INSTALLED = 'app-not-installed',\n CAPTCHA_CHECK_FAILED = 'captcha-check-failed',\n CODE_EXPIRED = 'code-expired',\n CORDOVA_NOT_READY = 'cordova-not-ready',\n CORS_UNSUPPORTED = 'cors-unsupported',\n CREDENTIAL_ALREADY_IN_USE = 'credential-already-in-use',\n CREDENTIAL_MISMATCH = 'custom-token-mismatch',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN = 'requires-recent-login',\n DEPENDENT_SDK_INIT_BEFORE_AUTH = 'dependent-sdk-initialized-before-auth',\n DYNAMIC_LINK_NOT_ACTIVATED = 'dynamic-link-not-activated',\n EMAIL_CHANGE_NEEDS_VERIFICATION = 'email-change-needs-verification',\n EMAIL_EXISTS = 'email-already-in-use',\n EMULATOR_CONFIG_FAILED = 'emulator-config-failed',\n EXPIRED_OOB_CODE = 'expired-action-code',\n EXPIRED_POPUP_REQUEST = 'cancelled-popup-request',\n INTERNAL_ERROR = 'internal-error',\n INVALID_API_KEY = 'invalid-api-key',\n INVALID_APP_CREDENTIAL = 'invalid-app-credential',\n INVALID_APP_ID = 'invalid-app-id',\n INVALID_AUTH = 'invalid-user-token',\n INVALID_AUTH_EVENT = 'invalid-auth-event',\n INVALID_CERT_HASH = 'invalid-cert-hash',\n INVALID_CODE = 'invalid-verification-code',\n INVALID_CONTINUE_URI = 'invalid-continue-uri',\n INVALID_CORDOVA_CONFIGURATION = 'invalid-cordova-configuration',\n INVALID_CUSTOM_TOKEN = 'invalid-custom-token',\n INVALID_DYNAMIC_LINK_DOMAIN = 'invalid-dynamic-link-domain',\n INVALID_EMAIL = 'invalid-email',\n INVALID_EMULATOR_SCHEME = 'invalid-emulator-scheme',\n INVALID_CREDENTIAL = 'invalid-credential',\n INVALID_MESSAGE_PAYLOAD = 'invalid-message-payload',\n INVALID_MFA_SESSION = 'invalid-multi-factor-session',\n INVALID_OAUTH_CLIENT_ID = 'invalid-oauth-client-id',\n INVALID_OAUTH_PROVIDER = 'invalid-oauth-provider',\n INVALID_OOB_CODE = 'invalid-action-code',\n INVALID_ORIGIN = 'unauthorized-domain',\n INVALID_PASSWORD = 'wrong-password',\n INVALID_PERSISTENCE = 'invalid-persistence-type',\n INVALID_PHONE_NUMBER = 'invalid-phone-number',\n INVALID_PROVIDER_ID = 'invalid-provider-id',\n INVALID_RECIPIENT_EMAIL = 'invalid-recipient-email',\n INVALID_SENDER = 'invalid-sender',\n INVALID_SESSION_INFO = 'invalid-verification-id',\n INVALID_TENANT_ID = 'invalid-tenant-id',\n LOGIN_BLOCKED = 'login-blocked',\n MFA_INFO_NOT_FOUND = 'multi-factor-info-not-found',\n MFA_REQUIRED = 'multi-factor-auth-required',\n MISSING_ANDROID_PACKAGE_NAME = 'missing-android-pkg-name',\n MISSING_APP_CREDENTIAL = 'missing-app-credential',\n MISSING_AUTH_DOMAIN = 'auth-domain-config-required',\n MISSING_CODE = 'missing-verification-code',\n MISSING_CONTINUE_URI = 'missing-continue-uri',\n MISSING_IFRAME_START = 'missing-iframe-start',\n MISSING_IOS_BUNDLE_ID = 'missing-ios-bundle-id',\n MISSING_OR_INVALID_NONCE = 'missing-or-invalid-nonce',\n MISSING_MFA_INFO = 'missing-multi-factor-info',\n MISSING_MFA_SESSION = 'missing-multi-factor-session',\n MISSING_PHONE_NUMBER = 'missing-phone-number',\n MISSING_PASSWORD = 'missing-password',\n MISSING_SESSION_INFO = 'missing-verification-id',\n MODULE_DESTROYED = 'app-deleted',\n NEED_CONFIRMATION = 'account-exists-with-different-credential',\n NETWORK_REQUEST_FAILED = 'network-request-failed',\n NULL_USER = 'null-user',\n NO_AUTH_EVENT = 'no-auth-event',\n NO_SUCH_PROVIDER = 'no-such-provider',\n OPERATION_NOT_ALLOWED = 'operation-not-allowed',\n OPERATION_NOT_SUPPORTED = 'operation-not-supported-in-this-environment',\n POPUP_BLOCKED = 'popup-blocked',\n POPUP_CLOSED_BY_USER = 'popup-closed-by-user',\n PROVIDER_ALREADY_LINKED = 'provider-already-linked',\n QUOTA_EXCEEDED = 'quota-exceeded',\n REDIRECT_CANCELLED_BY_USER = 'redirect-cancelled-by-user',\n REDIRECT_OPERATION_PENDING = 'redirect-operation-pending',\n REJECTED_CREDENTIAL = 'rejected-credential',\n SECOND_FACTOR_ALREADY_ENROLLED = 'second-factor-already-in-use',\n SECOND_FACTOR_LIMIT_EXCEEDED = 'maximum-second-factor-count-exceeded',\n TENANT_ID_MISMATCH = 'tenant-id-mismatch',\n TIMEOUT = 'timeout',\n TOKEN_EXPIRED = 'user-token-expired',\n TOO_MANY_ATTEMPTS_TRY_LATER = 'too-many-requests',\n UNAUTHORIZED_DOMAIN = 'unauthorized-continue-uri',\n UNSUPPORTED_FIRST_FACTOR = 'unsupported-first-factor',\n UNSUPPORTED_PERSISTENCE = 'unsupported-persistence-type',\n UNSUPPORTED_TENANT_OPERATION = 'unsupported-tenant-operation',\n UNVERIFIED_EMAIL = 'unverified-email',\n USER_CANCELLED = 'user-cancelled',\n USER_DELETED = 'user-not-found',\n USER_DISABLED = 'user-disabled',\n USER_MISMATCH = 'user-mismatch',\n USER_SIGNED_OUT = 'user-signed-out',\n WEAK_PASSWORD = 'weak-password',\n WEB_STORAGE_UNSUPPORTED = 'web-storage-unsupported',\n ALREADY_INITIALIZED = 'already-initialized',\n RECAPTCHA_NOT_ENABLED = 'recaptcha-not-enabled',\n MISSING_RECAPTCHA_TOKEN = 'missing-recaptcha-token',\n INVALID_RECAPTCHA_TOKEN = 'invalid-recaptcha-token',\n INVALID_RECAPTCHA_ACTION = 'invalid-recaptcha-action',\n MISSING_CLIENT_TYPE = 'missing-client-type',\n MISSING_RECAPTCHA_VERSION = 'missing-recaptcha-version',\n INVALID_RECAPTCHA_VERSION = 'invalid-recaptcha-version',\n INVALID_REQ_TYPE = 'invalid-req-type',\n UNSUPPORTED_PASSWORD_POLICY_SCHEMA_VERSION = 'unsupported-password-policy-schema-version',\n PASSWORD_DOES_NOT_MEET_REQUIREMENTS = 'password-does-not-meet-requirements'\n}\n\nfunction _debugErrorMap(): ErrorMap {\n return {\n [AuthErrorCode.ADMIN_ONLY_OPERATION]:\n 'This operation is restricted to administrators only.',\n [AuthErrorCode.ARGUMENT_ERROR]: '',\n [AuthErrorCode.APP_NOT_AUTHORIZED]:\n \"This app, identified by the domain where it's hosted, is not \" +\n 'authorized to use Firebase Authentication with the provided API key. ' +\n 'Review your key configuration in the Google API console.',\n [AuthErrorCode.APP_NOT_INSTALLED]:\n 'The requested mobile application corresponding to the identifier (' +\n 'Android package name or iOS bundle ID) provided is not installed on ' +\n 'this device.',\n [AuthErrorCode.CAPTCHA_CHECK_FAILED]:\n 'The reCAPTCHA response token provided is either invalid, expired, ' +\n 'already used or the domain associated with it does not match the list ' +\n 'of whitelisted domains.',\n [AuthErrorCode.CODE_EXPIRED]:\n 'The SMS code has expired. Please re-send the verification code to try ' +\n 'again.',\n [AuthErrorCode.CORDOVA_NOT_READY]: 'Cordova framework is not ready.',\n [AuthErrorCode.CORS_UNSUPPORTED]: 'This browser is not supported.',\n [AuthErrorCode.CREDENTIAL_ALREADY_IN_USE]:\n 'This credential is already associated with a different user account.',\n [AuthErrorCode.CREDENTIAL_MISMATCH]:\n 'The custom token corresponds to a different audience.',\n [AuthErrorCode.CREDENTIAL_TOO_OLD_LOGIN_AGAIN]:\n 'This operation is sensitive and requires recent authentication. Log in ' +\n 'again before retrying this request.',\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]:\n 'Another Firebase SDK was initialized and is trying to use Auth before Auth is ' +\n 'initialized. Please be sure to call `initializeAuth` or `getAuth` before ' +\n 'starting any other Firebase SDK.',\n [AuthErrorCode.DYNAMIC_LINK_NOT_ACTIVATED]:\n 'Please activate Dynamic Links in the Firebase Console and agree to the terms and ' +\n 'conditions.',\n [AuthErrorCode.EMAIL_CHANGE_NEEDS_VERIFICATION]:\n 'Multi-factor users must always have a verified email.',\n [AuthErrorCode.EMAIL_EXISTS]:\n 'The email address is already in use by another account.',\n [AuthErrorCode.EMULATOR_CONFIG_FAILED]:\n 'Auth instance has already been used to make a network call. Auth can ' +\n 'no longer be configured to use the emulator. Try calling ' +\n '\"connectAuthEmulator()\" sooner.',\n [AuthErrorCode.EXPIRED_OOB_CODE]: 'The action code has expired.',\n [AuthErrorCode.EXPIRED_POPUP_REQUEST]:\n 'This operation has been cancelled due to another conflicting popup being opened.',\n [AuthErrorCode.INTERNAL_ERROR]: 'An internal AuthError has occurred.',\n [AuthErrorCode.INVALID_APP_CREDENTIAL]:\n 'The phone verification request contains an invalid application verifier.' +\n ' The reCAPTCHA token response is either invalid or expired.',\n [AuthErrorCode.INVALID_APP_ID]:\n 'The mobile app identifier is not registered for the current project.',\n [AuthErrorCode.INVALID_AUTH]:\n \"This user's credential isn't valid for this project. This can happen \" +\n \"if the user's token has been tampered with, or if the user isn't for \" +\n 'the project associated with this API key.',\n [AuthErrorCode.INVALID_AUTH_EVENT]: 'An internal AuthError has occurred.',\n [AuthErrorCode.INVALID_CODE]:\n 'The SMS verification code used to create the phone auth credential is ' +\n 'invalid. Please resend the verification code sms and be sure to use the ' +\n 'verification code provided by the user.',\n [AuthErrorCode.INVALID_CONTINUE_URI]:\n 'The continue URL provided in the request is invalid.',\n [AuthErrorCode.INVALID_CORDOVA_CONFIGURATION]:\n 'The following Cordova plugins must be installed to enable OAuth sign-in: ' +\n 'cordova-plugin-buildinfo, cordova-universal-links-plugin, ' +\n 'cordova-plugin-browsertab, cordova-plugin-inappbrowser and ' +\n 'cordova-plugin-customurlscheme.',\n [AuthErrorCode.INVALID_CUSTOM_TOKEN]:\n 'The custom token format is incorrect. Please check the documentation.',\n [AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN]:\n 'The provided dynamic link domain is not configured or authorized for the current project.',\n [AuthErrorCode.INVALID_EMAIL]: 'The email address is badly formatted.',\n [AuthErrorCode.INVALID_EMULATOR_SCHEME]:\n 'Emulator URL must start with a valid scheme (http:// or https://).',\n [AuthErrorCode.INVALID_API_KEY]:\n 'Your API key is invalid, please check you have copied it correctly.',\n [AuthErrorCode.INVALID_CERT_HASH]:\n 'The SHA-1 certificate hash provided is invalid.',\n [AuthErrorCode.INVALID_CREDENTIAL]:\n 'The supplied auth credential is incorrect, malformed or has expired.',\n [AuthErrorCode.INVALID_MESSAGE_PAYLOAD]:\n 'The email template corresponding to this action contains invalid characters in its message. ' +\n 'Please fix by going to the Auth email templates section in the Firebase Console.',\n [AuthErrorCode.INVALID_MFA_SESSION]:\n 'The request does not contain a valid proof of first factor successful sign-in.',\n [AuthErrorCode.INVALID_OAUTH_PROVIDER]:\n 'EmailAuthProvider is not supported for this operation. This operation ' +\n 'only supports OAuth providers.',\n [AuthErrorCode.INVALID_OAUTH_CLIENT_ID]:\n 'The OAuth client ID provided is either invalid or does not match the ' +\n 'specified API key.',\n [AuthErrorCode.INVALID_ORIGIN]:\n 'This domain is not authorized for OAuth operations for your Firebase ' +\n 'project. Edit the list of authorized domains from the Firebase console.',\n [AuthErrorCode.INVALID_OOB_CODE]:\n 'The action code is invalid. This can happen if the code is malformed, ' +\n 'expired, or has already been used.',\n [AuthErrorCode.INVALID_PASSWORD]:\n 'The password is invalid or the user does not have a password.',\n [AuthErrorCode.INVALID_PERSISTENCE]:\n 'The specified persistence type is invalid. It can only be local, session or none.',\n [AuthErrorCode.INVALID_PHONE_NUMBER]:\n 'The format of the phone number provided is incorrect. Please enter the ' +\n 'phone number in a format that can be parsed into E.164 format. E.164 ' +\n 'phone numbers are written in the format [+][country code][subscriber ' +\n 'number including area code].',\n [AuthErrorCode.INVALID_PROVIDER_ID]:\n 'The specified provider ID is invalid.',\n [AuthErrorCode.INVALID_RECIPIENT_EMAIL]:\n 'The email corresponding to this action failed to send as the provided ' +\n 'recipient email address is invalid.',\n [AuthErrorCode.INVALID_SENDER]:\n 'The email template corresponding to this action contains an invalid sender email or name. ' +\n 'Please fix by going to the Auth email templates section in the Firebase Console.',\n [AuthErrorCode.INVALID_SESSION_INFO]:\n 'The verification ID used to create the phone auth credential is invalid.',\n [AuthErrorCode.INVALID_TENANT_ID]:\n \"The Auth instance's tenant ID is invalid.\",\n [AuthErrorCode.LOGIN_BLOCKED]:\n 'Login blocked by user-provided method: {$originalMessage}',\n [AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME]:\n 'An Android Package Name must be provided if the Android App is required to be installed.',\n [AuthErrorCode.MISSING_AUTH_DOMAIN]:\n 'Be sure to include authDomain when calling firebase.initializeApp(), ' +\n 'by following the instructions in the Firebase console.',\n [AuthErrorCode.MISSING_APP_CREDENTIAL]:\n 'The phone verification request is missing an application verifier ' +\n 'assertion. A reCAPTCHA response token needs to be provided.',\n [AuthErrorCode.MISSING_CODE]:\n 'The phone auth credential was created with an empty SMS verification code.',\n [AuthErrorCode.MISSING_CONTINUE_URI]:\n 'A continue URL must be provided in the request.',\n [AuthErrorCode.MISSING_IFRAME_START]: 'An internal AuthError has occurred.',\n [AuthErrorCode.MISSING_IOS_BUNDLE_ID]:\n 'An iOS Bundle ID must be provided if an App Store ID is provided.',\n [AuthErrorCode.MISSING_OR_INVALID_NONCE]:\n 'The request does not contain a valid nonce. This can occur if the ' +\n 'SHA-256 hash of the provided raw nonce does not match the hashed nonce ' +\n 'in the ID token payload.',\n [AuthErrorCode.MISSING_PASSWORD]: 'A non-empty password must be provided',\n [AuthErrorCode.MISSING_MFA_INFO]:\n 'No second factor identifier is provided.',\n [AuthErrorCode.MISSING_MFA_SESSION]:\n 'The request is missing proof of first factor successful sign-in.',\n [AuthErrorCode.MISSING_PHONE_NUMBER]:\n 'To send verification codes, provide a phone number for the recipient.',\n [AuthErrorCode.MISSING_SESSION_INFO]:\n 'The phone auth credential was created with an empty verification ID.',\n [AuthErrorCode.MODULE_DESTROYED]:\n 'This instance of FirebaseApp has been deleted.',\n [AuthErrorCode.MFA_INFO_NOT_FOUND]:\n 'The user does not have a second factor matching the identifier provided.',\n [AuthErrorCode.MFA_REQUIRED]:\n 'Proof of ownership of a second factor is required to complete sign-in.',\n [AuthErrorCode.NEED_CONFIRMATION]:\n 'An account already exists with the same email address but different ' +\n 'sign-in credentials. Sign in using a provider associated with this ' +\n 'email address.',\n [AuthErrorCode.NETWORK_REQUEST_FAILED]:\n 'A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.',\n [AuthErrorCode.NO_AUTH_EVENT]: 'An internal AuthError has occurred.',\n [AuthErrorCode.NO_SUCH_PROVIDER]:\n 'User was not linked to an account with the given provider.',\n [AuthErrorCode.NULL_USER]:\n 'A null user object was provided as the argument for an operation which ' +\n 'requires a non-null user object.',\n [AuthErrorCode.OPERATION_NOT_ALLOWED]:\n 'The given sign-in provider is disabled for this Firebase project. ' +\n 'Enable it in the Firebase console, under the sign-in method tab of the ' +\n 'Auth section.',\n [AuthErrorCode.OPERATION_NOT_SUPPORTED]:\n 'This operation is not supported in the environment this application is ' +\n 'running on. \"location.protocol\" must be http, https or chrome-extension' +\n ' and web storage must be enabled.',\n [AuthErrorCode.POPUP_BLOCKED]:\n 'Unable to establish a connection with the popup. It may have been blocked by the browser.',\n [AuthErrorCode.POPUP_CLOSED_BY_USER]:\n 'The popup has been closed by the user before finalizing the operation.',\n [AuthErrorCode.PROVIDER_ALREADY_LINKED]:\n 'User can only be linked to one identity for the given provider.',\n [AuthErrorCode.QUOTA_EXCEEDED]:\n \"The project's quota for this operation has been exceeded.\",\n [AuthErrorCode.REDIRECT_CANCELLED_BY_USER]:\n 'The redirect operation has been cancelled by the user before finalizing.',\n [AuthErrorCode.REDIRECT_OPERATION_PENDING]:\n 'A redirect sign-in operation is already pending.',\n [AuthErrorCode.REJECTED_CREDENTIAL]:\n 'The request contains malformed or mismatching credentials.',\n [AuthErrorCode.SECOND_FACTOR_ALREADY_ENROLLED]:\n 'The second factor is already enrolled on this account.',\n [AuthErrorCode.SECOND_FACTOR_LIMIT_EXCEEDED]:\n 'The maximum allowed number of second factors on a user has been exceeded.',\n [AuthErrorCode.TENANT_ID_MISMATCH]:\n \"The provided tenant ID does not match the Auth instance's tenant ID\",\n [AuthErrorCode.TIMEOUT]: 'The operation has timed out.',\n [AuthErrorCode.TOKEN_EXPIRED]:\n \"The user's credential is no longer valid. The user must sign in again.\",\n [AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER]:\n 'We have blocked all requests from this device due to unusual activity. ' +\n 'Try again later.',\n [AuthErrorCode.UNAUTHORIZED_DOMAIN]:\n 'The domain of the continue URL is not whitelisted. Please whitelist ' +\n 'the domain in the Firebase console.',\n [AuthErrorCode.UNSUPPORTED_FIRST_FACTOR]:\n 'Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.',\n [AuthErrorCode.UNSUPPORTED_PERSISTENCE]:\n 'The current environment does not support the specified persistence type.',\n [AuthErrorCode.UNSUPPORTED_TENANT_OPERATION]:\n 'This operation is not supported in a multi-tenant context.',\n [AuthErrorCode.UNVERIFIED_EMAIL]:\n 'The operation requires a verified email.',\n [AuthErrorCode.USER_CANCELLED]:\n 'The user did not grant your application the permissions it requested.',\n [AuthErrorCode.USER_DELETED]:\n 'There is no user record corresponding to this identifier. The user may ' +\n 'have been deleted.',\n [AuthErrorCode.USER_DISABLED]:\n 'The user account has been disabled by an administrator.',\n [AuthErrorCode.USER_MISMATCH]:\n 'The supplied credentials do not correspond to the previously signed in user.',\n [AuthErrorCode.USER_SIGNED_OUT]: '',\n [AuthErrorCode.WEAK_PASSWORD]:\n 'The password must be 6 characters long or more.',\n [AuthErrorCode.WEB_STORAGE_UNSUPPORTED]:\n 'This browser is not supported or 3rd party cookies and data may be disabled.',\n [AuthErrorCode.ALREADY_INITIALIZED]:\n 'initializeAuth() has already been called with ' +\n 'different options. To avoid this error, call initializeAuth() with the ' +\n 'same options as when it was originally called, or call getAuth() to return the' +\n ' already initialized instance.',\n [AuthErrorCode.MISSING_RECAPTCHA_TOKEN]:\n 'The reCAPTCHA token is missing when sending request to the backend.',\n [AuthErrorCode.INVALID_RECAPTCHA_TOKEN]:\n 'The reCAPTCHA token is invalid when sending request to the backend.',\n [AuthErrorCode.INVALID_RECAPTCHA_ACTION]:\n 'The reCAPTCHA action is invalid when sending request to the backend.',\n [AuthErrorCode.RECAPTCHA_NOT_ENABLED]:\n 'reCAPTCHA Enterprise integration is not enabled for this project.',\n [AuthErrorCode.MISSING_CLIENT_TYPE]:\n 'The reCAPTCHA client type is missing when sending request to the backend.',\n [AuthErrorCode.MISSING_RECAPTCHA_VERSION]:\n 'The reCAPTCHA version is missing when sending request to the backend.',\n [AuthErrorCode.INVALID_REQ_TYPE]: 'Invalid request parameters.',\n [AuthErrorCode.INVALID_RECAPTCHA_VERSION]:\n 'The reCAPTCHA version is invalid when sending request to the backend.',\n [AuthErrorCode.UNSUPPORTED_PASSWORD_POLICY_SCHEMA_VERSION]:\n 'The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.',\n [AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS]:\n 'The password does not meet the requirements.'\n };\n}\n\nexport interface ErrorMapRetriever extends AuthErrorMap {\n (): ErrorMap;\n}\n\nfunction _prodErrorMap(): ErrorMap {\n // We will include this one message in the prod error map since by the very\n // nature of this error, developers will never be able to see the message\n // using the debugErrorMap (which is installed during auth initialization).\n return {\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]:\n 'Another Firebase SDK was initialized and is trying to use Auth before Auth is ' +\n 'initialized. Please be sure to call `initializeAuth` or `getAuth` before ' +\n 'starting any other Firebase SDK.'\n } as ErrorMap;\n}\n\n/**\n * A verbose error map with detailed descriptions for most error codes.\n *\n * See discussion at {@link AuthErrorMap}\n *\n * @public\n */\nexport const debugErrorMap: AuthErrorMap = _debugErrorMap;\n\n/**\n * A minimal error map with all verbose error messages stripped.\n *\n * See discussion at {@link AuthErrorMap}\n *\n * @public\n */\nexport const prodErrorMap: AuthErrorMap = _prodErrorMap;\n\nexport interface NamedErrorParams {\n appName: AppName;\n credential?: AuthCredential;\n email?: string;\n phoneNumber?: string;\n tenantId?: string;\n user?: User;\n _serverResponse?: object;\n}\n\n/**\n * @internal\n */\ntype GenericAuthErrorParams = {\n [key in Exclude<\n AuthErrorCode,\n | AuthErrorCode.ARGUMENT_ERROR\n | AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH\n | AuthErrorCode.INTERNAL_ERROR\n | AuthErrorCode.MFA_REQUIRED\n | AuthErrorCode.NO_AUTH_EVENT\n | AuthErrorCode.OPERATION_NOT_SUPPORTED\n >]: {\n appName?: AppName;\n email?: string;\n phoneNumber?: string;\n message?: string;\n };\n};\n\n/**\n * @internal\n */\nexport interface AuthErrorParams extends GenericAuthErrorParams {\n [AuthErrorCode.ARGUMENT_ERROR]: { appName?: AppName };\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]: { appName?: AppName };\n [AuthErrorCode.INTERNAL_ERROR]: { appName?: AppName };\n [AuthErrorCode.LOGIN_BLOCKED]: {\n appName?: AppName;\n originalMessage?: string;\n };\n [AuthErrorCode.OPERATION_NOT_SUPPORTED]: { appName?: AppName };\n [AuthErrorCode.NO_AUTH_EVENT]: { appName?: AppName };\n [AuthErrorCode.MFA_REQUIRED]: {\n appName: AppName;\n _serverResponse: IdTokenMfaResponse;\n };\n [AuthErrorCode.INVALID_CORDOVA_CONFIGURATION]: {\n appName: AppName;\n missingPlugin?: string;\n };\n}\n\nexport const _DEFAULT_AUTH_ERROR_FACTORY = new ErrorFactory<\n AuthErrorCode,\n AuthErrorParams\n>('auth', 'Firebase', _prodErrorMap());\n\n/**\n * A map of potential `Auth` error codes, for easier comparison with errors\n * thrown by the SDK.\n *\n * @remarks\n * Note that you can't tree-shake individual keys\n * in the map, so by using the map you might substantially increase your\n * bundle size.\n *\n * @public\n */\nexport const AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY = {\n ADMIN_ONLY_OPERATION: 'auth/admin-restricted-operation',\n ARGUMENT_ERROR: 'auth/argument-error',\n APP_NOT_AUTHORIZED: 'auth/app-not-authorized',\n APP_NOT_INSTALLED: 'auth/app-not-installed',\n CAPTCHA_CHECK_FAILED: 'auth/captcha-check-failed',\n CODE_EXPIRED: 'auth/code-expired',\n CORDOVA_NOT_READY: 'auth/cordova-not-ready',\n CORS_UNSUPPORTED: 'auth/cors-unsupported',\n CREDENTIAL_ALREADY_IN_USE: 'auth/credential-already-in-use',\n CREDENTIAL_MISMATCH: 'auth/custom-token-mismatch',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN: 'auth/requires-recent-login',\n DEPENDENT_SDK_INIT_BEFORE_AUTH: 'auth/dependent-sdk-initialized-before-auth',\n DYNAMIC_LINK_NOT_ACTIVATED: 'auth/dynamic-link-not-activated',\n EMAIL_CHANGE_NEEDS_VERIFICATION: 'auth/email-change-needs-verification',\n EMAIL_EXISTS: 'auth/email-already-in-use',\n EMULATOR_CONFIG_FAILED: 'auth/emulator-config-failed',\n EXPIRED_OOB_CODE: 'auth/expired-action-code',\n EXPIRED_POPUP_REQUEST: 'auth/cancelled-popup-request',\n INTERNAL_ERROR: 'auth/internal-error',\n INVALID_API_KEY: 'auth/invalid-api-key',\n INVALID_APP_CREDENTIAL: 'auth/invalid-app-credential',\n INVALID_APP_ID: 'auth/invalid-app-id',\n INVALID_AUTH: 'auth/invalid-user-token',\n INVALID_AUTH_EVENT: 'auth/invalid-auth-event',\n INVALID_CERT_HASH: 'auth/invalid-cert-hash',\n INVALID_CODE: 'auth/invalid-verification-code',\n INVALID_CONTINUE_URI: 'auth/invalid-continue-uri',\n INVALID_CORDOVA_CONFIGURATION: 'auth/invalid-cordova-configuration',\n INVALID_CUSTOM_TOKEN: 'auth/invalid-custom-token',\n INVALID_DYNAMIC_LINK_DOMAIN: 'auth/invalid-dynamic-link-domain',\n INVALID_EMAIL: 'auth/invalid-email',\n INVALID_EMULATOR_SCHEME: 'auth/invalid-emulator-scheme',\n INVALID_IDP_RESPONSE: 'auth/invalid-credential',\n INVALID_LOGIN_CREDENTIALS: 'auth/invalid-credential',\n INVALID_MESSAGE_PAYLOAD: 'auth/invalid-message-payload',\n INVALID_MFA_SESSION: 'auth/invalid-multi-factor-session',\n INVALID_OAUTH_CLIENT_ID: 'auth/invalid-oauth-client-id',\n INVALID_OAUTH_PROVIDER: 'auth/invalid-oauth-provider',\n INVALID_OOB_CODE: 'auth/invalid-action-code',\n INVALID_ORIGIN: 'auth/unauthorized-domain',\n INVALID_PASSWORD: 'auth/wrong-password',\n INVALID_PERSISTENCE: 'auth/invalid-persistence-type',\n INVALID_PHONE_NUMBER: 'auth/invalid-phone-number',\n INVALID_PROVIDER_ID: 'auth/invalid-provider-id',\n INVALID_RECIPIENT_EMAIL: 'auth/invalid-recipient-email',\n INVALID_SENDER: 'auth/invalid-sender',\n INVALID_SESSION_INFO: 'auth/invalid-verification-id',\n INVALID_TENANT_ID: 'auth/invalid-tenant-id',\n MFA_INFO_NOT_FOUND: 'auth/multi-factor-info-not-found',\n MFA_REQUIRED: 'auth/multi-factor-auth-required',\n MISSING_ANDROID_PACKAGE_NAME: 'auth/missing-android-pkg-name',\n MISSING_APP_CREDENTIAL: 'auth/missing-app-credential',\n MISSING_AUTH_DOMAIN: 'auth/auth-domain-config-required',\n MISSING_CODE: 'auth/missing-verification-code',\n MISSING_CONTINUE_URI: 'auth/missing-continue-uri',\n MISSING_IFRAME_START: 'auth/missing-iframe-start',\n MISSING_IOS_BUNDLE_ID: 'auth/missing-ios-bundle-id',\n MISSING_OR_INVALID_NONCE: 'auth/missing-or-invalid-nonce',\n MISSING_MFA_INFO: 'auth/missing-multi-factor-info',\n MISSING_MFA_SESSION: 'auth/missing-multi-factor-session',\n MISSING_PHONE_NUMBER: 'auth/missing-phone-number',\n MISSING_SESSION_INFO: 'auth/missing-verification-id',\n MODULE_DESTROYED: 'auth/app-deleted',\n NEED_CONFIRMATION: 'auth/account-exists-with-different-credential',\n NETWORK_REQUEST_FAILED: 'auth/network-request-failed',\n NULL_USER: 'auth/null-user',\n NO_AUTH_EVENT: 'auth/no-auth-event',\n NO_SUCH_PROVIDER: 'auth/no-such-provider',\n OPERATION_NOT_ALLOWED: 'auth/operation-not-allowed',\n OPERATION_NOT_SUPPORTED: 'auth/operation-not-supported-in-this-environment',\n POPUP_BLOCKED: 'auth/popup-blocked',\n POPUP_CLOSED_BY_USER: 'auth/popup-closed-by-user',\n PROVIDER_ALREADY_LINKED: 'auth/provider-already-linked',\n QUOTA_EXCEEDED: 'auth/quota-exceeded',\n REDIRECT_CANCELLED_BY_USER: 'auth/redirect-cancelled-by-user',\n REDIRECT_OPERATION_PENDING: 'auth/redirect-operation-pending',\n REJECTED_CREDENTIAL: 'auth/rejected-credential',\n SECOND_FACTOR_ALREADY_ENROLLED: 'auth/second-factor-already-in-use',\n SECOND_FACTOR_LIMIT_EXCEEDED: 'auth/maximum-second-factor-count-exceeded',\n TENANT_ID_MISMATCH: 'auth/tenant-id-mismatch',\n TIMEOUT: 'auth/timeout',\n TOKEN_EXPIRED: 'auth/user-token-expired',\n TOO_MANY_ATTEMPTS_TRY_LATER: 'auth/too-many-requests',\n UNAUTHORIZED_DOMAIN: 'auth/unauthorized-continue-uri',\n UNSUPPORTED_FIRST_FACTOR: 'auth/unsupported-first-factor',\n UNSUPPORTED_PERSISTENCE: 'auth/unsupported-persistence-type',\n UNSUPPORTED_TENANT_OPERATION: 'auth/unsupported-tenant-operation',\n UNVERIFIED_EMAIL: 'auth/unverified-email',\n USER_CANCELLED: 'auth/user-cancelled',\n USER_DELETED: 'auth/user-not-found',\n USER_DISABLED: 'auth/user-disabled',\n USER_MISMATCH: 'auth/user-mismatch',\n USER_SIGNED_OUT: 'auth/user-signed-out',\n WEAK_PASSWORD: 'auth/weak-password',\n WEB_STORAGE_UNSUPPORTED: 'auth/web-storage-unsupported',\n ALREADY_INITIALIZED: 'auth/already-initialized',\n RECAPTCHA_NOT_ENABLED: 'auth/recaptcha-not-enabled',\n MISSING_RECAPTCHA_TOKEN: 'auth/missing-recaptcha-token',\n INVALID_RECAPTCHA_TOKEN: 'auth/invalid-recaptcha-token',\n INVALID_RECAPTCHA_ACTION: 'auth/invalid-recaptcha-action',\n MISSING_CLIENT_TYPE: 'auth/missing-client-type',\n MISSING_RECAPTCHA_VERSION: 'auth/missing-recaptcha-version',\n INVALID_RECAPTCHA_VERSION: 'auth/invalid-recaptcha-version',\n INVALID_REQ_TYPE: 'auth/invalid-req-type'\n} as const;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger, LogLevel } from '@firebase/logger';\nimport { SDK_VERSION } from '@firebase/app';\n\nexport { LogLevel };\n\nconst logClient = new Logger('@firebase/auth');\n\n// Helper methods are needed because variables can't be exported as read/write\nexport function _getLogLevel(): LogLevel {\n return logClient.logLevel;\n}\n\nexport function _setLogLevel(newLevel: LogLevel): void {\n logClient.logLevel = newLevel;\n}\n\nexport function _logDebug(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.DEBUG) {\n logClient.debug(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n\nexport function _logWarn(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.WARN) {\n logClient.warn(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n\nexport function _logError(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.ERROR) {\n logClient.error(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth } from '../../model/public_types';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { AuthInternal } from '../../model/auth';\nimport {\n _DEFAULT_AUTH_ERROR_FACTORY,\n AuthErrorCode,\n AuthErrorParams,\n prodErrorMap,\n ErrorMapRetriever\n} from '../errors';\nimport { _logError } from './log';\n\ntype AuthErrorListParams = K extends keyof AuthErrorParams\n ? [AuthErrorParams[K]]\n : [];\ntype LessAppName = Omit;\n\n/**\n * Unconditionally fails, throwing a developer facing INTERNAL_ERROR\n *\n * @example\n * ```javascript\n * fail(auth, AuthErrorCode.MFA_REQUIRED); // Error: the MFA_REQUIRED error needs more params than appName\n * fail(auth, AuthErrorCode.MFA_REQUIRED, {serverResponse}); // Compiles\n * fail(AuthErrorCode.INTERNAL_ERROR); // Compiles; internal error does not need appName\n * fail(AuthErrorCode.USER_DELETED); // Error: USER_DELETED requires app name\n * fail(auth, AuthErrorCode.USER_DELETED); // Compiles; USER_DELETED _only_ needs app name\n * ```\n *\n * @param appName App name for tagging the error\n * @throws FirebaseError\n */\nexport function _fail(\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): never;\nexport function _fail(\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): never;\nexport function _fail(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): never {\n throw createErrorInternal(authOrCode, ...rest);\n}\n\nexport function _createError(\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): FirebaseError;\nexport function _createError(\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): FirebaseError;\nexport function _createError(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): FirebaseError {\n return createErrorInternal(authOrCode, ...rest);\n}\n\nexport function _errorWithCustomMessage(\n auth: Auth,\n code: AuthErrorCode,\n message: string\n): FirebaseError {\n const errorMap = {\n ...(prodErrorMap as ErrorMapRetriever)(),\n [code]: message\n };\n const factory = new ErrorFactory(\n 'auth',\n 'Firebase',\n errorMap\n );\n return factory.create(code, {\n appName: auth.name\n });\n}\n\nexport function _serverAppCurrentUserOperationNotSupportedError(\n auth: Auth\n): FirebaseError {\n return _errorWithCustomMessage(\n auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED,\n 'Operations that alter the current user are not supported in conjunction with FirebaseServerApp'\n );\n}\n\nexport function _assertInstanceOf(\n auth: Auth,\n object: object,\n instance: unknown\n): void {\n const constructorInstance = instance as { new (...args: unknown[]): unknown };\n if (!(object instanceof constructorInstance)) {\n if (constructorInstance.name !== object.constructor.name) {\n _fail(auth, AuthErrorCode.ARGUMENT_ERROR);\n }\n\n throw _errorWithCustomMessage(\n auth,\n AuthErrorCode.ARGUMENT_ERROR,\n `Type of ${object.constructor.name} does not match expected instance.` +\n `Did you pass a reference from a different Auth SDK?`\n );\n }\n}\n\nfunction createErrorInternal(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): FirebaseError {\n if (typeof authOrCode !== 'string') {\n const code = rest[0] as K;\n const fullParams = [...rest.slice(1)] as AuthErrorListParams;\n if (fullParams[0]) {\n fullParams[0].appName = authOrCode.name;\n }\n\n return (authOrCode as AuthInternal)._errorFactory.create(\n code,\n ...fullParams\n );\n }\n\n return _DEFAULT_AUTH_ERROR_FACTORY.create(\n authOrCode,\n ...(rest as AuthErrorListParams)\n );\n}\n\nexport function _assert(\n assertion: unknown,\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): asserts assertion;\nexport function _assert(\n assertion: unknown,\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): asserts assertion;\nexport function _assert(\n assertion: unknown,\n authOrCode: Auth | K,\n ...rest: unknown[]\n): asserts assertion {\n if (!assertion) {\n throw createErrorInternal(authOrCode, ...rest);\n }\n}\n\n// We really do want to accept literally any function type here\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype TypeExpectation = Function | string | MapType;\n\ninterface MapType extends Record {}\n\nclass Optional {\n constructor(readonly type: TypeExpectation) {}\n}\n\nexport function opt(type: TypeExpectation): Optional {\n return new Optional(type);\n}\n\n/**\n * Asserts the runtime types of arguments. The 'expected' field can be one of\n * a class, a string (representing a \"typeof\" call), or a record map of name\n * to type. Furthermore, the opt() function can be used to mark a field as\n * optional. For example:\n *\n * function foo(auth: Auth, profile: {displayName?: string}, update = false) {\n * assertTypes(arguments, [AuthImpl, {displayName: opt('string')}, opt('boolean')]);\n * }\n *\n * opt() can be used for any type:\n * function foo(auth?: Auth) {\n * assertTypes(arguments, [opt(AuthImpl)]);\n * }\n *\n * The string types can be or'd together, and you can use \"null\" as well (note\n * that typeof null === 'object'; this is an edge case). For example:\n *\n * function foo(profile: {displayName?: string | null}) {\n * assertTypes(arguments, [{displayName: opt('string|null')}]);\n * }\n *\n * @param args\n * @param expected\n */\nexport function assertTypes(\n args: Omit,\n ...expected: Array\n): void {\n if (args.length > expected.length) {\n _fail(AuthErrorCode.ARGUMENT_ERROR, {});\n }\n\n for (let i = 0; i < expected.length; i++) {\n let expect = expected[i];\n const arg = args[i];\n\n if (expect instanceof Optional) {\n // If the arg is undefined, then it matches \"optional\" and we can move to\n // the next arg\n if (typeof arg === 'undefined') {\n continue;\n }\n expect = expect.type;\n }\n\n if (typeof expect === 'string') {\n // Handle the edge case for null because typeof null === 'object'\n if (expect.includes('null') && arg === null) {\n continue;\n }\n\n const required = expect.split('|');\n _assert(required.includes(typeof arg), AuthErrorCode.ARGUMENT_ERROR, {});\n } else if (typeof expect === 'object') {\n // Recursively check record arguments\n const record = arg as Record;\n const map = expect as MapType;\n const keys = Object.keys(expect);\n\n assertTypes(\n keys.map(k => record[k]),\n ...keys.map(k => map[k])\n );\n } else {\n _assert(arg instanceof expect, AuthErrorCode.ARGUMENT_ERROR, {});\n }\n }\n}\n\n/**\n * Unconditionally fails, throwing an internal error with the given message.\n *\n * @param failure type of failure encountered\n * @throws Error\n */\nexport function debugFail(failure: string): never {\n // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n const message = `INTERNAL ASSERTION FAILED: ` + failure;\n _logError(message);\n\n // NOTE: We don't use FirebaseError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n throw new Error(message);\n}\n\n/**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * @param assertion\n * @param message\n */\nexport function debugAssert(\n assertion: unknown,\n message: string\n): asserts assertion {\n if (!assertion) {\n debugFail(message);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function _getCurrentUrl(): string {\n return (typeof self !== 'undefined' && self.location?.href) || '';\n}\n\nexport function _isHttpOrHttps(): boolean {\n return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';\n}\n\nexport function _getCurrentScheme(): string | null {\n return (typeof self !== 'undefined' && self.location?.protocol) || null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isBrowserExtension } from '@firebase/util';\nimport { _isHttpOrHttps } from './location';\n\n/**\n * Determine whether the browser is working online\n */\nexport function _isOnline(): boolean {\n if (\n typeof navigator !== 'undefined' &&\n navigator &&\n 'onLine' in navigator &&\n typeof navigator.onLine === 'boolean' &&\n // Apply only for traditional web apps and Chrome extensions.\n // This is especially true for Cordova apps which have unreliable\n // navigator.onLine behavior unless cordova-plugin-network-information is\n // installed which overwrites the native navigator.onLine value and\n // defines navigator.connection.\n (_isHttpOrHttps() || isBrowserExtension() || 'connection' in navigator)\n ) {\n return navigator.onLine;\n }\n // If we can't determine the state, assume it is online.\n return true;\n}\n\nexport function _getUserLanguage(): string | null {\n if (typeof navigator === 'undefined') {\n return null;\n }\n const navigatorLanguage: NavigatorLanguage = navigator;\n return (\n // Most reliable, but only supported in Chrome/Firefox.\n (navigatorLanguage.languages && navigatorLanguage.languages[0]) ||\n // Supported in most browsers, but returns the language of the browser\n // UI, not the language set in browser settings.\n navigatorLanguage.language ||\n // Couldn't determine language.\n null\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isMobileCordova, isReactNative } from '@firebase/util';\nimport { _isOnline } from './navigator';\nimport { debugAssert } from './assert';\n\nexport const enum DelayMin {\n OFFLINE = 5000\n}\n\n/**\n * A structure to help pick between a range of long and short delay durations\n * depending on the current environment. In general, the long delay is used for\n * mobile environments whereas short delays are used for desktop environments.\n */\nexport class Delay {\n // The default value for the offline delay timeout in ms.\n\n private readonly isMobile: boolean;\n constructor(\n private readonly shortDelay: number,\n private readonly longDelay: number\n ) {\n // Internal error when improperly initialized.\n debugAssert(\n longDelay > shortDelay,\n 'Short delay should be less than long delay!'\n );\n this.isMobile = isMobileCordova() || isReactNative();\n }\n\n get(): number {\n if (!_isOnline()) {\n // Pick the shorter timeout.\n return Math.min(DelayMin.OFFLINE, this.shortDelay);\n }\n // If running in a mobile environment, return the long delay, otherwise\n // return the short delay.\n // This could be improved in the future to dynamically change based on other\n // variables instead of just reading the current environment.\n return this.isMobile ? this.longDelay : this.shortDelay;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigInternal } from '../../model/auth';\nimport { debugAssert } from './assert';\n\nexport function _emulatorUrl(config: ConfigInternal, path?: string): string {\n debugAssert(config.emulator, 'Emulator should always be set here');\n const { url } = config.emulator;\n\n if (!path) {\n return url;\n }\n\n return `${url}${path.startsWith('/') ? path.slice(1) : path}`;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { debugFail } from './assert';\n\nexport class FetchProvider {\n private static fetchImpl: typeof fetch | null;\n private static headersImpl: typeof Headers | null;\n private static responseImpl: typeof Response | null;\n\n static initialize(\n fetchImpl: typeof fetch,\n headersImpl?: typeof Headers,\n responseImpl?: typeof Response\n ): void {\n this.fetchImpl = fetchImpl;\n if (headersImpl) {\n this.headersImpl = headersImpl;\n }\n if (responseImpl) {\n this.responseImpl = responseImpl;\n }\n }\n\n static fetch(): typeof fetch {\n if (this.fetchImpl) {\n return this.fetchImpl;\n }\n if (typeof self !== 'undefined' && 'fetch' in self) {\n return self.fetch;\n }\n if (typeof globalThis !== 'undefined' && globalThis.fetch) {\n return globalThis.fetch;\n }\n if (typeof fetch !== 'undefined') {\n return fetch;\n }\n debugFail(\n 'Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n\n static headers(): typeof Headers {\n if (this.headersImpl) {\n return this.headersImpl;\n }\n if (typeof self !== 'undefined' && 'Headers' in self) {\n return self.Headers;\n }\n if (typeof globalThis !== 'undefined' && globalThis.Headers) {\n return globalThis.Headers;\n }\n if (typeof Headers !== 'undefined') {\n return Headers;\n }\n debugFail(\n 'Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n\n static response(): typeof Response {\n if (this.responseImpl) {\n return this.responseImpl;\n }\n if (typeof self !== 'undefined' && 'Response' in self) {\n return self.Response;\n }\n if (typeof globalThis !== 'undefined' && globalThis.Response) {\n return globalThis.Response;\n }\n if (typeof Response !== 'undefined') {\n return Response;\n }\n debugFail(\n 'Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../core/errors';\n\n/**\n * Errors that can be returned by the backend\n */\nexport const enum ServerError {\n ADMIN_ONLY_OPERATION = 'ADMIN_ONLY_OPERATION',\n BLOCKING_FUNCTION_ERROR_RESPONSE = 'BLOCKING_FUNCTION_ERROR_RESPONSE',\n CAPTCHA_CHECK_FAILED = 'CAPTCHA_CHECK_FAILED',\n CORS_UNSUPPORTED = 'CORS_UNSUPPORTED',\n CREDENTIAL_MISMATCH = 'CREDENTIAL_MISMATCH',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN = 'CREDENTIAL_TOO_OLD_LOGIN_AGAIN',\n DYNAMIC_LINK_NOT_ACTIVATED = 'DYNAMIC_LINK_NOT_ACTIVATED',\n EMAIL_CHANGE_NEEDS_VERIFICATION = 'EMAIL_CHANGE_NEEDS_VERIFICATION',\n EMAIL_EXISTS = 'EMAIL_EXISTS',\n EMAIL_NOT_FOUND = 'EMAIL_NOT_FOUND',\n EXPIRED_OOB_CODE = 'EXPIRED_OOB_CODE',\n FEDERATED_USER_ID_ALREADY_LINKED = 'FEDERATED_USER_ID_ALREADY_LINKED',\n INVALID_APP_CREDENTIAL = 'INVALID_APP_CREDENTIAL',\n INVALID_APP_ID = 'INVALID_APP_ID',\n INVALID_CERT_HASH = 'INVALID_CERT_HASH',\n INVALID_CODE = 'INVALID_CODE',\n INVALID_CONTINUE_URI = 'INVALID_CONTINUE_URI',\n INVALID_CUSTOM_TOKEN = 'INVALID_CUSTOM_TOKEN',\n INVALID_DYNAMIC_LINK_DOMAIN = 'INVALID_DYNAMIC_LINK_DOMAIN',\n INVALID_EMAIL = 'INVALID_EMAIL',\n INVALID_ID_TOKEN = 'INVALID_ID_TOKEN',\n INVALID_IDP_RESPONSE = 'INVALID_IDP_RESPONSE',\n INVALID_IDENTIFIER = 'INVALID_IDENTIFIER',\n INVALID_LOGIN_CREDENTIALS = 'INVALID_LOGIN_CREDENTIALS',\n INVALID_MESSAGE_PAYLOAD = 'INVALID_MESSAGE_PAYLOAD',\n INVALID_MFA_PENDING_CREDENTIAL = 'INVALID_MFA_PENDING_CREDENTIAL',\n INVALID_OAUTH_CLIENT_ID = 'INVALID_OAUTH_CLIENT_ID',\n INVALID_OOB_CODE = 'INVALID_OOB_CODE',\n INVALID_PASSWORD = 'INVALID_PASSWORD',\n INVALID_PENDING_TOKEN = 'INVALID_PENDING_TOKEN',\n INVALID_PHONE_NUMBER = 'INVALID_PHONE_NUMBER',\n INVALID_PROVIDER_ID = 'INVALID_PROVIDER_ID',\n INVALID_RECIPIENT_EMAIL = 'INVALID_RECIPIENT_EMAIL',\n INVALID_SENDER = 'INVALID_SENDER',\n INVALID_SESSION_INFO = 'INVALID_SESSION_INFO',\n INVALID_TEMPORARY_PROOF = 'INVALID_TEMPORARY_PROOF',\n INVALID_TENANT_ID = 'INVALID_TENANT_ID',\n MFA_ENROLLMENT_NOT_FOUND = 'MFA_ENROLLMENT_NOT_FOUND',\n MISSING_ANDROID_PACKAGE_NAME = 'MISSING_ANDROID_PACKAGE_NAME',\n MISSING_APP_CREDENTIAL = 'MISSING_APP_CREDENTIAL',\n MISSING_CODE = 'MISSING_CODE',\n MISSING_CONTINUE_URI = 'MISSING_CONTINUE_URI',\n MISSING_CUSTOM_TOKEN = 'MISSING_CUSTOM_TOKEN',\n MISSING_IOS_BUNDLE_ID = 'MISSING_IOS_BUNDLE_ID',\n MISSING_MFA_ENROLLMENT_ID = 'MISSING_MFA_ENROLLMENT_ID',\n MISSING_MFA_PENDING_CREDENTIAL = 'MISSING_MFA_PENDING_CREDENTIAL',\n MISSING_OOB_CODE = 'MISSING_OOB_CODE',\n MISSING_OR_INVALID_NONCE = 'MISSING_OR_INVALID_NONCE',\n MISSING_PASSWORD = 'MISSING_PASSWORD',\n MISSING_REQ_TYPE = 'MISSING_REQ_TYPE',\n MISSING_PHONE_NUMBER = 'MISSING_PHONE_NUMBER',\n MISSING_SESSION_INFO = 'MISSING_SESSION_INFO',\n OPERATION_NOT_ALLOWED = 'OPERATION_NOT_ALLOWED',\n PASSWORD_LOGIN_DISABLED = 'PASSWORD_LOGIN_DISABLED',\n QUOTA_EXCEEDED = 'QUOTA_EXCEEDED',\n RESET_PASSWORD_EXCEED_LIMIT = 'RESET_PASSWORD_EXCEED_LIMIT',\n REJECTED_CREDENTIAL = 'REJECTED_CREDENTIAL',\n SECOND_FACTOR_EXISTS = 'SECOND_FACTOR_EXISTS',\n SECOND_FACTOR_LIMIT_EXCEEDED = 'SECOND_FACTOR_LIMIT_EXCEEDED',\n SESSION_EXPIRED = 'SESSION_EXPIRED',\n TENANT_ID_MISMATCH = 'TENANT_ID_MISMATCH',\n TOKEN_EXPIRED = 'TOKEN_EXPIRED',\n TOO_MANY_ATTEMPTS_TRY_LATER = 'TOO_MANY_ATTEMPTS_TRY_LATER',\n UNSUPPORTED_FIRST_FACTOR = 'UNSUPPORTED_FIRST_FACTOR',\n UNSUPPORTED_TENANT_OPERATION = 'UNSUPPORTED_TENANT_OPERATION',\n UNAUTHORIZED_DOMAIN = 'UNAUTHORIZED_DOMAIN',\n UNVERIFIED_EMAIL = 'UNVERIFIED_EMAIL',\n USER_CANCELLED = 'USER_CANCELLED',\n USER_DISABLED = 'USER_DISABLED',\n USER_NOT_FOUND = 'USER_NOT_FOUND',\n WEAK_PASSWORD = 'WEAK_PASSWORD',\n RECAPTCHA_NOT_ENABLED = 'RECAPTCHA_NOT_ENABLED',\n MISSING_RECAPTCHA_TOKEN = 'MISSING_RECAPTCHA_TOKEN',\n INVALID_RECAPTCHA_TOKEN = 'INVALID_RECAPTCHA_TOKEN',\n INVALID_RECAPTCHA_ACTION = 'INVALID_RECAPTCHA_ACTION',\n MISSING_CLIENT_TYPE = 'MISSING_CLIENT_TYPE',\n MISSING_RECAPTCHA_VERSION = 'MISSING_RECAPTCHA_VERSION',\n INVALID_RECAPTCHA_VERSION = 'INVALID_RECAPTCHA_VERSION',\n INVALID_REQ_TYPE = 'INVALID_REQ_TYPE',\n PASSWORD_DOES_NOT_MEET_REQUIREMENTS = 'PASSWORD_DOES_NOT_MEET_REQUIREMENTS'\n}\n\n/**\n * API Response in the event of an error\n */\nexport interface JsonError {\n error: {\n code: number;\n message: string;\n errors?: [\n {\n message: ServerError;\n domain: string;\n reason: string;\n }\n ];\n };\n}\n\n/**\n * Type definition for a map from server errors to developer visible errors\n */\nexport declare type ServerErrorMap = {\n readonly [K in ApiError]: AuthErrorCode;\n};\n\n/**\n * Map from errors returned by the server to errors to developer visible errors\n */\nexport const SERVER_ERROR_MAP: Partial> = {\n // Custom token errors.\n [ServerError.CREDENTIAL_MISMATCH]: AuthErrorCode.CREDENTIAL_MISMATCH,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_CUSTOM_TOKEN]: AuthErrorCode.INTERNAL_ERROR,\n\n // Create Auth URI errors.\n [ServerError.INVALID_IDENTIFIER]: AuthErrorCode.INVALID_EMAIL,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_CONTINUE_URI]: AuthErrorCode.INTERNAL_ERROR,\n\n // Sign in with email and password errors (some apply to sign up too).\n [ServerError.INVALID_PASSWORD]: AuthErrorCode.INVALID_PASSWORD,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_PASSWORD]: AuthErrorCode.MISSING_PASSWORD,\n // Thrown if Email Enumeration Protection is enabled in the project and the email or password is\n // invalid.\n [ServerError.INVALID_LOGIN_CREDENTIALS]: AuthErrorCode.INVALID_CREDENTIAL,\n\n // Sign up with email and password errors.\n [ServerError.EMAIL_EXISTS]: AuthErrorCode.EMAIL_EXISTS,\n [ServerError.PASSWORD_LOGIN_DISABLED]: AuthErrorCode.OPERATION_NOT_ALLOWED,\n\n // Verify assertion for sign in with credential errors:\n [ServerError.INVALID_IDP_RESPONSE]: AuthErrorCode.INVALID_CREDENTIAL,\n [ServerError.INVALID_PENDING_TOKEN]: AuthErrorCode.INVALID_CREDENTIAL,\n [ServerError.FEDERATED_USER_ID_ALREADY_LINKED]:\n AuthErrorCode.CREDENTIAL_ALREADY_IN_USE,\n\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_REQ_TYPE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Send Password reset email errors:\n [ServerError.EMAIL_NOT_FOUND]: AuthErrorCode.USER_DELETED,\n [ServerError.RESET_PASSWORD_EXCEED_LIMIT]:\n AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER,\n\n [ServerError.EXPIRED_OOB_CODE]: AuthErrorCode.EXPIRED_OOB_CODE,\n [ServerError.INVALID_OOB_CODE]: AuthErrorCode.INVALID_OOB_CODE,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_OOB_CODE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Operations that require ID token in request:\n [ServerError.CREDENTIAL_TOO_OLD_LOGIN_AGAIN]:\n AuthErrorCode.CREDENTIAL_TOO_OLD_LOGIN_AGAIN,\n [ServerError.INVALID_ID_TOKEN]: AuthErrorCode.INVALID_AUTH,\n [ServerError.TOKEN_EXPIRED]: AuthErrorCode.TOKEN_EXPIRED,\n [ServerError.USER_NOT_FOUND]: AuthErrorCode.TOKEN_EXPIRED,\n\n // Other errors.\n [ServerError.TOO_MANY_ATTEMPTS_TRY_LATER]:\n AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER,\n [ServerError.PASSWORD_DOES_NOT_MEET_REQUIREMENTS]:\n AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS,\n\n // Phone Auth related errors.\n [ServerError.INVALID_CODE]: AuthErrorCode.INVALID_CODE,\n [ServerError.INVALID_SESSION_INFO]: AuthErrorCode.INVALID_SESSION_INFO,\n [ServerError.INVALID_TEMPORARY_PROOF]: AuthErrorCode.INVALID_CREDENTIAL,\n [ServerError.MISSING_SESSION_INFO]: AuthErrorCode.MISSING_SESSION_INFO,\n [ServerError.SESSION_EXPIRED]: AuthErrorCode.CODE_EXPIRED,\n\n // Other action code errors when additional settings passed.\n // MISSING_CONTINUE_URI is getting mapped to INTERNAL_ERROR above.\n // This is OK as this error will be caught by client side validation.\n [ServerError.MISSING_ANDROID_PACKAGE_NAME]:\n AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME,\n [ServerError.UNAUTHORIZED_DOMAIN]: AuthErrorCode.UNAUTHORIZED_DOMAIN,\n\n // getProjectConfig errors when clientId is passed.\n [ServerError.INVALID_OAUTH_CLIENT_ID]: AuthErrorCode.INVALID_OAUTH_CLIENT_ID,\n\n // User actions (sign-up or deletion) disabled errors.\n [ServerError.ADMIN_ONLY_OPERATION]: AuthErrorCode.ADMIN_ONLY_OPERATION,\n\n // Multi factor related errors.\n [ServerError.INVALID_MFA_PENDING_CREDENTIAL]:\n AuthErrorCode.INVALID_MFA_SESSION,\n [ServerError.MFA_ENROLLMENT_NOT_FOUND]: AuthErrorCode.MFA_INFO_NOT_FOUND,\n [ServerError.MISSING_MFA_ENROLLMENT_ID]: AuthErrorCode.MISSING_MFA_INFO,\n [ServerError.MISSING_MFA_PENDING_CREDENTIAL]:\n AuthErrorCode.MISSING_MFA_SESSION,\n [ServerError.SECOND_FACTOR_EXISTS]:\n AuthErrorCode.SECOND_FACTOR_ALREADY_ENROLLED,\n [ServerError.SECOND_FACTOR_LIMIT_EXCEEDED]:\n AuthErrorCode.SECOND_FACTOR_LIMIT_EXCEEDED,\n\n // Blocking functions related errors.\n [ServerError.BLOCKING_FUNCTION_ERROR_RESPONSE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Recaptcha related errors.\n [ServerError.RECAPTCHA_NOT_ENABLED]: AuthErrorCode.RECAPTCHA_NOT_ENABLED,\n [ServerError.MISSING_RECAPTCHA_TOKEN]: AuthErrorCode.MISSING_RECAPTCHA_TOKEN,\n [ServerError.INVALID_RECAPTCHA_TOKEN]: AuthErrorCode.INVALID_RECAPTCHA_TOKEN,\n [ServerError.INVALID_RECAPTCHA_ACTION]:\n AuthErrorCode.INVALID_RECAPTCHA_ACTION,\n [ServerError.MISSING_CLIENT_TYPE]: AuthErrorCode.MISSING_CLIENT_TYPE,\n [ServerError.MISSING_RECAPTCHA_VERSION]:\n AuthErrorCode.MISSING_RECAPTCHA_VERSION,\n [ServerError.INVALID_RECAPTCHA_VERSION]:\n AuthErrorCode.INVALID_RECAPTCHA_VERSION,\n [ServerError.INVALID_REQ_TYPE]: AuthErrorCode.INVALID_REQ_TYPE\n};\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError, isCloudflareWorker, querystring } from '@firebase/util';\n\nimport { AuthErrorCode, NamedErrorParams } from '../core/errors';\nimport {\n _createError,\n _errorWithCustomMessage,\n _fail\n} from '../core/util/assert';\nimport { Delay } from '../core/util/delay';\nimport { _emulatorUrl } from '../core/util/emulator';\nimport { FetchProvider } from '../core/util/fetch_provider';\nimport { Auth } from '../model/public_types';\nimport { AuthInternal, ConfigInternal } from '../model/auth';\nimport { IdTokenResponse, TaggedWithTokenResponse } from '../model/id_token';\nimport { IdTokenMfaResponse } from './authentication/mfa';\nimport { SERVER_ERROR_MAP, ServerError, ServerErrorMap } from './errors';\n\nexport const enum HttpMethod {\n POST = 'POST',\n GET = 'GET'\n}\n\nexport const enum HttpHeader {\n CONTENT_TYPE = 'Content-Type',\n X_FIREBASE_LOCALE = 'X-Firebase-Locale',\n X_CLIENT_VERSION = 'X-Client-Version',\n X_FIREBASE_GMPID = 'X-Firebase-gmpid',\n X_FIREBASE_CLIENT = 'X-Firebase-Client',\n X_FIREBASE_APP_CHECK = 'X-Firebase-AppCheck'\n}\n\nexport const enum Endpoint {\n CREATE_AUTH_URI = '/v1/accounts:createAuthUri',\n DELETE_ACCOUNT = '/v1/accounts:delete',\n RESET_PASSWORD = '/v1/accounts:resetPassword',\n SIGN_UP = '/v1/accounts:signUp',\n SIGN_IN_WITH_CUSTOM_TOKEN = '/v1/accounts:signInWithCustomToken',\n SIGN_IN_WITH_EMAIL_LINK = '/v1/accounts:signInWithEmailLink',\n SIGN_IN_WITH_IDP = '/v1/accounts:signInWithIdp',\n SIGN_IN_WITH_PASSWORD = '/v1/accounts:signInWithPassword',\n SIGN_IN_WITH_PHONE_NUMBER = '/v1/accounts:signInWithPhoneNumber',\n SEND_VERIFICATION_CODE = '/v1/accounts:sendVerificationCode',\n SEND_OOB_CODE = '/v1/accounts:sendOobCode',\n SET_ACCOUNT_INFO = '/v1/accounts:update',\n GET_ACCOUNT_INFO = '/v1/accounts:lookup',\n GET_RECAPTCHA_PARAM = '/v1/recaptchaParams',\n START_MFA_ENROLLMENT = '/v2/accounts/mfaEnrollment:start',\n FINALIZE_MFA_ENROLLMENT = '/v2/accounts/mfaEnrollment:finalize',\n START_MFA_SIGN_IN = '/v2/accounts/mfaSignIn:start',\n FINALIZE_MFA_SIGN_IN = '/v2/accounts/mfaSignIn:finalize',\n WITHDRAW_MFA = '/v2/accounts/mfaEnrollment:withdraw',\n GET_PROJECT_CONFIG = '/v1/projects',\n GET_RECAPTCHA_CONFIG = '/v2/recaptchaConfig',\n GET_PASSWORD_POLICY = '/v2/passwordPolicy',\n TOKEN = '/v1/token',\n REVOKE_TOKEN = '/v2/accounts:revokeToken'\n}\n\nexport const enum RecaptchaClientType {\n WEB = 'CLIENT_TYPE_WEB',\n ANDROID = 'CLIENT_TYPE_ANDROID',\n IOS = 'CLIENT_TYPE_IOS'\n}\n\nexport const enum RecaptchaVersion {\n ENTERPRISE = 'RECAPTCHA_ENTERPRISE'\n}\n\nexport const enum RecaptchaActionName {\n SIGN_IN_WITH_PASSWORD = 'signInWithPassword',\n GET_OOB_CODE = 'getOobCode',\n SIGN_UP_PASSWORD = 'signUpPassword'\n}\n\nexport const enum EnforcementState {\n ENFORCE = 'ENFORCE',\n AUDIT = 'AUDIT',\n OFF = 'OFF',\n ENFORCEMENT_STATE_UNSPECIFIED = 'ENFORCEMENT_STATE_UNSPECIFIED'\n}\n\n// Providers that have reCAPTCHA Enterprise support.\nexport const enum RecaptchaProvider {\n EMAIL_PASSWORD_PROVIDER = 'EMAIL_PASSWORD_PROVIDER'\n}\n\nexport const DEFAULT_API_TIMEOUT_MS = new Delay(30_000, 60_000);\n\nexport function _addTidIfNecessary(\n auth: Auth,\n request: T\n): T {\n if (auth.tenantId && !request.tenantId) {\n return {\n ...request,\n tenantId: auth.tenantId\n };\n }\n return request;\n}\n\nexport async function _performApiRequest(\n auth: Auth,\n method: HttpMethod,\n path: Endpoint,\n request?: T,\n customErrorMap: Partial> = {}\n): Promise {\n return _performFetchWithErrorHandling(auth, customErrorMap, async () => {\n let body = {};\n let params = {};\n if (request) {\n if (method === HttpMethod.GET) {\n params = request;\n } else {\n body = {\n body: JSON.stringify(request)\n };\n }\n }\n\n const query = querystring({\n key: auth.config.apiKey,\n ...params\n }).slice(1);\n\n const headers = await (auth as AuthInternal)._getAdditionalHeaders();\n headers[HttpHeader.CONTENT_TYPE] = 'application/json';\n\n if (auth.languageCode) {\n headers[HttpHeader.X_FIREBASE_LOCALE] = auth.languageCode;\n }\n\n const fetchArgs: RequestInit = {\n method,\n headers,\n ...body\n };\n\n /* Security-conscious server-side frameworks tend to have built in mitigations for referrer\n problems\". See the Cloudflare GitHub issue #487: Error: The 'referrerPolicy' field on\n 'RequestInitializerDict' is not implemented.\"\n https://github.com/cloudflare/next-on-pages/issues/487 */\n if (!isCloudflareWorker()) {\n fetchArgs.referrerPolicy = 'no-referrer';\n }\n\n return FetchProvider.fetch()(\n _getFinalTarget(auth, auth.config.apiHost, path, query),\n fetchArgs\n );\n });\n}\n\nexport async function _performFetchWithErrorHandling(\n auth: Auth,\n customErrorMap: Partial>,\n fetchFn: () => Promise\n): Promise {\n (auth as AuthInternal)._canInitEmulator = false;\n const errorMap = { ...SERVER_ERROR_MAP, ...customErrorMap };\n try {\n const networkTimeout = new NetworkTimeout(auth);\n const response: Response = await Promise.race>([\n fetchFn(),\n networkTimeout.promise\n ]);\n\n // If we've reached this point, the fetch succeeded and the networkTimeout\n // didn't throw; clear the network timeout delay so that Node won't hang\n networkTimeout.clearNetworkTimeout();\n\n const json = await response.json();\n if ('needConfirmation' in json) {\n throw _makeTaggedError(auth, AuthErrorCode.NEED_CONFIRMATION, json);\n }\n\n if (response.ok && !('errorMessage' in json)) {\n return json;\n } else {\n const errorMessage = response.ok ? json.errorMessage : json.error.message;\n const [serverErrorCode, serverErrorMessage] = errorMessage.split(' : ');\n if (serverErrorCode === ServerError.FEDERATED_USER_ID_ALREADY_LINKED) {\n throw _makeTaggedError(\n auth,\n AuthErrorCode.CREDENTIAL_ALREADY_IN_USE,\n json\n );\n } else if (serverErrorCode === ServerError.EMAIL_EXISTS) {\n throw _makeTaggedError(auth, AuthErrorCode.EMAIL_EXISTS, json);\n } else if (serverErrorCode === ServerError.USER_DISABLED) {\n throw _makeTaggedError(auth, AuthErrorCode.USER_DISABLED, json);\n }\n const authError =\n errorMap[serverErrorCode as ServerError] ||\n (serverErrorCode\n .toLowerCase()\n .replace(/[_\\s]+/g, '-') as unknown as AuthErrorCode);\n if (serverErrorMessage) {\n throw _errorWithCustomMessage(auth, authError, serverErrorMessage);\n } else {\n _fail(auth, authError);\n }\n }\n } catch (e) {\n if (e instanceof FirebaseError) {\n throw e;\n }\n // Changing this to a different error code will log user out when there is a network error\n // because we treat any error other than NETWORK_REQUEST_FAILED as token is invalid.\n // https://github.com/firebase/firebase-js-sdk/blob/4fbc73610d70be4e0852e7de63a39cb7897e8546/packages/auth/src/core/auth/auth_impl.ts#L309-L316\n _fail(auth, AuthErrorCode.NETWORK_REQUEST_FAILED, { 'message': String(e) });\n }\n}\n\nexport async function _performSignInRequest(\n auth: Auth,\n method: HttpMethod,\n path: Endpoint,\n request?: T,\n customErrorMap: Partial> = {}\n): Promise {\n const serverResponse = (await _performApiRequest(\n auth,\n method,\n path,\n request,\n customErrorMap\n )) as V;\n if ('mfaPendingCredential' in serverResponse) {\n _fail(auth, AuthErrorCode.MFA_REQUIRED, {\n _serverResponse: serverResponse\n });\n }\n\n return serverResponse;\n}\n\nexport function _getFinalTarget(\n auth: Auth,\n host: string,\n path: string,\n query: string\n): string {\n const base = `${host}${path}?${query}`;\n\n if (!(auth as AuthInternal).config.emulator) {\n return `${auth.config.apiScheme}://${base}`;\n }\n\n return _emulatorUrl(auth.config as ConfigInternal, base);\n}\n\nexport function _parseEnforcementState(\n enforcementStateStr: string\n): EnforcementState {\n switch (enforcementStateStr) {\n case 'ENFORCE':\n return EnforcementState.ENFORCE;\n case 'AUDIT':\n return EnforcementState.AUDIT;\n case 'OFF':\n return EnforcementState.OFF;\n default:\n return EnforcementState.ENFORCEMENT_STATE_UNSPECIFIED;\n }\n}\n\nclass NetworkTimeout {\n // Node timers and browser timers are fundamentally incompatible, but we\n // don't care about the value here\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timer: any | null = null;\n readonly promise = new Promise((_, reject) => {\n this.timer = setTimeout(() => {\n return reject(\n _createError(this.auth, AuthErrorCode.NETWORK_REQUEST_FAILED)\n );\n }, DEFAULT_API_TIMEOUT_MS.get());\n });\n\n clearNetworkTimeout(): void {\n clearTimeout(this.timer);\n }\n\n constructor(private readonly auth: Auth) {}\n}\n\ninterface PotentialResponse extends IdTokenResponse {\n email?: string;\n phoneNumber?: string;\n}\n\nexport function _makeTaggedError(\n auth: Auth,\n code: AuthErrorCode,\n response: PotentialResponse\n): FirebaseError {\n const errorParams: NamedErrorParams = {\n appName: auth.name\n };\n\n if (response.email) {\n errorParams.email = response.email;\n }\n if (response.phoneNumber) {\n errorParams.phoneNumber = response.phoneNumber;\n }\n\n const error = _createError(auth, code, errorParams);\n\n // We know customData is defined on error because errorParams is defined\n (error.customData! as TaggedWithTokenResponse)._tokenResponse = response;\n return error;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RecaptchaParameters } from '../../model/public_types';\nimport {\n GetRecaptchaConfigResponse,\n RecaptchaEnforcementProviderState\n} from '../../api/authentication/recaptcha';\nimport { EnforcementState, _parseEnforcementState } from '../../api/index';\n\n// reCAPTCHA v2 interface\nexport interface Recaptcha {\n render: (container: HTMLElement, parameters: RecaptchaParameters) => number;\n getResponse: (id: number) => string;\n execute: (id: number) => unknown;\n reset: (id: number) => unknown;\n}\n\nexport function isV2(\n grecaptcha: Recaptcha | GreCAPTCHA | undefined\n): grecaptcha is Recaptcha {\n return (\n grecaptcha !== undefined &&\n (grecaptcha as Recaptcha).getResponse !== undefined\n );\n}\n\n// reCAPTCHA Enterprise & v3 shared interface\nexport interface GreCAPTCHATopLevel extends GreCAPTCHA {\n enterprise: GreCAPTCHA;\n}\n\n// reCAPTCHA Enterprise interface\nexport interface GreCAPTCHA {\n ready: (callback: () => void) => void;\n execute: (siteKey: string, options: { action: string }) => Promise;\n render: (\n container: string | HTMLElement,\n parameters: GreCAPTCHARenderOption\n ) => string;\n}\n\nexport interface GreCAPTCHARenderOption {\n sitekey: string;\n size: 'invisible';\n}\n\nexport function isEnterprise(\n grecaptcha: Recaptcha | GreCAPTCHA | undefined\n): grecaptcha is GreCAPTCHATopLevel {\n return (\n grecaptcha !== undefined &&\n (grecaptcha as GreCAPTCHATopLevel).enterprise !== undefined\n );\n}\n\n// TODO(chuanr): Replace this with the AuthWindow after resolving the dependency issue in Node.js env.\ndeclare global {\n interface Window {\n grecaptcha?: Recaptcha | GreCAPTCHATopLevel;\n }\n}\n\nexport class RecaptchaConfig {\n /**\n * The reCAPTCHA site key.\n */\n siteKey: string = '';\n\n /**\n * The list of providers and their enablement status for reCAPTCHA Enterprise.\n */\n recaptchaEnforcementState: RecaptchaEnforcementProviderState[] = [];\n\n constructor(response: GetRecaptchaConfigResponse) {\n if (response.recaptchaKey === undefined) {\n throw new Error('recaptchaKey undefined');\n }\n // Example response.recaptchaKey: \"projects/proj123/keys/sitekey123\"\n this.siteKey = response.recaptchaKey.split('/')[3];\n this.recaptchaEnforcementState = response.recaptchaEnforcementState;\n }\n\n /**\n * Returns the reCAPTCHA Enterprise enforcement state for the given provider.\n *\n * @param providerStr - The provider whose enforcement state is to be returned.\n * @returns The reCAPTCHA Enterprise enforcement state for the given provider.\n */\n getProviderEnforcementState(providerStr: string): EnforcementState | null {\n if (\n !this.recaptchaEnforcementState ||\n this.recaptchaEnforcementState.length === 0\n ) {\n return null;\n }\n\n for (const recaptchaEnforcementState of this.recaptchaEnforcementState) {\n if (\n recaptchaEnforcementState.provider &&\n recaptchaEnforcementState.provider === providerStr\n ) {\n return _parseEnforcementState(\n recaptchaEnforcementState.enforcementState\n );\n }\n }\n return null;\n }\n\n /**\n * Returns true if the reCAPTCHA Enterprise enforcement state for the provider is set to ENFORCE or AUDIT.\n *\n * @param providerStr - The provider whose enablement state is to be returned.\n * @returns Whether or not reCAPTCHA Enterprise protection is enabled for the given provider.\n */\n isProviderEnabled(providerStr: string): boolean {\n return (\n this.getProviderEnforcementState(providerStr) ===\n EnforcementState.ENFORCE ||\n this.getProviderEnforcementState(providerStr) === EnforcementState.AUDIT\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n RecaptchaClientType,\n RecaptchaVersion,\n _performApiRequest,\n _addTidIfNecessary\n} from '../index';\nimport { Auth } from '../../model/public_types';\n\ninterface GetRecaptchaParamResponse {\n recaptchaSiteKey?: string;\n}\n\nexport async function getRecaptchaParams(auth: Auth): Promise {\n return (\n (\n await _performApiRequest(\n auth,\n HttpMethod.GET,\n Endpoint.GET_RECAPTCHA_PARAM\n )\n ).recaptchaSiteKey || ''\n );\n}\n\n// The following functions are for reCAPTCHA enterprise integration.\ninterface GetRecaptchaConfigRequest {\n tenantId?: string;\n clientType?: RecaptchaClientType;\n version?: RecaptchaVersion;\n}\n\nexport interface RecaptchaEnforcementProviderState {\n provider: string;\n enforcementState: string;\n}\n\nexport interface GetRecaptchaConfigResponse {\n recaptchaKey: string;\n recaptchaEnforcementState: RecaptchaEnforcementProviderState[];\n}\n\nexport async function getRecaptchaConfig(\n auth: Auth,\n request: GetRecaptchaConfigRequest\n): Promise {\n return _performApiRequest<\n GetRecaptchaConfigRequest,\n GetRecaptchaConfigResponse\n >(\n auth,\n HttpMethod.GET,\n Endpoint.GET_RECAPTCHA_CONFIG,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Endpoint, HttpMethod, _performApiRequest } from '../index';\nimport { MfaEnrollment } from './mfa';\nimport { Auth } from '../../model/public_types';\n\nexport interface DeleteAccountRequest {\n idToken: string;\n}\n\nexport async function deleteAccount(\n auth: Auth,\n request: DeleteAccountRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.DELETE_ACCOUNT,\n request\n );\n}\n\nexport interface ProviderUserInfo {\n providerId: string;\n rawId?: string;\n email?: string;\n displayName?: string;\n photoUrl?: string;\n phoneNumber?: string;\n}\n\nexport interface DeleteLinkedAccountsRequest {\n idToken: string;\n deleteProvider: string[];\n}\n\nexport interface DeleteLinkedAccountsResponse {\n providerUserInfo: ProviderUserInfo[];\n}\n\nexport async function deleteLinkedAccounts(\n auth: Auth,\n request: DeleteLinkedAccountsRequest\n): Promise {\n return _performApiRequest<\n DeleteLinkedAccountsRequest,\n DeleteLinkedAccountsResponse\n >(auth, HttpMethod.POST, Endpoint.SET_ACCOUNT_INFO, request);\n}\n\nexport interface APIUserInfo {\n localId?: string;\n displayName?: string;\n photoUrl?: string;\n email?: string;\n emailVerified?: boolean;\n phoneNumber?: string;\n lastLoginAt?: number;\n createdAt?: number;\n tenantId?: string;\n passwordHash?: string;\n providerUserInfo?: ProviderUserInfo[];\n mfaInfo?: MfaEnrollment[];\n}\n\nexport interface GetAccountInfoRequest {\n idToken: string;\n}\n\nexport interface GetAccountInfoResponse {\n users: APIUserInfo[];\n}\n\nexport async function getAccountInfo(\n auth: Auth,\n request: GetAccountInfoRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.GET_ACCOUNT_INFO,\n request\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function utcTimestampToDateString(\n utcTimestamp?: string | number\n): string | undefined {\n if (!utcTimestamp) {\n return undefined;\n }\n try {\n // Convert to date object.\n const date = new Date(Number(utcTimestamp));\n // Test date is valid.\n if (!isNaN(date.getTime())) {\n // Convert to UTC date string.\n return date.toUTCString();\n }\n } catch (e) {\n // Do nothing. undefined will be returned.\n }\n return undefined;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdTokenResult, ParsedToken, User } from '../../model/public_types';\nimport { base64Decode, getModularInstance } from '@firebase/util';\n\nimport { UserInternal } from '../../model/user';\nimport { _assert } from '../util/assert';\nimport { _logError } from '../util/log';\nimport { utcTimestampToDateString } from '../util/time';\nimport { AuthErrorCode } from '../errors';\n\n/**\n * Returns a JSON Web Token (JWT) used to identify the user to a Firebase service.\n *\n * @remarks\n * Returns the current token if it has not expired or if it will not expire in the next five\n * minutes. Otherwise, this will refresh the token and return a new one.\n *\n * @param user - The user.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport function getIdToken(user: User, forceRefresh = false): Promise {\n return getModularInstance(user).getIdToken(forceRefresh);\n}\n\n/**\n * Returns a deserialized JSON Web Token (JWT) used to identify the user to a Firebase service.\n *\n * @remarks\n * Returns the current token if it has not expired or if it will not expire in the next five\n * minutes. Otherwise, this will refresh the token and return a new one.\n *\n * @param user - The user.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport async function getIdTokenResult(\n user: User,\n forceRefresh = false\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const token = await userInternal.getIdToken(forceRefresh);\n const claims = _parseToken(token);\n\n _assert(\n claims && claims.exp && claims.auth_time && claims.iat,\n userInternal.auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const firebase =\n typeof claims.firebase === 'object' ? claims.firebase : undefined;\n\n const signInProvider: string | undefined = firebase?.['sign_in_provider'];\n\n return {\n claims,\n token,\n authTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.auth_time)\n )!,\n issuedAtTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.iat)\n )!,\n expirationTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.exp)\n )!,\n signInProvider: signInProvider || null,\n signInSecondFactor: firebase?.['sign_in_second_factor'] || null\n };\n}\n\nfunction secondsStringToMilliseconds(seconds: string): number {\n return Number(seconds) * 1000;\n}\n\nexport function _parseToken(token: string): ParsedToken | null {\n const [algorithm, payload, signature] = token.split('.');\n if (\n algorithm === undefined ||\n payload === undefined ||\n signature === undefined\n ) {\n _logError('JWT malformed, contained fewer than 3 sections');\n return null;\n }\n\n try {\n const decoded = base64Decode(payload);\n if (!decoded) {\n _logError('Failed to decode base64 JWT payload');\n return null;\n }\n return JSON.parse(decoded);\n } catch (e) {\n _logError(\n 'Caught error parsing JWT payload as JSON',\n (e as Error)?.toString()\n );\n return null;\n }\n}\n\n/**\n * Extract expiresIn TTL from a token by subtracting the expiration from the issuance.\n */\nexport function _tokenExpiresIn(token: string): number {\n const parsedToken = _parseToken(token);\n _assert(parsedToken, AuthErrorCode.INTERNAL_ERROR);\n _assert(typeof parsedToken.exp !== 'undefined', AuthErrorCode.INTERNAL_ERROR);\n _assert(typeof parsedToken.iat !== 'undefined', AuthErrorCode.INTERNAL_ERROR);\n return Number(parsedToken.exp) - Number(parsedToken.iat);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\n\nexport async function _logoutIfInvalidated(\n user: UserInternal,\n promise: Promise,\n bypassAuthState = false\n): Promise {\n if (bypassAuthState) {\n return promise;\n }\n try {\n return await promise;\n } catch (e) {\n if (e instanceof FirebaseError && isUserInvalidated(e)) {\n if (user.auth.currentUser === user) {\n await user.auth.signOut();\n }\n }\n\n throw e;\n }\n}\n\nfunction isUserInvalidated({ code }: FirebaseError): boolean {\n return (\n code === `auth/${AuthErrorCode.USER_DISABLED}` ||\n code === `auth/${AuthErrorCode.TOKEN_EXPIRED}`\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\n\n// Refresh the token five minutes before expiration\nexport const enum Duration {\n OFFSET = 5 * 1000 * 60,\n RETRY_BACKOFF_MIN = 30 * 1000,\n RETRY_BACKOFF_MAX = 16 * 60 * 1000\n}\n\nexport class ProactiveRefresh {\n private isRunning = false;\n\n // Node timers and browser timers return fundamentally different types.\n // We don't actually care what the value is but TS won't accept unknown and\n // we can't cast properly in both environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timerId: any | null = null;\n private errorBackoff = Duration.RETRY_BACKOFF_MIN;\n\n constructor(private readonly user: UserInternal) {}\n\n _start(): void {\n if (this.isRunning) {\n return;\n }\n\n this.isRunning = true;\n this.schedule();\n }\n\n _stop(): void {\n if (!this.isRunning) {\n return;\n }\n\n this.isRunning = false;\n if (this.timerId !== null) {\n clearTimeout(this.timerId);\n }\n }\n\n private getInterval(wasError: boolean): number {\n if (wasError) {\n const interval = this.errorBackoff;\n this.errorBackoff = Math.min(\n this.errorBackoff * 2,\n Duration.RETRY_BACKOFF_MAX\n );\n return interval;\n } else {\n // Reset the error backoff\n this.errorBackoff = Duration.RETRY_BACKOFF_MIN;\n const expTime = this.user.stsTokenManager.expirationTime ?? 0;\n const interval = expTime - Date.now() - Duration.OFFSET;\n\n return Math.max(0, interval);\n }\n }\n\n private schedule(wasError = false): void {\n if (!this.isRunning) {\n // Just in case...\n return;\n }\n\n const interval = this.getInterval(wasError);\n this.timerId = setTimeout(async () => {\n await this.iteration();\n }, interval);\n }\n\n private async iteration(): Promise {\n try {\n await this.user.getIdToken(true);\n } catch (e) {\n // Only retry on network errors\n if (\n (e as FirebaseError)?.code ===\n `auth/${AuthErrorCode.NETWORK_REQUEST_FAILED}`\n ) {\n this.schedule(/* wasError */ true);\n }\n\n return;\n }\n this.schedule();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserMetadata as UserMetadataType } from '../../model/public_types';\n\nimport { utcTimestampToDateString } from '../util/time';\n\nexport class UserMetadata implements UserMetadataType {\n creationTime?: string;\n lastSignInTime?: string;\n\n constructor(\n private createdAt?: string | number,\n private lastLoginAt?: string | number\n ) {\n this._initializeTime();\n }\n\n private _initializeTime(): void {\n this.lastSignInTime = utcTimestampToDateString(this.lastLoginAt);\n this.creationTime = utcTimestampToDateString(this.createdAt);\n }\n\n _copy(metadata: UserMetadata): void {\n this.createdAt = metadata.createdAt;\n this.lastLoginAt = metadata.lastLoginAt;\n this._initializeTime();\n }\n\n toJSON(): object {\n return {\n createdAt: this.createdAt,\n lastLoginAt: this.lastLoginAt\n };\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User, UserInfo } from '../../model/public_types';\n\nimport {\n getAccountInfo,\n ProviderUserInfo\n} from '../../api/account_management/account';\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { UserMetadata } from './user_metadata';\nimport { getModularInstance } from '@firebase/util';\n\nexport async function _reloadWithoutSaving(user: UserInternal): Promise {\n const auth = user.auth;\n const idToken = await user.getIdToken();\n const response = await _logoutIfInvalidated(\n user,\n getAccountInfo(auth, { idToken })\n );\n\n _assert(response?.users.length, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const coreAccount = response.users[0];\n\n user._notifyReloadListener(coreAccount);\n\n const newProviderData = coreAccount.providerUserInfo?.length\n ? extractProviderData(coreAccount.providerUserInfo)\n : [];\n\n const providerData = mergeProviderData(user.providerData, newProviderData);\n\n // Preserves the non-nonymous status of the stored user, even if no more\n // credentials (federated or email/password) are linked to the user. If\n // the user was previously anonymous, then use provider data to update.\n // On the other hand, if it was not anonymous before, it should never be\n // considered anonymous now.\n const oldIsAnonymous = user.isAnonymous;\n const newIsAnonymous =\n !(user.email && coreAccount.passwordHash) && !providerData?.length;\n const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous;\n\n const updates: Partial = {\n uid: coreAccount.localId,\n displayName: coreAccount.displayName || null,\n photoURL: coreAccount.photoUrl || null,\n email: coreAccount.email || null,\n emailVerified: coreAccount.emailVerified || false,\n phoneNumber: coreAccount.phoneNumber || null,\n tenantId: coreAccount.tenantId || null,\n providerData,\n metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt),\n isAnonymous\n };\n\n Object.assign(user, updates);\n}\n\n/**\n * Reloads user account data, if signed in.\n *\n * @param user - The user.\n *\n * @public\n */\nexport async function reload(user: User): Promise {\n const userInternal: UserInternal = getModularInstance(user) as UserInternal;\n await _reloadWithoutSaving(userInternal);\n\n // Even though the current user hasn't changed, update\n // current user will trigger a persistence update w/ the\n // new info.\n await userInternal.auth._persistUserIfCurrent(userInternal);\n userInternal.auth._notifyListenersIfCurrent(userInternal);\n}\n\nfunction mergeProviderData(\n original: UserInfo[],\n newData: UserInfo[]\n): UserInfo[] {\n const deduped = original.filter(\n o => !newData.some(n => n.providerId === o.providerId)\n );\n return [...deduped, ...newData];\n}\n\nexport function extractProviderData(providers: ProviderUserInfo[]): UserInfo[] {\n return providers.map(({ providerId, ...provider }) => {\n return {\n providerId,\n uid: provider.rawId || '',\n displayName: provider.displayName || null,\n email: provider.email || null,\n phoneNumber: provider.phoneNumber || null,\n photoURL: provider.photoUrl || null\n };\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FinalizeMfaResponse } from '../../api/authentication/mfa';\nimport { requestStsToken } from '../../api/authentication/token';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { PersistedBlob } from '../persistence';\nimport { _assert, debugFail } from '../util/assert';\nimport { _tokenExpiresIn } from './id_token_result';\n\n/**\n * The number of milliseconds before the official expiration time of a token\n * to refresh that token, to provide a buffer for RPCs to complete.\n */\nexport const enum Buffer {\n TOKEN_REFRESH = 30_000\n}\n\n/**\n * We need to mark this class as internal explicitly to exclude it in the public typings, because\n * it references AuthInternal which has a circular dependency with UserInternal.\n *\n * @internal\n */\nexport class StsTokenManager {\n refreshToken: string | null = null;\n accessToken: string | null = null;\n expirationTime: number | null = null;\n\n get isExpired(): boolean {\n return (\n !this.expirationTime ||\n Date.now() > this.expirationTime - Buffer.TOKEN_REFRESH\n );\n }\n\n updateFromServerResponse(\n response: IdTokenResponse | FinalizeMfaResponse\n ): void {\n _assert(response.idToken, AuthErrorCode.INTERNAL_ERROR);\n _assert(\n typeof response.idToken !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n _assert(\n typeof response.refreshToken !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n const expiresIn =\n 'expiresIn' in response && typeof response.expiresIn !== 'undefined'\n ? Number(response.expiresIn)\n : _tokenExpiresIn(response.idToken);\n this.updateTokensAndExpiration(\n response.idToken,\n response.refreshToken,\n expiresIn\n );\n }\n\n updateFromIdToken(idToken: string): void {\n _assert(idToken.length !== 0, AuthErrorCode.INTERNAL_ERROR);\n const expiresIn = _tokenExpiresIn(idToken);\n this.updateTokensAndExpiration(idToken, null, expiresIn);\n }\n\n async getToken(\n auth: AuthInternal,\n forceRefresh = false\n ): Promise {\n if (!forceRefresh && this.accessToken && !this.isExpired) {\n return this.accessToken;\n }\n\n _assert(this.refreshToken, auth, AuthErrorCode.TOKEN_EXPIRED);\n\n if (this.refreshToken) {\n await this.refresh(auth, this.refreshToken!);\n return this.accessToken;\n }\n\n return null;\n }\n\n clearRefreshToken(): void {\n this.refreshToken = null;\n }\n\n private async refresh(auth: AuthInternal, oldToken: string): Promise {\n const { accessToken, refreshToken, expiresIn } = await requestStsToken(\n auth,\n oldToken\n );\n this.updateTokensAndExpiration(\n accessToken,\n refreshToken,\n Number(expiresIn)\n );\n }\n\n private updateTokensAndExpiration(\n accessToken: string,\n refreshToken: string | null,\n expiresInSec: number\n ): void {\n this.refreshToken = refreshToken || null;\n this.accessToken = accessToken || null;\n this.expirationTime = Date.now() + expiresInSec * 1000;\n }\n\n static fromJSON(appName: string, object: PersistedBlob): StsTokenManager {\n const { refreshToken, accessToken, expirationTime } = object;\n\n const manager = new StsTokenManager();\n if (refreshToken) {\n _assert(typeof refreshToken === 'string', AuthErrorCode.INTERNAL_ERROR, {\n appName\n });\n manager.refreshToken = refreshToken;\n }\n if (accessToken) {\n _assert(typeof accessToken === 'string', AuthErrorCode.INTERNAL_ERROR, {\n appName\n });\n manager.accessToken = accessToken;\n }\n if (expirationTime) {\n _assert(\n typeof expirationTime === 'number',\n AuthErrorCode.INTERNAL_ERROR,\n {\n appName\n }\n );\n manager.expirationTime = expirationTime;\n }\n return manager;\n }\n\n toJSON(): object {\n return {\n refreshToken: this.refreshToken,\n accessToken: this.accessToken,\n expirationTime: this.expirationTime\n };\n }\n\n _assign(stsTokenManager: StsTokenManager): void {\n this.accessToken = stsTokenManager.accessToken;\n this.refreshToken = stsTokenManager.refreshToken;\n this.expirationTime = stsTokenManager.expirationTime;\n }\n\n _clone(): StsTokenManager {\n return Object.assign(new StsTokenManager(), this.toJSON());\n }\n\n _performRefresh(): never {\n return debugFail('not implemented');\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable camelcase */\n\nimport { querystring } from '@firebase/util';\n\nimport {\n _getFinalTarget,\n _performFetchWithErrorHandling,\n _performApiRequest,\n _addTidIfNecessary,\n HttpMethod,\n HttpHeader,\n Endpoint\n} from '../index';\nimport { FetchProvider } from '../../core/util/fetch_provider';\nimport { Auth } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\n\nexport const enum TokenType {\n REFRESH_TOKEN = 'REFRESH_TOKEN',\n ACCESS_TOKEN = 'ACCESS_TOKEN'\n}\n\n/** The server responses with snake_case; we convert to camelCase */\ninterface RequestStsTokenServerResponse {\n access_token: string;\n expires_in: string;\n refresh_token: string;\n}\n\nexport interface RequestStsTokenResponse {\n accessToken: string;\n expiresIn: string;\n refreshToken: string;\n}\n\nexport interface RevokeTokenRequest {\n providerId: string;\n tokenType: TokenType;\n token: string;\n idToken: string;\n tenantId?: string;\n}\n\nexport interface RevokeTokenResponse {}\n\nexport async function requestStsToken(\n auth: Auth,\n refreshToken: string\n): Promise {\n const response =\n await _performFetchWithErrorHandling(\n auth,\n {},\n async () => {\n const body = querystring({\n 'grant_type': 'refresh_token',\n 'refresh_token': refreshToken\n }).slice(1);\n const { tokenApiHost, apiKey } = auth.config;\n const url = _getFinalTarget(\n auth,\n tokenApiHost,\n Endpoint.TOKEN,\n `key=${apiKey}`\n );\n\n const headers = await (auth as AuthInternal)._getAdditionalHeaders();\n headers[HttpHeader.CONTENT_TYPE] = 'application/x-www-form-urlencoded';\n\n return FetchProvider.fetch()(url, {\n method: HttpMethod.POST,\n headers,\n body\n });\n }\n );\n\n // The response comes back in snake_case. Convert to camel:\n return {\n accessToken: response.access_token,\n expiresIn: response.expires_in,\n refreshToken: response.refresh_token\n };\n}\n\nexport async function revokeToken(\n auth: Auth,\n request: RevokeTokenRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.REVOKE_TOKEN,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdTokenResult, UserInfo } from '../../model/public_types';\nimport { NextFn } from '@firebase/util';\nimport {\n APIUserInfo,\n GetAccountInfoResponse,\n deleteAccount\n} from '../../api/account_management/account';\nimport { FinalizeMfaResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport {\n MutableUserInfo,\n UserInternal,\n UserParameters\n} from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { PersistedBlob } from '../persistence';\nimport {\n _assert,\n _serverAppCurrentUserOperationNotSupportedError\n} from '../util/assert';\nimport { getIdTokenResult } from './id_token_result';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { ProactiveRefresh } from './proactive_refresh';\nimport { extractProviderData, _reloadWithoutSaving, reload } from './reload';\nimport { StsTokenManager } from './token_manager';\nimport { UserMetadata } from './user_metadata';\nimport { ProviderId } from '../../model/enums';\nimport { _isFirebaseServerApp } from '@firebase/app';\n\nfunction assertStringOrUndefined(\n assertion: unknown,\n appName: string\n): asserts assertion is string | undefined {\n _assert(\n typeof assertion === 'string' || typeof assertion === 'undefined',\n AuthErrorCode.INTERNAL_ERROR,\n { appName }\n );\n}\n\nexport class UserImpl implements UserInternal {\n // For the user object, provider is always Firebase.\n readonly providerId = ProviderId.FIREBASE;\n stsTokenManager: StsTokenManager;\n // Last known accessToken so we know when it changes\n private accessToken: string | null;\n\n uid: string;\n auth: AuthInternal;\n emailVerified: boolean;\n isAnonymous: boolean;\n tenantId: string | null;\n readonly metadata: UserMetadata;\n providerData: MutableUserInfo[];\n\n // Optional fields from UserInfo\n displayName: string | null;\n email: string | null;\n phoneNumber: string | null;\n photoURL: string | null;\n\n _redirectEventId?: string;\n private readonly proactiveRefresh = new ProactiveRefresh(this);\n\n constructor({ uid, auth, stsTokenManager, ...opt }: UserParameters) {\n this.uid = uid;\n this.auth = auth;\n this.stsTokenManager = stsTokenManager;\n this.accessToken = stsTokenManager.accessToken;\n this.displayName = opt.displayName || null;\n this.email = opt.email || null;\n this.emailVerified = opt.emailVerified || false;\n this.phoneNumber = opt.phoneNumber || null;\n this.photoURL = opt.photoURL || null;\n this.isAnonymous = opt.isAnonymous || false;\n this.tenantId = opt.tenantId || null;\n this.providerData = opt.providerData ? [...opt.providerData] : [];\n this.metadata = new UserMetadata(\n opt.createdAt || undefined,\n opt.lastLoginAt || undefined\n );\n }\n\n async getIdToken(forceRefresh?: boolean): Promise {\n const accessToken = await _logoutIfInvalidated(\n this,\n this.stsTokenManager.getToken(this.auth, forceRefresh)\n );\n _assert(accessToken, this.auth, AuthErrorCode.INTERNAL_ERROR);\n\n if (this.accessToken !== accessToken) {\n this.accessToken = accessToken;\n await this.auth._persistUserIfCurrent(this);\n this.auth._notifyListenersIfCurrent(this);\n }\n\n return accessToken;\n }\n\n getIdTokenResult(forceRefresh?: boolean): Promise {\n return getIdTokenResult(this, forceRefresh);\n }\n\n reload(): Promise {\n return reload(this);\n }\n\n private reloadUserInfo: APIUserInfo | null = null;\n private reloadListener: NextFn | null = null;\n\n _assign(user: UserInternal): void {\n if (this === user) {\n return;\n }\n _assert(this.uid === user.uid, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.displayName = user.displayName;\n this.photoURL = user.photoURL;\n this.email = user.email;\n this.emailVerified = user.emailVerified;\n this.phoneNumber = user.phoneNumber;\n this.isAnonymous = user.isAnonymous;\n this.tenantId = user.tenantId;\n this.providerData = user.providerData.map(userInfo => ({ ...userInfo }));\n this.metadata._copy(user.metadata);\n this.stsTokenManager._assign(user.stsTokenManager);\n }\n\n _clone(auth: AuthInternal): UserInternal {\n const newUser = new UserImpl({\n ...this,\n auth,\n stsTokenManager: this.stsTokenManager._clone()\n });\n newUser.metadata._copy(this.metadata);\n return newUser;\n }\n\n _onReload(callback: NextFn): void {\n // There should only ever be one listener, and that is a single instance of MultiFactorUser\n _assert(!this.reloadListener, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.reloadListener = callback;\n if (this.reloadUserInfo) {\n this._notifyReloadListener(this.reloadUserInfo);\n this.reloadUserInfo = null;\n }\n }\n\n _notifyReloadListener(userInfo: APIUserInfo): void {\n if (this.reloadListener) {\n this.reloadListener(userInfo);\n } else {\n // If no listener is subscribed yet, save the result so it's available when they do subscribe\n this.reloadUserInfo = userInfo;\n }\n }\n\n _startProactiveRefresh(): void {\n this.proactiveRefresh._start();\n }\n\n _stopProactiveRefresh(): void {\n this.proactiveRefresh._stop();\n }\n\n async _updateTokensIfNecessary(\n response: IdTokenResponse | FinalizeMfaResponse,\n reload = false\n ): Promise {\n let tokensRefreshed = false;\n if (\n response.idToken &&\n response.idToken !== this.stsTokenManager.accessToken\n ) {\n this.stsTokenManager.updateFromServerResponse(response);\n tokensRefreshed = true;\n }\n\n if (reload) {\n await _reloadWithoutSaving(this);\n }\n\n await this.auth._persistUserIfCurrent(this);\n if (tokensRefreshed) {\n this.auth._notifyListenersIfCurrent(this);\n }\n }\n\n async delete(): Promise {\n if (_isFirebaseServerApp(this.auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(this.auth)\n );\n }\n const idToken = await this.getIdToken();\n await _logoutIfInvalidated(this, deleteAccount(this.auth, { idToken }));\n this.stsTokenManager.clearRefreshToken();\n\n // TODO: Determine if cancellable-promises are necessary to use in this class so that delete()\n // cancels pending actions...\n\n return this.auth.signOut();\n }\n\n toJSON(): PersistedBlob {\n return {\n uid: this.uid,\n email: this.email || undefined,\n emailVerified: this.emailVerified,\n displayName: this.displayName || undefined,\n isAnonymous: this.isAnonymous,\n photoURL: this.photoURL || undefined,\n phoneNumber: this.phoneNumber || undefined,\n tenantId: this.tenantId || undefined,\n providerData: this.providerData.map(userInfo => ({ ...userInfo })),\n stsTokenManager: this.stsTokenManager.toJSON(),\n // Redirect event ID must be maintained in case there is a pending\n // redirect event.\n _redirectEventId: this._redirectEventId,\n ...this.metadata.toJSON(),\n\n // Required for compatibility with the legacy SDK (go/firebase-auth-sdk-persistence-parsing):\n apiKey: this.auth.config.apiKey,\n appName: this.auth.name\n // Missing authDomain will be tolerated by the legacy SDK.\n // stsTokenManager.apiKey isn't actually required (despite the legacy SDK persisting it).\n };\n }\n\n get refreshToken(): string {\n return this.stsTokenManager.refreshToken || '';\n }\n\n static _fromJSON(auth: AuthInternal, object: PersistedBlob): UserInternal {\n const displayName = object.displayName ?? undefined;\n const email = object.email ?? undefined;\n const phoneNumber = object.phoneNumber ?? undefined;\n const photoURL = object.photoURL ?? undefined;\n const tenantId = object.tenantId ?? undefined;\n const _redirectEventId = object._redirectEventId ?? undefined;\n const createdAt = object.createdAt ?? undefined;\n const lastLoginAt = object.lastLoginAt ?? undefined;\n const {\n uid,\n emailVerified,\n isAnonymous,\n providerData,\n stsTokenManager: plainObjectTokenManager\n } = object;\n\n _assert(uid && plainObjectTokenManager, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const stsTokenManager = StsTokenManager.fromJSON(\n this.name,\n plainObjectTokenManager as PersistedBlob\n );\n\n _assert(typeof uid === 'string', auth, AuthErrorCode.INTERNAL_ERROR);\n assertStringOrUndefined(displayName, auth.name);\n assertStringOrUndefined(email, auth.name);\n _assert(\n typeof emailVerified === 'boolean',\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n _assert(\n typeof isAnonymous === 'boolean',\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n assertStringOrUndefined(phoneNumber, auth.name);\n assertStringOrUndefined(photoURL, auth.name);\n assertStringOrUndefined(tenantId, auth.name);\n assertStringOrUndefined(_redirectEventId, auth.name);\n assertStringOrUndefined(createdAt, auth.name);\n assertStringOrUndefined(lastLoginAt, auth.name);\n const user = new UserImpl({\n uid,\n auth,\n email,\n emailVerified,\n displayName,\n isAnonymous,\n photoURL,\n phoneNumber,\n tenantId,\n stsTokenManager,\n createdAt,\n lastLoginAt\n });\n\n if (providerData && Array.isArray(providerData)) {\n user.providerData = providerData.map(userInfo => ({ ...userInfo }));\n }\n\n if (_redirectEventId) {\n user._redirectEventId = _redirectEventId;\n }\n\n return user;\n }\n\n /**\n * Initialize a User from an idToken server response\n * @param auth\n * @param idTokenResponse\n */\n static async _fromIdTokenResponse(\n auth: AuthInternal,\n idTokenResponse: IdTokenResponse,\n isAnonymous: boolean = false\n ): Promise {\n const stsTokenManager = new StsTokenManager();\n stsTokenManager.updateFromServerResponse(idTokenResponse);\n\n // Initialize the Firebase Auth user.\n const user = new UserImpl({\n uid: idTokenResponse.localId,\n auth,\n stsTokenManager,\n isAnonymous\n });\n\n // Updates the user info and data and resolves with a user instance.\n await _reloadWithoutSaving(user);\n return user;\n }\n\n /**\n * Initialize a User from an idToken server response\n * @param auth\n * @param idTokenResponse\n */\n static async _fromGetAccountInfoResponse(\n auth: AuthInternal,\n response: GetAccountInfoResponse,\n idToken: string\n ): Promise {\n const coreAccount = response.users[0];\n _assert(coreAccount.localId !== undefined, AuthErrorCode.INTERNAL_ERROR);\n\n const providerData: UserInfo[] =\n coreAccount.providerUserInfo !== undefined\n ? extractProviderData(coreAccount.providerUserInfo)\n : [];\n\n const isAnonymous =\n !(coreAccount.email && coreAccount.passwordHash) && !providerData?.length;\n\n const stsTokenManager = new StsTokenManager();\n stsTokenManager.updateFromIdToken(idToken);\n\n // Initialize the Firebase Auth user.\n const user = new UserImpl({\n uid: coreAccount.localId,\n auth,\n stsTokenManager,\n isAnonymous\n });\n\n // update the user with data from the GetAccountInfo response.\n const updates: Partial = {\n uid: coreAccount.localId,\n displayName: coreAccount.displayName || null,\n photoURL: coreAccount.photoUrl || null,\n email: coreAccount.email || null,\n emailVerified: coreAccount.emailVerified || false,\n phoneNumber: coreAccount.phoneNumber || null,\n tenantId: coreAccount.tenantId || null,\n providerData,\n metadata: new UserMetadata(\n coreAccount.createdAt,\n coreAccount.lastLoginAt\n ),\n isAnonymous:\n !(coreAccount.email && coreAccount.passwordHash) &&\n !providerData?.length\n };\n\n Object.assign(user, updates);\n return user;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { debugAssert } from './assert';\n\n/**\n * Our API has a lot of one-off constants that are used to do things.\n * Unfortunately we can't export these as classes instantiated directly since\n * the constructor may side effect and therefore can't be proven to be safely\n * culled. Instead, we export these classes themselves as a lowerCamelCase\n * constant, and instantiate them under the hood.\n */\nexport interface SingletonInstantiator {\n new (): T;\n}\n\nconst instanceCache: Map = new Map();\n\nexport function _getInstance(cls: unknown): T {\n debugAssert(cls instanceof Function, 'Expected a class definition');\n let instance = instanceCache.get(cls) as T | undefined;\n\n if (instance) {\n debugAssert(\n instance instanceof cls,\n 'Instance stored in cache mismatched with class'\n );\n return instance;\n }\n\n instance = new (cls as SingletonInstantiator)();\n instanceCache.set(cls, instance);\n return instance;\n}\n\nexport function _clearInstanceMap(): void {\n instanceCache.clear();\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport {\n PersistenceInternal,\n PersistenceType,\n PersistenceValue,\n StorageEventListener\n} from '../persistence';\n\nexport class InMemoryPersistence implements PersistenceInternal {\n static type: 'NONE' = 'NONE';\n readonly type = PersistenceType.NONE;\n storage: Record = {};\n\n async _isAvailable(): Promise {\n return true;\n }\n\n async _set(key: string, value: PersistenceValue): Promise {\n this.storage[key] = value;\n }\n\n async _get(key: string): Promise {\n const value = this.storage[key];\n return value === undefined ? null : (value as T);\n }\n\n async _remove(key: string): Promise {\n delete this.storage[key];\n }\n\n _addListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for in-memory storage since it cannot be shared across windows/workers\n return;\n }\n\n _removeListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for in-memory storage since it cannot be shared across windows/workers\n return;\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type 'NONE'.\n *\n * @public\n */\nexport const inMemoryPersistence: Persistence = InMemoryPersistence;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiKey, AppName, AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { PersistedBlob, PersistenceInternal } from '../persistence';\nimport { UserImpl } from '../user/user_impl';\nimport { _getInstance } from '../util/instantiator';\nimport { inMemoryPersistence } from './in_memory';\n\nexport const enum KeyName {\n AUTH_USER = 'authUser',\n AUTH_EVENT = 'authEvent',\n REDIRECT_USER = 'redirectUser',\n PERSISTENCE_USER = 'persistence'\n}\nexport const enum Namespace {\n PERSISTENCE = 'firebase'\n}\n\nexport function _persistenceKeyName(\n key: string,\n apiKey: ApiKey,\n appName: AppName\n): string {\n return `${Namespace.PERSISTENCE}:${key}:${apiKey}:${appName}`;\n}\n\nexport class PersistenceUserManager {\n private readonly fullUserKey: string;\n private readonly fullPersistenceKey: string;\n private readonly boundEventHandler: () => void;\n\n private constructor(\n public persistence: PersistenceInternal,\n private readonly auth: AuthInternal,\n private readonly userKey: string\n ) {\n const { config, name } = this.auth;\n this.fullUserKey = _persistenceKeyName(this.userKey, config.apiKey, name);\n this.fullPersistenceKey = _persistenceKeyName(\n KeyName.PERSISTENCE_USER,\n config.apiKey,\n name\n );\n this.boundEventHandler = auth._onStorageEvent.bind(auth);\n this.persistence._addListener(this.fullUserKey, this.boundEventHandler);\n }\n\n setCurrentUser(user: UserInternal): Promise {\n return this.persistence._set(this.fullUserKey, user.toJSON());\n }\n\n async getCurrentUser(): Promise {\n const blob = await this.persistence._get(this.fullUserKey);\n return blob ? UserImpl._fromJSON(this.auth, blob) : null;\n }\n\n removeCurrentUser(): Promise {\n return this.persistence._remove(this.fullUserKey);\n }\n\n savePersistenceForRedirect(): Promise {\n return this.persistence._set(\n this.fullPersistenceKey,\n this.persistence.type\n );\n }\n\n async setPersistence(newPersistence: PersistenceInternal): Promise {\n if (this.persistence === newPersistence) {\n return;\n }\n\n const currentUser = await this.getCurrentUser();\n await this.removeCurrentUser();\n\n this.persistence = newPersistence;\n\n if (currentUser) {\n return this.setCurrentUser(currentUser);\n }\n }\n\n delete(): void {\n this.persistence._removeListener(this.fullUserKey, this.boundEventHandler);\n }\n\n static async create(\n auth: AuthInternal,\n persistenceHierarchy: PersistenceInternal[],\n userKey = KeyName.AUTH_USER\n ): Promise {\n if (!persistenceHierarchy.length) {\n return new PersistenceUserManager(\n _getInstance(inMemoryPersistence),\n auth,\n userKey\n );\n }\n\n // Eliminate any persistences that are not available\n const availablePersistences = (\n await Promise.all(\n persistenceHierarchy.map(async persistence => {\n if (await persistence._isAvailable()) {\n return persistence;\n }\n return undefined;\n })\n )\n ).filter(persistence => persistence) as PersistenceInternal[];\n\n // Fall back to the first persistence listed, or in memory if none available\n let selectedPersistence =\n availablePersistences[0] ||\n _getInstance(inMemoryPersistence);\n\n const key = _persistenceKeyName(userKey, auth.config.apiKey, auth.name);\n\n // Pull out the existing user, setting the chosen persistence to that\n // persistence if the user exists.\n let userToMigrate: UserInternal | null = null;\n // Note, here we check for a user in _all_ persistences, not just the\n // ones deemed available. If we can migrate a user out of a broken\n // persistence, we will (but only if that persistence supports migration).\n for (const persistence of persistenceHierarchy) {\n try {\n const blob = await persistence._get(key);\n if (blob) {\n const user = UserImpl._fromJSON(auth, blob); // throws for unparsable blob (wrong format)\n if (persistence !== selectedPersistence) {\n userToMigrate = user;\n }\n selectedPersistence = persistence;\n break;\n }\n } catch {}\n }\n\n // If we find the user in a persistence that does support migration, use\n // that migration path (of only persistences that support migration)\n const migrationHierarchy = availablePersistences.filter(\n p => p._shouldAllowMigration\n );\n\n // If the persistence does _not_ allow migration, just finish off here\n if (\n !selectedPersistence._shouldAllowMigration ||\n !migrationHierarchy.length\n ) {\n return new PersistenceUserManager(selectedPersistence, auth, userKey);\n }\n\n selectedPersistence = migrationHierarchy[0];\n if (userToMigrate) {\n // This normally shouldn't throw since chosenPersistence.isAvailable() is true, but if it does\n // we'll just let it bubble to surface the error.\n await selectedPersistence._set(key, userToMigrate.toJSON());\n }\n\n // Attempt to clear the key in other persistences but ignore errors. This helps prevent issues\n // such as users getting stuck with a previous account after signing out and refreshing the tab.\n await Promise.all(\n persistenceHierarchy.map(async persistence => {\n if (persistence !== selectedPersistence) {\n try {\n await persistence._remove(key);\n } catch {}\n }\n })\n );\n return new PersistenceUserManager(selectedPersistence, auth, userKey);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isIE, getUA } from '@firebase/util';\n\ninterface NavigatorStandalone extends Navigator {\n standalone?: unknown;\n}\n\ninterface Document {\n documentMode?: number;\n}\n\n/**\n * Enums for Browser name.\n */\nexport const enum BrowserName {\n ANDROID = 'Android',\n BLACKBERRY = 'Blackberry',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n IE = 'IE',\n IEMOBILE = 'IEMobile',\n OPERA = 'Opera',\n OTHER = 'Other',\n CHROME = 'Chrome',\n SAFARI = 'Safari',\n SILK = 'Silk',\n WEBOS = 'Webos'\n}\n\n/**\n * Determine the browser for the purposes of reporting usage to the API\n */\nexport function _getBrowserName(userAgent: string): BrowserName | string {\n const ua = userAgent.toLowerCase();\n if (ua.includes('opera/') || ua.includes('opr/') || ua.includes('opios/')) {\n return BrowserName.OPERA;\n } else if (_isIEMobile(ua)) {\n // Windows phone IEMobile browser.\n return BrowserName.IEMOBILE;\n } else if (ua.includes('msie') || ua.includes('trident/')) {\n return BrowserName.IE;\n } else if (ua.includes('edge/')) {\n return BrowserName.EDGE;\n } else if (_isFirefox(ua)) {\n return BrowserName.FIREFOX;\n } else if (ua.includes('silk/')) {\n return BrowserName.SILK;\n } else if (_isBlackBerry(ua)) {\n // Blackberry browser.\n return BrowserName.BLACKBERRY;\n } else if (_isWebOS(ua)) {\n // WebOS default browser.\n return BrowserName.WEBOS;\n } else if (_isSafari(ua)) {\n return BrowserName.SAFARI;\n } else if (\n (ua.includes('chrome/') || _isChromeIOS(ua)) &&\n !ua.includes('edge/')\n ) {\n return BrowserName.CHROME;\n } else if (_isAndroid(ua)) {\n // Android stock browser.\n return BrowserName.ANDROID;\n } else {\n // Most modern browsers have name/version at end of user agent string.\n const re = /([a-zA-Z\\d\\.]+)\\/[a-zA-Z\\d\\.]*$/;\n const matches = userAgent.match(re);\n if (matches?.length === 2) {\n return matches[1];\n }\n }\n return BrowserName.OTHER;\n}\n\nexport function _isFirefox(ua = getUA()): boolean {\n return /firefox\\//i.test(ua);\n}\n\nexport function _isSafari(userAgent = getUA()): boolean {\n const ua = userAgent.toLowerCase();\n return (\n ua.includes('safari/') &&\n !ua.includes('chrome/') &&\n !ua.includes('crios/') &&\n !ua.includes('android')\n );\n}\n\nexport function _isChromeIOS(ua = getUA()): boolean {\n return /crios\\//i.test(ua);\n}\n\nexport function _isIEMobile(ua = getUA()): boolean {\n return /iemobile/i.test(ua);\n}\n\nexport function _isAndroid(ua = getUA()): boolean {\n return /android/i.test(ua);\n}\n\nexport function _isBlackBerry(ua = getUA()): boolean {\n return /blackberry/i.test(ua);\n}\n\nexport function _isWebOS(ua = getUA()): boolean {\n return /webos/i.test(ua);\n}\n\nexport function _isIOS(ua = getUA()): boolean {\n return (\n /iphone|ipad|ipod/i.test(ua) ||\n (/macintosh/i.test(ua) && /mobile/i.test(ua))\n );\n}\n\nexport function _isIOS7Or8(ua = getUA()): boolean {\n return (\n /(iPad|iPhone|iPod).*OS 7_\\d/i.test(ua) ||\n /(iPad|iPhone|iPod).*OS 8_\\d/i.test(ua)\n );\n}\n\nexport function _isIOSStandalone(ua = getUA()): boolean {\n return _isIOS(ua) && !!(window.navigator as NavigatorStandalone)?.standalone;\n}\n\nexport function _isIE10(): boolean {\n return isIE() && (document as Document).documentMode === 10;\n}\n\nexport function _isMobileBrowser(ua: string = getUA()): boolean {\n // TODO: implement getBrowserName equivalent for OS.\n return (\n _isIOS(ua) ||\n _isAndroid(ua) ||\n _isWebOS(ua) ||\n _isBlackBerry(ua) ||\n /windows phone/i.test(ua) ||\n _isIEMobile(ua)\n );\n}\n\nexport function _isIframe(): boolean {\n try {\n // Check that the current window is not the top window.\n // If so, return true.\n return !!(window && window !== window.top);\n } catch (e) {\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { _getBrowserName } from './browser';\nimport { getUA } from '@firebase/util';\n\nexport const enum ClientImplementation {\n CORE = 'JsCore'\n}\n\n/**\n * @internal\n */\nexport const enum ClientPlatform {\n BROWSER = 'Browser',\n NODE = 'Node',\n REACT_NATIVE = 'ReactNative',\n CORDOVA = 'Cordova',\n WORKER = 'Worker',\n WEB_EXTENSION = 'WebExtension'\n}\n\n/*\n * Determine the SDK version string\n */\nexport function _getClientVersion(\n clientPlatform: ClientPlatform,\n frameworks: readonly string[] = []\n): string {\n let reportedPlatform: string;\n switch (clientPlatform) {\n case ClientPlatform.BROWSER:\n // In a browser environment, report the browser name.\n reportedPlatform = _getBrowserName(getUA());\n break;\n case ClientPlatform.WORKER:\n // Technically a worker runs from a browser but we need to differentiate a\n // worker from a browser.\n // For example: Chrome-Worker/JsCore/4.9.1/FirebaseCore-web.\n reportedPlatform = `${_getBrowserName(getUA())}-${clientPlatform}`;\n break;\n default:\n reportedPlatform = clientPlatform;\n }\n const reportedFrameworks = frameworks.length\n ? frameworks.join(',')\n : 'FirebaseCore-web'; /* default value if no other framework is used */\n return `${reportedPlatform}/${ClientImplementation.CORE}/${SDK_VERSION}/${reportedFrameworks}`;\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthInternal } from '../../model/auth';\nimport { Unsubscribe, User } from '../../model/public_types';\nimport { AuthErrorCode } from '../errors';\n\ninterface MiddlewareEntry {\n (user: User | null): Promise;\n onAbort?: () => void;\n}\n\nexport class AuthMiddlewareQueue {\n private readonly queue: MiddlewareEntry[] = [];\n\n constructor(private readonly auth: AuthInternal) {}\n\n pushCallback(\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n ): Unsubscribe {\n // The callback could be sync or async. Wrap it into a\n // function that is always async.\n const wrappedCallback: MiddlewareEntry = (\n user: User | null\n ): Promise =>\n new Promise((resolve, reject) => {\n try {\n const result = callback(user);\n // Either resolve with existing promise or wrap a non-promise\n // return value into a promise.\n resolve(result);\n } catch (e) {\n // Sync callback throws.\n reject(e);\n }\n });\n // Attach the onAbort if present\n wrappedCallback.onAbort = onAbort;\n this.queue.push(wrappedCallback);\n\n const index = this.queue.length - 1;\n return () => {\n // Unsubscribe. Replace with no-op. Do not remove from array, or it will disturb\n // indexing of other elements.\n this.queue[index] = () => Promise.resolve();\n };\n }\n\n async runMiddleware(nextUser: User | null): Promise {\n if (this.auth.currentUser === nextUser) {\n return;\n }\n\n // While running the middleware, build a temporary stack of onAbort\n // callbacks to call if one middleware callback rejects.\n\n const onAbortStack: Array<() => void> = [];\n try {\n for (const beforeStateCallback of this.queue) {\n await beforeStateCallback(nextUser);\n\n // Only push the onAbort if the callback succeeds\n if (beforeStateCallback.onAbort) {\n onAbortStack.push(beforeStateCallback.onAbort);\n }\n }\n } catch (e) {\n // Run all onAbort, with separate try/catch to ignore any errors and\n // continue\n onAbortStack.reverse();\n for (const onAbort of onAbortStack) {\n try {\n onAbort();\n } catch (_) {\n /* swallow error */\n }\n }\n\n throw this.auth._errorFactory.create(AuthErrorCode.LOGIN_BLOCKED, {\n originalMessage: (e as Error)?.message\n });\n }\n }\n}\n","/**\n * @license\n * Copyright 2023 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { GetPasswordPolicyResponse } from '../../api/password_policy/get_password_policy';\nimport {\n PasswordPolicyCustomStrengthOptions,\n PasswordPolicyInternal,\n PasswordValidationStatusInternal\n} from '../../model/password_policy';\nimport { PasswordValidationStatus } from '../../model/public_types';\n\n// Minimum min password length enforced by the backend, even if no minimum length is set.\nconst MINIMUM_MIN_PASSWORD_LENGTH = 6;\n\n/**\n * Stores password policy requirements and provides password validation against the policy.\n *\n * @internal\n */\nexport class PasswordPolicyImpl implements PasswordPolicyInternal {\n readonly customStrengthOptions: PasswordPolicyCustomStrengthOptions;\n readonly allowedNonAlphanumericCharacters: string;\n readonly enforcementState: string;\n readonly forceUpgradeOnSignin: boolean;\n readonly schemaVersion: number;\n\n constructor(response: GetPasswordPolicyResponse) {\n // Only include custom strength options defined in the response.\n const responseOptions = response.customStrengthOptions;\n this.customStrengthOptions = {};\n // TODO: Remove once the backend is updated to include the minimum min password length instead of undefined when there is no minimum length set.\n this.customStrengthOptions.minPasswordLength =\n responseOptions.minPasswordLength ?? MINIMUM_MIN_PASSWORD_LENGTH;\n if (responseOptions.maxPasswordLength) {\n this.customStrengthOptions.maxPasswordLength =\n responseOptions.maxPasswordLength;\n }\n if (responseOptions.containsLowercaseCharacter !== undefined) {\n this.customStrengthOptions.containsLowercaseLetter =\n responseOptions.containsLowercaseCharacter;\n }\n if (responseOptions.containsUppercaseCharacter !== undefined) {\n this.customStrengthOptions.containsUppercaseLetter =\n responseOptions.containsUppercaseCharacter;\n }\n if (responseOptions.containsNumericCharacter !== undefined) {\n this.customStrengthOptions.containsNumericCharacter =\n responseOptions.containsNumericCharacter;\n }\n if (responseOptions.containsNonAlphanumericCharacter !== undefined) {\n this.customStrengthOptions.containsNonAlphanumericCharacter =\n responseOptions.containsNonAlphanumericCharacter;\n }\n\n this.enforcementState = response.enforcementState;\n if (this.enforcementState === 'ENFORCEMENT_STATE_UNSPECIFIED') {\n this.enforcementState = 'OFF';\n }\n\n // Use an empty string if no non-alphanumeric characters are specified in the response.\n this.allowedNonAlphanumericCharacters =\n response.allowedNonAlphanumericCharacters?.join('') ?? '';\n\n this.forceUpgradeOnSignin = response.forceUpgradeOnSignin ?? false;\n this.schemaVersion = response.schemaVersion;\n }\n\n validatePassword(password: string): PasswordValidationStatus {\n const status: PasswordValidationStatusInternal = {\n isValid: true,\n passwordPolicy: this\n };\n\n // Check the password length and character options.\n this.validatePasswordLengthOptions(password, status);\n this.validatePasswordCharacterOptions(password, status);\n\n // Combine the status into single isValid property.\n status.isValid &&= status.meetsMinPasswordLength ?? true;\n status.isValid &&= status.meetsMaxPasswordLength ?? true;\n status.isValid &&= status.containsLowercaseLetter ?? true;\n status.isValid &&= status.containsUppercaseLetter ?? true;\n status.isValid &&= status.containsNumericCharacter ?? true;\n status.isValid &&= status.containsNonAlphanumericCharacter ?? true;\n\n return status;\n }\n\n /**\n * Validates that the password meets the length options for the policy.\n *\n * @param password Password to validate.\n * @param status Validation status.\n */\n private validatePasswordLengthOptions(\n password: string,\n status: PasswordValidationStatusInternal\n ): void {\n const minPasswordLength = this.customStrengthOptions.minPasswordLength;\n const maxPasswordLength = this.customStrengthOptions.maxPasswordLength;\n if (minPasswordLength) {\n status.meetsMinPasswordLength = password.length >= minPasswordLength;\n }\n if (maxPasswordLength) {\n status.meetsMaxPasswordLength = password.length <= maxPasswordLength;\n }\n }\n\n /**\n * Validates that the password meets the character options for the policy.\n *\n * @param password Password to validate.\n * @param status Validation status.\n */\n private validatePasswordCharacterOptions(\n password: string,\n status: PasswordValidationStatusInternal\n ): void {\n // Assign statuses for requirements even if the password is an empty string.\n this.updatePasswordCharacterOptionsStatuses(\n status,\n /* containsLowercaseCharacter= */ false,\n /* containsUppercaseCharacter= */ false,\n /* containsNumericCharacter= */ false,\n /* containsNonAlphanumericCharacter= */ false\n );\n\n let passwordChar;\n for (let i = 0; i < password.length; i++) {\n passwordChar = password.charAt(i);\n this.updatePasswordCharacterOptionsStatuses(\n status,\n /* containsLowercaseCharacter= */ passwordChar >= 'a' &&\n passwordChar <= 'z',\n /* containsUppercaseCharacter= */ passwordChar >= 'A' &&\n passwordChar <= 'Z',\n /* containsNumericCharacter= */ passwordChar >= '0' &&\n passwordChar <= '9',\n /* containsNonAlphanumericCharacter= */ this.allowedNonAlphanumericCharacters.includes(\n passwordChar\n )\n );\n }\n }\n\n /**\n * Updates the running validation status with the statuses for the character options.\n * Expected to be called each time a character is processed to update each option status\n * based on the current character.\n *\n * @param status Validation status.\n * @param containsLowercaseCharacter Whether the character is a lowercase letter.\n * @param containsUppercaseCharacter Whether the character is an uppercase letter.\n * @param containsNumericCharacter Whether the character is a numeric character.\n * @param containsNonAlphanumericCharacter Whether the character is a non-alphanumeric character.\n */\n private updatePasswordCharacterOptionsStatuses(\n status: PasswordValidationStatusInternal,\n containsLowercaseCharacter: boolean,\n containsUppercaseCharacter: boolean,\n containsNumericCharacter: boolean,\n containsNonAlphanumericCharacter: boolean\n ): void {\n if (this.customStrengthOptions.containsLowercaseLetter) {\n status.containsLowercaseLetter ||= containsLowercaseCharacter;\n }\n if (this.customStrengthOptions.containsUppercaseLetter) {\n status.containsUppercaseLetter ||= containsUppercaseCharacter;\n }\n if (this.customStrengthOptions.containsNumericCharacter) {\n status.containsNumericCharacter ||= containsNumericCharacter;\n }\n if (this.customStrengthOptions.containsNonAlphanumericCharacter) {\n status.containsNonAlphanumericCharacter ||=\n containsNonAlphanumericCharacter;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _isFirebaseServerApp,\n _FirebaseService,\n FirebaseApp\n} from '@firebase/app';\nimport { Provider } from '@firebase/component';\nimport { AppCheckInternalComponentName } from '@firebase/app-check-interop-types';\nimport {\n Auth,\n AuthErrorMap,\n AuthSettings,\n EmulatorConfig,\n NextOrObserver,\n Persistence,\n PopupRedirectResolver,\n User,\n UserCredential,\n CompleteFn,\n ErrorFn,\n NextFn,\n Unsubscribe,\n PasswordValidationStatus\n} from '../../model/public_types';\nimport {\n createSubscribe,\n ErrorFactory,\n FirebaseError,\n getModularInstance,\n Observer,\n Subscribe\n} from '@firebase/util';\n\nimport { AuthInternal, ConfigInternal } from '../../model/auth';\nimport { PopupRedirectResolverInternal } from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport {\n AuthErrorCode,\n AuthErrorParams,\n ErrorMapRetriever,\n _DEFAULT_AUTH_ERROR_FACTORY\n} from '../errors';\nimport { PersistenceInternal } from '../persistence';\nimport {\n KeyName,\n PersistenceUserManager\n} from '../persistence/persistence_user_manager';\nimport { _reloadWithoutSaving } from '../user/reload';\nimport {\n _assert,\n _serverAppCurrentUserOperationNotSupportedError\n} from '../util/assert';\nimport { _getInstance } from '../util/instantiator';\nimport { _getUserLanguage } from '../util/navigator';\nimport { _getClientVersion } from '../util/version';\nimport { HttpHeader } from '../../api';\nimport {\n RevokeTokenRequest,\n TokenType,\n revokeToken\n} from '../../api/authentication/token';\nimport { AuthMiddlewareQueue } from './middleware';\nimport { RecaptchaConfig } from '../../platform_browser/recaptcha/recaptcha';\nimport { _logWarn } from '../util/log';\nimport { _getPasswordPolicy } from '../../api/password_policy/get_password_policy';\nimport { PasswordPolicyInternal } from '../../model/password_policy';\nimport { PasswordPolicyImpl } from './password_policy_impl';\nimport { getAccountInfo } from '../../api/account_management/account';\nimport { UserImpl } from '../user/user_impl';\n\ninterface AsyncAction {\n (): Promise;\n}\n\nexport const enum DefaultConfig {\n TOKEN_API_HOST = 'securetoken.googleapis.com',\n API_HOST = 'identitytoolkit.googleapis.com',\n API_SCHEME = 'https'\n}\n\nexport class AuthImpl implements AuthInternal, _FirebaseService {\n currentUser: User | null = null;\n emulatorConfig: EmulatorConfig | null = null;\n private operations = Promise.resolve();\n private persistenceManager?: PersistenceUserManager;\n private redirectPersistenceManager?: PersistenceUserManager;\n private authStateSubscription = new Subscription(this);\n private idTokenSubscription = new Subscription(this);\n private readonly beforeStateQueue = new AuthMiddlewareQueue(this);\n private redirectUser: UserInternal | null = null;\n private isProactiveRefreshEnabled = false;\n private readonly EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION: number = 1;\n\n // Any network calls will set this to true and prevent subsequent emulator\n // initialization\n _canInitEmulator = true;\n _isInitialized = false;\n _deleted = false;\n _initializationPromise: Promise | null = null;\n _popupRedirectResolver: PopupRedirectResolverInternal | null = null;\n _errorFactory: ErrorFactory =\n _DEFAULT_AUTH_ERROR_FACTORY;\n _agentRecaptchaConfig: RecaptchaConfig | null = null;\n _tenantRecaptchaConfigs: Record = {};\n _projectPasswordPolicy: PasswordPolicyInternal | null = null;\n _tenantPasswordPolicies: Record = {};\n readonly name: string;\n\n // Tracks the last notified UID for state change listeners to prevent\n // repeated calls to the callbacks. Undefined means it's never been\n // called, whereas null means it's been called with a signed out user\n private lastNotifiedUid: string | null | undefined = undefined;\n\n languageCode: string | null = null;\n tenantId: string | null = null;\n settings: AuthSettings = { appVerificationDisabledForTesting: false };\n\n constructor(\n public readonly app: FirebaseApp,\n private readonly heartbeatServiceProvider: Provider<'heartbeat'>,\n private readonly appCheckServiceProvider: Provider,\n public readonly config: ConfigInternal\n ) {\n this.name = app.name;\n this.clientVersion = config.sdkClientVersion;\n }\n\n _initializeWithPersistence(\n persistenceHierarchy: PersistenceInternal[],\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (popupRedirectResolver) {\n this._popupRedirectResolver = _getInstance(popupRedirectResolver);\n }\n\n // Have to check for app deletion throughout initialization (after each\n // promise resolution)\n this._initializationPromise = this.queue(async () => {\n if (this._deleted) {\n return;\n }\n\n this.persistenceManager = await PersistenceUserManager.create(\n this,\n persistenceHierarchy\n );\n\n if (this._deleted) {\n return;\n }\n\n // Initialize the resolver early if necessary (only applicable to web:\n // this will cause the iframe to load immediately in certain cases)\n if (this._popupRedirectResolver?._shouldInitProactively) {\n // If this fails, don't halt auth loading\n try {\n await this._popupRedirectResolver._initialize(this);\n } catch (e) {\n /* Ignore the error */\n }\n }\n\n await this.initializeCurrentUser(popupRedirectResolver);\n\n this.lastNotifiedUid = this.currentUser?.uid || null;\n\n if (this._deleted) {\n return;\n }\n\n this._isInitialized = true;\n });\n\n return this._initializationPromise;\n }\n\n /**\n * If the persistence is changed in another window, the user manager will let us know\n */\n async _onStorageEvent(): Promise {\n if (this._deleted) {\n return;\n }\n\n const user = await this.assertedPersistence.getCurrentUser();\n\n if (!this.currentUser && !user) {\n // No change, do nothing (was signed out and remained signed out).\n return;\n }\n\n // If the same user is to be synchronized.\n if (this.currentUser && user && this.currentUser.uid === user.uid) {\n // Data update, simply copy data changes.\n this._currentUser._assign(user);\n // If tokens changed from previous user tokens, this will trigger\n // notifyAuthListeners_.\n await this.currentUser.getIdToken();\n return;\n }\n\n // Update current Auth state. Either a new login or logout.\n // Skip blocking callbacks, they should not apply to a change in another tab.\n await this._updateCurrentUser(user, /* skipBeforeStateCallbacks */ true);\n }\n\n private async initializeCurrentUserFromIdToken(\n idToken: string\n ): Promise {\n try {\n const response = await getAccountInfo(this, { idToken });\n const user = await UserImpl._fromGetAccountInfoResponse(\n this,\n response,\n idToken\n );\n await this.directlySetCurrentUser(user);\n } catch (err) {\n console.warn(\n 'FirebaseServerApp could not login user with provided authIdToken: ',\n err\n );\n await this.directlySetCurrentUser(null);\n }\n }\n\n private async initializeCurrentUser(\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (_isFirebaseServerApp(this.app)) {\n const idToken = this.app.settings.authIdToken;\n if (idToken) {\n // Start the auth operation in the next tick to allow a moment for the customer's app to\n // attach an emulator, if desired.\n return new Promise(resolve => {\n setTimeout(() =>\n this.initializeCurrentUserFromIdToken(idToken).then(\n resolve,\n resolve\n )\n );\n });\n } else {\n return this.directlySetCurrentUser(null);\n }\n }\n\n // First check to see if we have a pending redirect event.\n const previouslyStoredUser =\n (await this.assertedPersistence.getCurrentUser()) as UserInternal | null;\n let futureCurrentUser = previouslyStoredUser;\n let needsTocheckMiddleware = false;\n if (popupRedirectResolver && this.config.authDomain) {\n await this.getOrInitRedirectPersistenceManager();\n const redirectUserEventId = this.redirectUser?._redirectEventId;\n const storedUserEventId = futureCurrentUser?._redirectEventId;\n const result = await this.tryRedirectSignIn(popupRedirectResolver);\n\n // If the stored user (i.e. the old \"currentUser\") has a redirectId that\n // matches the redirect user, then we want to initially sign in with the\n // new user object from result.\n // TODO(samgho): More thoroughly test all of this\n if (\n (!redirectUserEventId || redirectUserEventId === storedUserEventId) &&\n result?.user\n ) {\n futureCurrentUser = result.user as UserInternal;\n needsTocheckMiddleware = true;\n }\n }\n\n // If no user in persistence, there is no current user. Set to null.\n if (!futureCurrentUser) {\n return this.directlySetCurrentUser(null);\n }\n\n if (!futureCurrentUser._redirectEventId) {\n // This isn't a redirect link operation, we can reload and bail.\n // First though, ensure that we check the middleware is happy.\n if (needsTocheckMiddleware) {\n try {\n await this.beforeStateQueue.runMiddleware(futureCurrentUser);\n } catch (e) {\n futureCurrentUser = previouslyStoredUser;\n // We know this is available since the bit is only set when the\n // resolver is available\n this._popupRedirectResolver!._overrideRedirectResult(this, () =>\n Promise.reject(e)\n );\n }\n }\n\n if (futureCurrentUser) {\n return this.reloadAndSetCurrentUserOrClear(futureCurrentUser);\n } else {\n return this.directlySetCurrentUser(null);\n }\n }\n\n _assert(this._popupRedirectResolver, this, AuthErrorCode.ARGUMENT_ERROR);\n await this.getOrInitRedirectPersistenceManager();\n\n // If the redirect user's event ID matches the current user's event ID,\n // DO NOT reload the current user, otherwise they'll be cleared from storage.\n // This is important for the reauthenticateWithRedirect() flow.\n if (\n this.redirectUser &&\n this.redirectUser._redirectEventId === futureCurrentUser._redirectEventId\n ) {\n return this.directlySetCurrentUser(futureCurrentUser);\n }\n\n return this.reloadAndSetCurrentUserOrClear(futureCurrentUser);\n }\n\n private async tryRedirectSignIn(\n redirectResolver: PopupRedirectResolver\n ): Promise {\n // The redirect user needs to be checked (and signed in if available)\n // during auth initialization. All of the normal sign in and link/reauth\n // flows call back into auth and push things onto the promise queue. We\n // need to await the result of the redirect sign in *inside the promise\n // queue*. This presents a problem: we run into deadlock. See:\n // ┌> [Initialization] ─────┐\n // ┌> [] │\n // └─ [getRedirectResult] <─┘\n // where [] are tasks on the queue and arrows denote awaits\n // Initialization will never complete because it's waiting on something\n // that's waiting for initialization to complete!\n //\n // Instead, this method calls getRedirectResult() (stored in\n // _completeRedirectFn) with an optional parameter that instructs all of\n // the underlying auth operations to skip anything that mutates auth state.\n\n let result: UserCredential | null = null;\n try {\n // We know this._popupRedirectResolver is set since redirectResolver\n // is passed in. The _completeRedirectFn expects the unwrapped extern.\n result = await this._popupRedirectResolver!._completeRedirectFn(\n this,\n redirectResolver,\n true\n );\n } catch (e) {\n // Swallow any errors here; the code can retrieve them in\n // getRedirectResult().\n await this._setRedirectUser(null);\n }\n\n return result;\n }\n\n private async reloadAndSetCurrentUserOrClear(\n user: UserInternal\n ): Promise {\n try {\n await _reloadWithoutSaving(user);\n } catch (e) {\n if (\n (e as FirebaseError)?.code !==\n `auth/${AuthErrorCode.NETWORK_REQUEST_FAILED}`\n ) {\n // Something's wrong with the user's token. Log them out and remove\n // them from storage\n return this.directlySetCurrentUser(null);\n }\n }\n\n return this.directlySetCurrentUser(user);\n }\n\n useDeviceLanguage(): void {\n this.languageCode = _getUserLanguage();\n }\n\n async _delete(): Promise {\n this._deleted = true;\n }\n\n async updateCurrentUser(userExtern: User | null): Promise {\n if (_isFirebaseServerApp(this.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(this)\n );\n }\n // The public updateCurrentUser method needs to make a copy of the user,\n // and also check that the project matches\n const user = userExtern\n ? (getModularInstance(userExtern) as UserInternal)\n : null;\n if (user) {\n _assert(\n user.auth.config.apiKey === this.config.apiKey,\n this,\n AuthErrorCode.INVALID_AUTH\n );\n }\n return this._updateCurrentUser(user && user._clone(this));\n }\n\n async _updateCurrentUser(\n user: User | null,\n skipBeforeStateCallbacks: boolean = false\n ): Promise {\n if (this._deleted) {\n return;\n }\n if (user) {\n _assert(\n this.tenantId === user.tenantId,\n this,\n AuthErrorCode.TENANT_ID_MISMATCH\n );\n }\n\n if (!skipBeforeStateCallbacks) {\n await this.beforeStateQueue.runMiddleware(user);\n }\n\n return this.queue(async () => {\n await this.directlySetCurrentUser(user as UserInternal | null);\n this.notifyAuthListeners();\n });\n }\n\n async signOut(): Promise {\n if (_isFirebaseServerApp(this.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(this)\n );\n }\n // Run first, to block _setRedirectUser() if any callbacks fail.\n await this.beforeStateQueue.runMiddleware(null);\n // Clear the redirect user when signOut is called\n if (this.redirectPersistenceManager || this._popupRedirectResolver) {\n await this._setRedirectUser(null);\n }\n\n // Prevent callbacks from being called again in _updateCurrentUser, as\n // they were already called in the first line.\n return this._updateCurrentUser(null, /* skipBeforeStateCallbacks */ true);\n }\n\n setPersistence(persistence: Persistence): Promise {\n if (_isFirebaseServerApp(this.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(this)\n );\n }\n return this.queue(async () => {\n await this.assertedPersistence.setPersistence(_getInstance(persistence));\n });\n }\n\n _getRecaptchaConfig(): RecaptchaConfig | null {\n if (this.tenantId == null) {\n return this._agentRecaptchaConfig;\n } else {\n return this._tenantRecaptchaConfigs[this.tenantId];\n }\n }\n\n async validatePassword(password: string): Promise {\n if (!this._getPasswordPolicyInternal()) {\n await this._updatePasswordPolicy();\n }\n\n // Password policy will be defined after fetching.\n const passwordPolicy: PasswordPolicyInternal =\n this._getPasswordPolicyInternal()!;\n\n // Check that the policy schema version is supported by the SDK.\n // TODO: Update this logic to use a max supported policy schema version once we have multiple schema versions.\n if (\n passwordPolicy.schemaVersion !==\n this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION\n ) {\n return Promise.reject(\n this._errorFactory.create(\n AuthErrorCode.UNSUPPORTED_PASSWORD_POLICY_SCHEMA_VERSION,\n {}\n )\n );\n }\n\n return passwordPolicy.validatePassword(password);\n }\n\n _getPasswordPolicyInternal(): PasswordPolicyInternal | null {\n if (this.tenantId === null) {\n return this._projectPasswordPolicy;\n } else {\n return this._tenantPasswordPolicies[this.tenantId];\n }\n }\n\n async _updatePasswordPolicy(): Promise {\n const response = await _getPasswordPolicy(this);\n\n const passwordPolicy: PasswordPolicyInternal = new PasswordPolicyImpl(\n response\n );\n\n if (this.tenantId === null) {\n this._projectPasswordPolicy = passwordPolicy;\n } else {\n this._tenantPasswordPolicies[this.tenantId] = passwordPolicy;\n }\n }\n\n _getPersistence(): string {\n return this.assertedPersistence.persistence.type;\n }\n\n _updateErrorMap(errorMap: AuthErrorMap): void {\n this._errorFactory = new ErrorFactory(\n 'auth',\n 'Firebase',\n (errorMap as ErrorMapRetriever)()\n );\n }\n\n onAuthStateChanged(\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n return this.registerStateListener(\n this.authStateSubscription,\n nextOrObserver,\n error,\n completed\n );\n }\n\n beforeAuthStateChanged(\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n ): Unsubscribe {\n return this.beforeStateQueue.pushCallback(callback, onAbort);\n }\n\n onIdTokenChanged(\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n return this.registerStateListener(\n this.idTokenSubscription,\n nextOrObserver,\n error,\n completed\n );\n }\n\n authStateReady(): Promise {\n return new Promise((resolve, reject) => {\n if (this.currentUser) {\n resolve();\n } else {\n const unsubscribe = this.onAuthStateChanged(() => {\n unsubscribe();\n resolve();\n }, reject);\n }\n });\n }\n\n /**\n * Revokes the given access token. Currently only supports Apple OAuth access tokens.\n */\n async revokeAccessToken(token: string): Promise {\n if (this.currentUser) {\n const idToken = await this.currentUser.getIdToken();\n // Generalize this to accept other providers once supported.\n const request: RevokeTokenRequest = {\n providerId: 'apple.com',\n tokenType: TokenType.ACCESS_TOKEN,\n token,\n idToken\n };\n if (this.tenantId != null) {\n request.tenantId = this.tenantId;\n }\n await revokeToken(this, request);\n }\n }\n\n toJSON(): object {\n return {\n apiKey: this.config.apiKey,\n authDomain: this.config.authDomain,\n appName: this.name,\n currentUser: this._currentUser?.toJSON()\n };\n }\n\n async _setRedirectUser(\n user: UserInternal | null,\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n const redirectManager = await this.getOrInitRedirectPersistenceManager(\n popupRedirectResolver\n );\n return user === null\n ? redirectManager.removeCurrentUser()\n : redirectManager.setCurrentUser(user);\n }\n\n private async getOrInitRedirectPersistenceManager(\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (!this.redirectPersistenceManager) {\n const resolver: PopupRedirectResolverInternal | null =\n (popupRedirectResolver && _getInstance(popupRedirectResolver)) ||\n this._popupRedirectResolver;\n _assert(resolver, this, AuthErrorCode.ARGUMENT_ERROR);\n this.redirectPersistenceManager = await PersistenceUserManager.create(\n this,\n [_getInstance(resolver._redirectPersistence)],\n KeyName.REDIRECT_USER\n );\n this.redirectUser =\n await this.redirectPersistenceManager.getCurrentUser();\n }\n\n return this.redirectPersistenceManager;\n }\n\n async _redirectUserForId(id: string): Promise {\n // Make sure we've cleared any pending persistence actions if we're not in\n // the initializer\n if (this._isInitialized) {\n await this.queue(async () => {});\n }\n\n if (this._currentUser?._redirectEventId === id) {\n return this._currentUser;\n }\n\n if (this.redirectUser?._redirectEventId === id) {\n return this.redirectUser;\n }\n\n return null;\n }\n\n async _persistUserIfCurrent(user: UserInternal): Promise {\n if (user === this.currentUser) {\n return this.queue(async () => this.directlySetCurrentUser(user));\n }\n }\n\n /** Notifies listeners only if the user is current */\n _notifyListenersIfCurrent(user: UserInternal): void {\n if (user === this.currentUser) {\n this.notifyAuthListeners();\n }\n }\n\n _key(): string {\n return `${this.config.authDomain}:${this.config.apiKey}:${this.name}`;\n }\n\n _startProactiveRefresh(): void {\n this.isProactiveRefreshEnabled = true;\n if (this.currentUser) {\n this._currentUser._startProactiveRefresh();\n }\n }\n\n _stopProactiveRefresh(): void {\n this.isProactiveRefreshEnabled = false;\n if (this.currentUser) {\n this._currentUser._stopProactiveRefresh();\n }\n }\n\n /** Returns the current user cast as the internal type */\n get _currentUser(): UserInternal {\n return this.currentUser as UserInternal;\n }\n\n private notifyAuthListeners(): void {\n if (!this._isInitialized) {\n return;\n }\n\n this.idTokenSubscription.next(this.currentUser);\n\n const currentUid = this.currentUser?.uid ?? null;\n if (this.lastNotifiedUid !== currentUid) {\n this.lastNotifiedUid = currentUid;\n this.authStateSubscription.next(this.currentUser);\n }\n }\n\n private registerStateListener(\n subscription: Subscription,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n if (this._deleted) {\n return () => {};\n }\n\n const cb =\n typeof nextOrObserver === 'function'\n ? nextOrObserver\n : nextOrObserver.next.bind(nextOrObserver);\n\n let isUnsubscribed = false;\n\n const promise = this._isInitialized\n ? Promise.resolve()\n : this._initializationPromise;\n _assert(promise, this, AuthErrorCode.INTERNAL_ERROR);\n // The callback needs to be called asynchronously per the spec.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n promise.then(() => {\n if (isUnsubscribed) {\n return;\n }\n cb(this.currentUser);\n });\n\n if (typeof nextOrObserver === 'function') {\n const unsubscribe = subscription.addObserver(\n nextOrObserver,\n error,\n completed\n );\n return () => {\n isUnsubscribed = true;\n unsubscribe();\n };\n } else {\n const unsubscribe = subscription.addObserver(nextOrObserver);\n return () => {\n isUnsubscribed = true;\n unsubscribe();\n };\n }\n }\n\n /**\n * Unprotected (from race conditions) method to set the current user. This\n * should only be called from within a queued callback. This is necessary\n * because the queue shouldn't rely on another queued callback.\n */\n private async directlySetCurrentUser(\n user: UserInternal | null\n ): Promise {\n if (this.currentUser && this.currentUser !== user) {\n this._currentUser._stopProactiveRefresh();\n }\n if (user && this.isProactiveRefreshEnabled) {\n user._startProactiveRefresh();\n }\n\n this.currentUser = user;\n\n if (user) {\n await this.assertedPersistence.setCurrentUser(user);\n } else {\n await this.assertedPersistence.removeCurrentUser();\n }\n }\n\n private queue(action: AsyncAction): Promise {\n // In case something errors, the callback still should be called in order\n // to keep the promise chain alive\n this.operations = this.operations.then(action, action);\n return this.operations;\n }\n\n private get assertedPersistence(): PersistenceUserManager {\n _assert(this.persistenceManager, this, AuthErrorCode.INTERNAL_ERROR);\n return this.persistenceManager;\n }\n\n private frameworks: string[] = [];\n private clientVersion: string;\n _logFramework(framework: string): void {\n if (!framework || this.frameworks.includes(framework)) {\n return;\n }\n this.frameworks.push(framework);\n\n // Sort alphabetically so that \"FirebaseCore-web,FirebaseUI-web\" and\n // \"FirebaseUI-web,FirebaseCore-web\" aren't viewed as different.\n this.frameworks.sort();\n this.clientVersion = _getClientVersion(\n this.config.clientPlatform,\n this._getFrameworks()\n );\n }\n _getFrameworks(): readonly string[] {\n return this.frameworks;\n }\n async _getAdditionalHeaders(): Promise> {\n // Additional headers on every request\n const headers: Record = {\n [HttpHeader.X_CLIENT_VERSION]: this.clientVersion\n };\n\n if (this.app.options.appId) {\n headers[HttpHeader.X_FIREBASE_GMPID] = this.app.options.appId;\n }\n\n // If the heartbeat service exists, add the heartbeat string\n const heartbeatsHeader = await this.heartbeatServiceProvider\n .getImmediate({\n optional: true\n })\n ?.getHeartbeatsHeader();\n if (heartbeatsHeader) {\n headers[HttpHeader.X_FIREBASE_CLIENT] = heartbeatsHeader;\n }\n\n // If the App Check service exists, add the App Check token in the headers\n const appCheckToken = await this._getAppCheckToken();\n if (appCheckToken) {\n headers[HttpHeader.X_FIREBASE_APP_CHECK] = appCheckToken;\n }\n\n return headers;\n }\n\n async _getAppCheckToken(): Promise {\n const appCheckTokenResult = await this.appCheckServiceProvider\n .getImmediate({ optional: true })\n ?.getToken();\n if (appCheckTokenResult?.error) {\n // Context: appCheck.getToken() will never throw even if an error happened.\n // In the error case, a dummy token will be returned along with an error field describing\n // the error. In general, we shouldn't care about the error condition and just use\n // the token (actual or dummy) to send requests.\n _logWarn(\n `Error while retrieving App Check token: ${appCheckTokenResult.error}`\n );\n }\n return appCheckTokenResult?.token;\n }\n}\n\n/**\n * Method to be used to cast down to our private implementation of Auth.\n * It will also handle unwrapping from the compat type if necessary\n *\n * @param auth Auth object passed in from developer\n */\nexport function _castAuth(auth: Auth): AuthInternal {\n return getModularInstance(auth) as AuthInternal;\n}\n\n/** Helper class to wrap subscriber logic */\nclass Subscription {\n private observer: Observer | null = null;\n readonly addObserver: Subscribe = createSubscribe(\n observer => (this.observer = observer)\n );\n\n constructor(readonly auth: AuthInternal) {}\n\n get next(): NextFn {\n _assert(this.observer, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return this.observer.next.bind(this.observer);\n }\n}\n","/**\n * @license\n * Copyright 2023 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performApiRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { Auth } from '../../model/public_types';\n\n/**\n * Request object for fetching the password policy.\n */\nexport interface GetPasswordPolicyRequest {\n tenantId?: string;\n}\n\n/**\n * Response object for fetching the password policy.\n */\nexport interface GetPasswordPolicyResponse {\n customStrengthOptions: {\n minPasswordLength?: number;\n maxPasswordLength?: number;\n containsLowercaseCharacter?: boolean;\n containsUppercaseCharacter?: boolean;\n containsNumericCharacter?: boolean;\n containsNonAlphanumericCharacter?: boolean;\n };\n allowedNonAlphanumericCharacters?: string[];\n enforcementState: string;\n forceUpgradeOnSignin?: boolean;\n schemaVersion: number;\n}\n\n/**\n * Fetches the password policy for the currently set tenant or the project if no tenant is set.\n *\n * @param auth Auth object.\n * @param request Password policy request.\n * @returns Password policy response.\n */\nexport async function _getPasswordPolicy(\n auth: Auth,\n request: GetPasswordPolicyRequest = {}\n): Promise {\n return _performApiRequest<\n GetPasswordPolicyRequest,\n GetPasswordPolicyResponse\n >(\n auth,\n HttpMethod.GET,\n Endpoint.GET_PASSWORD_POLICY,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ExternalJSProvider {\n loadJS(url: string): Promise;\n recaptchaV2Script: string;\n recaptchaEnterpriseScript: string;\n gapiScript: string;\n}\n\nlet externalJSProvider: ExternalJSProvider = {\n async loadJS() {\n throw new Error('Unable to load external scripts');\n },\n\n recaptchaV2Script: '',\n recaptchaEnterpriseScript: '',\n gapiScript: ''\n};\n\nexport function _setExternalJSProvider(p: ExternalJSProvider): void {\n externalJSProvider = p;\n}\n\nexport function _loadJS(url: string): Promise {\n return externalJSProvider.loadJS(url);\n}\n\nexport function _recaptchaV2ScriptUrl(): string {\n return externalJSProvider.recaptchaV2Script;\n}\n\nexport function _recaptchaEnterpriseScriptUrl(): string {\n return externalJSProvider.recaptchaEnterpriseScript;\n}\n\nexport function _gapiScriptUrl(): string {\n return externalJSProvider.gapiScript;\n}\n\nexport function _generateCallbackName(prefix: string): string {\n return `__${prefix}${Math.floor(Math.random() * 1000000)}`;\n}\n","/* eslint-disable @typescript-eslint/no-require-imports */\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isEnterprise, RecaptchaConfig } from './recaptcha';\nimport { getRecaptchaConfig } from '../../api/authentication/recaptcha';\nimport {\n RecaptchaClientType,\n RecaptchaVersion,\n RecaptchaActionName,\n RecaptchaProvider\n} from '../../api';\n\nimport { Auth } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport * as jsHelpers from '../load_js';\nimport { AuthErrorCode } from '../../core/errors';\n\nexport const RECAPTCHA_ENTERPRISE_VERIFIER_TYPE = 'recaptcha-enterprise';\nexport const FAKE_TOKEN = 'NO_RECAPTCHA';\n\nexport class RecaptchaEnterpriseVerifier {\n /**\n * Identifies the type of application verifier (e.g. \"recaptcha-enterprise\").\n */\n readonly type = RECAPTCHA_ENTERPRISE_VERIFIER_TYPE;\n\n private readonly auth: AuthInternal;\n\n /**\n *\n * @param authExtern - The corresponding Firebase {@link Auth} instance.\n *\n */\n constructor(authExtern: Auth) {\n this.auth = _castAuth(authExtern);\n }\n\n /**\n * Executes the verification process.\n *\n * @returns A Promise for a token that can be used to assert the validity of a request.\n */\n async verify(\n action: string = 'verify',\n forceRefresh = false\n ): Promise {\n async function retrieveSiteKey(auth: AuthInternal): Promise {\n if (!forceRefresh) {\n if (auth.tenantId == null && auth._agentRecaptchaConfig != null) {\n return auth._agentRecaptchaConfig.siteKey;\n }\n if (\n auth.tenantId != null &&\n auth._tenantRecaptchaConfigs[auth.tenantId] !== undefined\n ) {\n return auth._tenantRecaptchaConfigs[auth.tenantId].siteKey;\n }\n }\n\n return new Promise(async (resolve, reject) => {\n getRecaptchaConfig(auth, {\n clientType: RecaptchaClientType.WEB,\n version: RecaptchaVersion.ENTERPRISE\n })\n .then(response => {\n if (response.recaptchaKey === undefined) {\n reject(new Error('recaptcha Enterprise site key undefined'));\n } else {\n const config = new RecaptchaConfig(response);\n if (auth.tenantId == null) {\n auth._agentRecaptchaConfig = config;\n } else {\n auth._tenantRecaptchaConfigs[auth.tenantId] = config;\n }\n return resolve(config.siteKey);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n\n function retrieveRecaptchaToken(\n siteKey: string,\n resolve: (value: string | PromiseLike) => void,\n reject: (reason?: unknown) => void\n ): void {\n const grecaptcha = window.grecaptcha;\n if (isEnterprise(grecaptcha)) {\n grecaptcha.enterprise.ready(() => {\n grecaptcha.enterprise\n .execute(siteKey, { action })\n .then(token => {\n resolve(token);\n })\n .catch(() => {\n resolve(FAKE_TOKEN);\n });\n });\n } else {\n reject(Error('No reCAPTCHA enterprise script loaded.'));\n }\n }\n\n return new Promise((resolve, reject) => {\n retrieveSiteKey(this.auth)\n .then(siteKey => {\n if (!forceRefresh && isEnterprise(window.grecaptcha)) {\n retrieveRecaptchaToken(siteKey, resolve, reject);\n } else {\n if (typeof window === 'undefined') {\n reject(\n new Error('RecaptchaVerifier is only supported in browser')\n );\n return;\n }\n let url = jsHelpers._recaptchaEnterpriseScriptUrl();\n if (url.length !== 0) {\n url += siteKey;\n }\n jsHelpers\n ._loadJS(url)\n .then(() => {\n retrieveRecaptchaToken(siteKey, resolve, reject);\n })\n .catch(error => {\n reject(error);\n });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n}\n\nexport async function injectRecaptchaFields(\n auth: AuthInternal,\n request: T,\n action: RecaptchaActionName,\n captchaResp = false\n): Promise {\n const verifier = new RecaptchaEnterpriseVerifier(auth);\n let captchaResponse;\n try {\n captchaResponse = await verifier.verify(action);\n } catch (error) {\n captchaResponse = await verifier.verify(action, true);\n }\n const newRequest = { ...request };\n if (!captchaResp) {\n Object.assign(newRequest, { captchaResponse });\n } else {\n Object.assign(newRequest, { 'captchaResp': captchaResponse });\n }\n Object.assign(newRequest, { 'clientType': RecaptchaClientType.WEB });\n Object.assign(newRequest, {\n 'recaptchaVersion': RecaptchaVersion.ENTERPRISE\n });\n return newRequest;\n}\n\ntype ActionMethod = (\n auth: Auth,\n request: TRequest\n) => Promise;\n\nexport async function handleRecaptchaFlow(\n authInstance: AuthInternal,\n request: TRequest,\n actionName: RecaptchaActionName,\n actionMethod: ActionMethod\n): Promise {\n if (\n authInstance\n ._getRecaptchaConfig()\n ?.isProviderEnabled(RecaptchaProvider.EMAIL_PASSWORD_PROVIDER)\n ) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInstance,\n request,\n actionName,\n actionName === RecaptchaActionName.GET_OOB_CODE\n );\n return actionMethod(authInstance, requestWithRecaptcha);\n } else {\n return actionMethod(authInstance, request).catch(async error => {\n if (error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`) {\n console.log(\n `${actionName} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInstance,\n request,\n actionName,\n actionName === RecaptchaActionName.GET_OOB_CODE\n );\n return actionMethod(authInstance, requestWithRecaptcha);\n } else {\n return Promise.reject(error);\n }\n });\n }\n}\n\nexport async function _initializeRecaptchaConfig(auth: Auth): Promise {\n const authInternal = _castAuth(auth);\n\n const response = await getRecaptchaConfig(authInternal, {\n clientType: RecaptchaClientType.WEB,\n version: RecaptchaVersion.ENTERPRISE\n });\n\n const config = new RecaptchaConfig(response);\n if (authInternal.tenantId == null) {\n authInternal._agentRecaptchaConfig = config;\n } else {\n authInternal._tenantRecaptchaConfigs[authInternal.tenantId] = config;\n }\n\n if (config.isProviderEnabled(RecaptchaProvider.EMAIL_PASSWORD_PROVIDER)) {\n const verifier = new RecaptchaEnterpriseVerifier(authInternal);\n void verifier.verify();\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Auth } from '../../model/public_types';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _castAuth } from './auth_impl';\n\n/**\n * Changes the {@link Auth} instance to communicate with the Firebase Auth Emulator, instead of production\n * Firebase Auth services.\n *\n * @remarks\n * This must be called synchronously immediately following the first call to\n * {@link initializeAuth}. Do not use with production credentials as emulator\n * traffic is not encrypted.\n *\n *\n * @example\n * ```javascript\n * connectAuthEmulator(auth, 'http://127.0.0.1:9099', { disableWarnings: true });\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param url - The URL at which the emulator is running (eg, 'http://localhost:9099').\n * @param options - Optional. `options.disableWarnings` defaults to `false`. Set it to\n * `true` to disable the warning banner attached to the DOM.\n *\n * @public\n */\nexport function connectAuthEmulator(\n auth: Auth,\n url: string,\n options?: { disableWarnings: boolean }\n): void {\n const authInternal = _castAuth(auth);\n _assert(\n authInternal._canInitEmulator,\n authInternal,\n AuthErrorCode.EMULATOR_CONFIG_FAILED\n );\n\n _assert(\n /^https?:\\/\\//.test(url),\n authInternal,\n AuthErrorCode.INVALID_EMULATOR_SCHEME\n );\n\n const disableWarnings = !!options?.disableWarnings;\n\n const protocol = extractProtocol(url);\n const { host, port } = extractHostAndPort(url);\n const portStr = port === null ? '' : `:${port}`;\n\n // Always replace path with \"/\" (even if input url had no path at all, or had a different one).\n authInternal.config.emulator = { url: `${protocol}//${host}${portStr}/` };\n authInternal.settings.appVerificationDisabledForTesting = true;\n authInternal.emulatorConfig = Object.freeze({\n host,\n port,\n protocol: protocol.replace(':', ''),\n options: Object.freeze({ disableWarnings })\n });\n\n if (!disableWarnings) {\n emitEmulatorWarning();\n }\n}\n\nfunction extractProtocol(url: string): string {\n const protocolEnd = url.indexOf(':');\n return protocolEnd < 0 ? '' : url.substr(0, protocolEnd + 1);\n}\n\nfunction extractHostAndPort(url: string): {\n host: string;\n port: number | null;\n} {\n const protocol = extractProtocol(url);\n const authority = /(\\/\\/)?([^?#/]+)/.exec(url.substr(protocol.length)); // Between // and /, ? or #.\n if (!authority) {\n return { host: '', port: null };\n }\n const hostAndPort = authority[2].split('@').pop() || ''; // Strip out \"username:password@\".\n const bracketedIPv6 = /^(\\[[^\\]]+\\])(:|$)/.exec(hostAndPort);\n if (bracketedIPv6) {\n const host = bracketedIPv6[1];\n return { host, port: parsePort(hostAndPort.substr(host.length + 1)) };\n } else {\n const [host, port] = hostAndPort.split(':');\n return { host, port: parsePort(port) };\n }\n}\n\nfunction parsePort(portStr: string): number | null {\n if (!portStr) {\n return null;\n }\n const port = Number(portStr);\n if (isNaN(port)) {\n return null;\n }\n return port;\n}\n\nfunction emitEmulatorWarning(): void {\n function attachBanner(): void {\n const el = document.createElement('p');\n const sty = el.style;\n el.innerText =\n 'Running in emulator mode. Do not use with production credentials.';\n sty.position = 'fixed';\n sty.width = '100%';\n sty.backgroundColor = '#ffffff';\n sty.border = '.1em solid #000000';\n sty.color = '#b50000';\n sty.bottom = '0px';\n sty.left = '0px';\n sty.margin = '0px';\n sty.zIndex = '10000';\n sty.textAlign = 'center';\n el.classList.add('firebase-emulator-warning');\n document.body.appendChild(el);\n }\n\n if (typeof console !== 'undefined' && typeof console.info === 'function') {\n console.info(\n 'WARNING: You are using the Auth Emulator,' +\n ' which is intended for local testing only. Do not use with' +\n ' production credentials.'\n );\n }\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n if (document.readyState === 'loading') {\n window.addEventListener('DOMContentLoaded', attachBanner);\n } else {\n attachBanner();\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { debugFail } from '../util/assert';\n\n/**\n * Interface that represents the credentials returned by an {@link AuthProvider}.\n *\n * @remarks\n * Implementations specify the details about each auth provider's credential requirements.\n *\n * @public\n */\nexport class AuthCredential {\n /** @internal */\n protected constructor(\n /**\n * The authentication provider ID for the credential.\n *\n * @remarks\n * For example, 'facebook.com', or 'google.com'.\n */\n readonly providerId: string,\n /**\n * The authentication sign in method for the credential.\n *\n * @remarks\n * For example, {@link SignInMethod}.EMAIL_PASSWORD, or\n * {@link SignInMethod}.EMAIL_LINK. This corresponds to the sign-in method\n * identifier as returned in {@link fetchSignInMethodsForEmail}.\n */\n readonly signInMethod: string\n ) {}\n\n /**\n * Returns a JSON-serializable representation of this object.\n *\n * @returns a JSON-serializable representation of this object.\n */\n toJSON(): object {\n return debugFail('not implemented');\n }\n\n /** @internal */\n _getIdTokenResponse(_auth: AuthInternal): Promise {\n return debugFail('not implemented');\n }\n /** @internal */\n _linkToIdToken(\n _auth: AuthInternal,\n _idToken: string\n ): Promise {\n return debugFail('not implemented');\n }\n /** @internal */\n _getReauthenticationResolver(_auth: AuthInternal): Promise {\n return debugFail('not implemented');\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeOperation, Auth } from '../../model/public_types';\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { MfaEnrollment } from './mfa';\nimport { SignUpRequest, SignUpResponse } from '../authentication/sign_up';\n\nexport interface ResetPasswordRequest {\n oobCode: string;\n newPassword?: string;\n tenantId?: string;\n}\n\nexport interface ResetPasswordResponse {\n email: string;\n newEmail?: string;\n requestType?: ActionCodeOperation;\n mfaInfo?: MfaEnrollment;\n}\n\nexport async function resetPassword(\n auth: Auth,\n request: ResetPasswordRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.RESET_PASSWORD,\n _addTidIfNecessary(auth, request)\n );\n}\nexport interface UpdateEmailPasswordRequest {\n idToken: string;\n returnSecureToken?: boolean;\n email?: string;\n password?: string;\n}\n\nexport interface UpdateEmailPasswordResponse extends IdTokenResponse {}\n\nexport async function updateEmailPassword(\n auth: Auth,\n request: UpdateEmailPasswordRequest\n): Promise {\n return _performApiRequest<\n UpdateEmailPasswordRequest,\n UpdateEmailPasswordResponse\n >(auth, HttpMethod.POST, Endpoint.SET_ACCOUNT_INFO, request);\n}\n\n// Used for linking an email/password account to an existing idToken. Uses the same request/response\n// format as updateEmailPassword.\nexport async function linkEmailPassword(\n auth: Auth,\n request: SignUpRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_UP,\n request\n );\n}\n\nexport interface ApplyActionCodeRequest {\n oobCode: string;\n tenantId?: string;\n}\n\nexport interface ApplyActionCodeResponse {}\n\nexport async function applyActionCode(\n auth: Auth,\n request: ApplyActionCodeRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SET_ACCOUNT_INFO,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeOperation, Auth } from '../../model/public_types';\n\nimport {\n Endpoint,\n HttpMethod,\n RecaptchaClientType,\n RecaptchaVersion,\n _addTidIfNecessary,\n _performApiRequest,\n _performSignInRequest\n} from '../index';\nimport { IdToken, IdTokenResponse } from '../../model/id_token';\n\nexport interface SignInWithPasswordRequest {\n returnSecureToken?: boolean;\n email: string;\n password: string;\n tenantId?: string;\n captchaResponse?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface SignInWithPasswordResponse extends IdTokenResponse {\n email: string;\n displayName: string;\n}\n\nexport async function signInWithPassword(\n auth: Auth,\n request: SignInWithPasswordRequest\n): Promise {\n return _performSignInRequest<\n SignInWithPasswordRequest,\n SignInWithPasswordResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PASSWORD,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface GetOobCodeRequest {\n email?: string; // Everything except VERIFY_AND_CHANGE_EMAIL\n continueUrl?: string;\n iOSBundleId?: string;\n iosAppStoreId?: string;\n androidPackageName?: string;\n androidInstallApp?: boolean;\n androidMinimumVersionCode?: string;\n canHandleCodeInApp?: boolean;\n dynamicLinkDomain?: string;\n tenantId?: string;\n targetProjectid?: string;\n}\n\nexport interface VerifyEmailRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.VERIFY_EMAIL;\n idToken: IdToken;\n}\n\nexport interface PasswordResetRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.PASSWORD_RESET;\n email: string;\n captchaResp?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface EmailSignInRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.EMAIL_SIGNIN;\n email: string;\n captchaResp?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface VerifyAndChangeEmailRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;\n idToken: IdToken;\n newEmail: string;\n}\n\ninterface GetOobCodeResponse {\n email: string;\n}\n\nexport interface VerifyEmailResponse extends GetOobCodeResponse {}\nexport interface PasswordResetResponse extends GetOobCodeResponse {}\nexport interface EmailSignInResponse extends GetOobCodeResponse {}\nexport interface VerifyAndChangeEmailResponse extends GetOobCodeRequest {}\n\nasync function sendOobCode(\n auth: Auth,\n request: GetOobCodeRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SEND_OOB_CODE,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport async function sendEmailVerification(\n auth: Auth,\n request: VerifyEmailRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function sendPasswordResetEmail(\n auth: Auth,\n request: PasswordResetRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function sendSignInLinkToEmail(\n auth: Auth,\n request: EmailSignInRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function verifyAndChangeEmail(\n auth: Auth,\n request: VerifyAndChangeEmailRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\nimport { linkEmailPassword } from '../../api/account_management/email_and_password';\nimport {\n signInWithPassword,\n SignInWithPasswordRequest\n} from '../../api/authentication/email_and_password';\nimport {\n signInWithEmailLink,\n signInWithEmailLinkForLinking\n} from '../../api/authentication/email_link';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from '../util/assert';\nimport { AuthCredential } from './auth_credential';\nimport { handleRecaptchaFlow } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { RecaptchaActionName, RecaptchaClientType } from '../../api';\nimport { SignUpRequest } from '../../api/authentication/sign_up';\n/**\n * Interface that represents the credentials returned by {@link EmailAuthProvider} for\n * {@link ProviderId}.PASSWORD\n *\n * @remarks\n * Covers both {@link SignInMethod}.EMAIL_PASSWORD and\n * {@link SignInMethod}.EMAIL_LINK.\n *\n * @public\n */\nexport class EmailAuthCredential extends AuthCredential {\n /** @internal */\n private constructor(\n /** @internal */\n readonly _email: string,\n /** @internal */\n readonly _password: string,\n signInMethod: SignInMethod,\n /** @internal */\n readonly _tenantId: string | null = null\n ) {\n super(ProviderId.PASSWORD, signInMethod);\n }\n\n /** @internal */\n static _fromEmailAndPassword(\n email: string,\n password: string\n ): EmailAuthCredential {\n return new EmailAuthCredential(\n email,\n password,\n SignInMethod.EMAIL_PASSWORD\n );\n }\n\n /** @internal */\n static _fromEmailAndCode(\n email: string,\n oobCode: string,\n tenantId: string | null = null\n ): EmailAuthCredential {\n return new EmailAuthCredential(\n email,\n oobCode,\n SignInMethod.EMAIL_LINK,\n tenantId\n );\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n email: this._email,\n password: this._password,\n signInMethod: this.signInMethod,\n tenantId: this._tenantId\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an {@link AuthCredential}.\n *\n * @param json - Either `object` or the stringified representation of the object. When string is\n * provided, `JSON.parse` would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: object | string): EmailAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n if (obj?.email && obj?.password) {\n if (obj.signInMethod === SignInMethod.EMAIL_PASSWORD) {\n return this._fromEmailAndPassword(obj.email, obj.password);\n } else if (obj.signInMethod === SignInMethod.EMAIL_LINK) {\n return this._fromEmailAndCode(obj.email, obj.password, obj.tenantId);\n }\n }\n return null;\n }\n\n /** @internal */\n async _getIdTokenResponse(auth: AuthInternal): Promise {\n switch (this.signInMethod) {\n case SignInMethod.EMAIL_PASSWORD:\n const request: SignInWithPasswordRequest = {\n returnSecureToken: true,\n email: this._email,\n password: this._password,\n clientType: RecaptchaClientType.WEB\n };\n return handleRecaptchaFlow(\n auth,\n request,\n RecaptchaActionName.SIGN_IN_WITH_PASSWORD,\n signInWithPassword\n );\n case SignInMethod.EMAIL_LINK:\n return signInWithEmailLink(auth, {\n email: this._email,\n oobCode: this._password\n });\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n /** @internal */\n async _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n switch (this.signInMethod) {\n case SignInMethod.EMAIL_PASSWORD:\n const request: SignUpRequest = {\n idToken,\n returnSecureToken: true,\n email: this._email,\n password: this._password,\n clientType: RecaptchaClientType.WEB\n };\n return handleRecaptchaFlow(\n auth,\n request,\n RecaptchaActionName.SIGN_UP_PASSWORD,\n linkEmailPassword\n );\n case SignInMethod.EMAIL_LINK:\n return signInWithEmailLinkForLinking(auth, {\n idToken,\n email: this._email,\n oobCode: this._password\n });\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return this._getIdTokenResponse(auth);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performSignInRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithEmailLinkRequest {\n email: string;\n oobCode: string;\n tenantId?: string;\n}\n\nexport interface SignInWithEmailLinkResponse extends IdTokenResponse {\n email: string;\n isNewUser: boolean;\n}\n\nexport async function signInWithEmailLink(\n auth: Auth,\n request: SignInWithEmailLinkRequest\n): Promise {\n return _performSignInRequest<\n SignInWithEmailLinkRequest,\n SignInWithEmailLinkResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_EMAIL_LINK,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface SignInWithEmailLinkForLinkingRequest\n extends SignInWithEmailLinkRequest {\n idToken: string;\n}\n\nexport async function signInWithEmailLinkForLinking(\n auth: Auth,\n request: SignInWithEmailLinkForLinkingRequest\n): Promise {\n return _performSignInRequest<\n SignInWithEmailLinkForLinkingRequest,\n SignInWithEmailLinkResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_EMAIL_LINK,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performSignInRequest\n} from '../index';\nimport { IdToken, IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithIdpRequest {\n requestUri: string;\n postBody?: string;\n sessionId?: string;\n tenantId?: string;\n returnSecureToken: boolean;\n returnIdpCredential?: boolean;\n idToken?: IdToken;\n autoCreate?: boolean;\n pendingToken?: string;\n}\n\n/**\n * @internal\n */\nexport interface SignInWithIdpResponse extends IdTokenResponse {\n oauthAccessToken?: string;\n oauthTokenSecret?: string;\n nonce?: string;\n oauthIdToken?: string;\n pendingToken?: string;\n}\n\nexport async function signInWithIdp(\n auth: Auth,\n request: SignInWithIdpRequest\n): Promise {\n return _performSignInRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_IDP,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystring } from '@firebase/util';\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from '../util/assert';\nimport { AuthCredential } from './auth_credential';\n\nconst IDP_REQUEST_URI = 'http://localhost';\n\nexport interface OAuthCredentialParams {\n // OAuth 2 uses either id token or access token\n idToken?: string | null;\n accessToken?: string | null;\n\n // These fields are used with OAuth 1\n oauthToken?: string;\n secret?: string;\n oauthTokenSecret?: string;\n\n // Nonce is only set if pendingToken is not present\n nonce?: string;\n pendingToken?: string;\n\n // Utilities\n providerId: string;\n signInMethod: string;\n}\n\n/**\n * Represents the OAuth credentials returned by an {@link OAuthProvider}.\n *\n * @remarks\n * Implementations specify the details about each auth provider's credential requirements.\n *\n * @public\n */\nexport class OAuthCredential extends AuthCredential {\n /**\n * The OAuth ID token associated with the credential if it belongs to an OIDC provider,\n * such as `google.com`.\n * @readonly\n */\n idToken?: string;\n /**\n * The OAuth access token associated with the credential if it belongs to an\n * {@link OAuthProvider}, such as `facebook.com`, `twitter.com`, etc.\n * @readonly\n */\n accessToken?: string;\n /**\n * The OAuth access token secret associated with the credential if it belongs to an OAuth 1.0\n * provider, such as `twitter.com`.\n * @readonly\n */\n secret?: string;\n\n private nonce?: string;\n private pendingToken: string | null = null;\n\n /** @internal */\n static _fromParams(params: OAuthCredentialParams): OAuthCredential {\n const cred = new OAuthCredential(params.providerId, params.signInMethod);\n\n if (params.idToken || params.accessToken) {\n // OAuth 2 and either ID token or access token.\n if (params.idToken) {\n cred.idToken = params.idToken;\n }\n\n if (params.accessToken) {\n cred.accessToken = params.accessToken;\n }\n\n // Add nonce if available and no pendingToken is present.\n if (params.nonce && !params.pendingToken) {\n cred.nonce = params.nonce;\n }\n\n if (params.pendingToken) {\n cred.pendingToken = params.pendingToken;\n }\n } else if (params.oauthToken && params.oauthTokenSecret) {\n // OAuth 1 and OAuth token with token secret\n cred.accessToken = params.oauthToken;\n cred.secret = params.oauthTokenSecret;\n } else {\n _fail(AuthErrorCode.ARGUMENT_ERROR);\n }\n\n return cred;\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n idToken: this.idToken,\n accessToken: this.accessToken,\n secret: this.secret,\n nonce: this.nonce,\n pendingToken: this.pendingToken,\n providerId: this.providerId,\n signInMethod: this.signInMethod\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an\n * {@link AuthCredential}.\n *\n * @param json - Input can be either Object or the stringified representation of the object.\n * When string is provided, JSON.parse would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: string | object): OAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n const { providerId, signInMethod, ...rest }: OAuthCredentialParams = obj;\n if (!providerId || !signInMethod) {\n return null;\n }\n\n const cred = new OAuthCredential(providerId, signInMethod);\n cred.idToken = rest.idToken || undefined;\n cred.accessToken = rest.accessToken || undefined;\n cred.secret = rest.secret;\n cred.nonce = rest.nonce;\n cred.pendingToken = rest.pendingToken || null;\n return cred;\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n const request = this.buildRequest();\n request.idToken = idToken;\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n request.autoCreate = false;\n return signInWithIdp(auth, request);\n }\n\n private buildRequest(): SignInWithIdpRequest {\n const request: SignInWithIdpRequest = {\n requestUri: IDP_REQUEST_URI,\n returnSecureToken: true\n };\n\n if (this.pendingToken) {\n request.pendingToken = this.pendingToken;\n } else {\n const postBody: Record = {};\n if (this.idToken) {\n postBody['id_token'] = this.idToken;\n }\n if (this.accessToken) {\n postBody['access_token'] = this.accessToken;\n }\n if (this.secret) {\n postBody['oauth_token_secret'] = this.secret;\n }\n\n postBody['providerId'] = this.providerId;\n if (this.nonce && !this.pendingToken) {\n postBody['nonce'] = this.nonce;\n }\n\n request.postBody = querystring(postBody);\n }\n\n return request;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _makeTaggedError,\n _performApiRequest,\n _performSignInRequest\n} from '../index';\nimport { AuthErrorCode } from '../../core/errors';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { ServerError, ServerErrorMap } from '../errors';\nimport { Auth } from '../../model/public_types';\n\nexport interface SendPhoneVerificationCodeRequest {\n phoneNumber: string;\n recaptchaToken: string;\n tenantId?: string;\n}\n\nexport interface SendPhoneVerificationCodeResponse {\n sessionInfo: string;\n}\n\nexport async function sendPhoneVerificationCode(\n auth: Auth,\n request: SendPhoneVerificationCodeRequest\n): Promise {\n return _performApiRequest<\n SendPhoneVerificationCodeRequest,\n SendPhoneVerificationCodeResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SEND_VERIFICATION_CODE,\n _addTidIfNecessary(auth, request)\n );\n}\n\n/**\n * @internal\n */\nexport interface SignInWithPhoneNumberRequest {\n temporaryProof?: string;\n phoneNumber?: string;\n sessionInfo?: string;\n code?: string;\n tenantId?: string;\n}\n\nexport interface LinkWithPhoneNumberRequest\n extends SignInWithPhoneNumberRequest {\n idToken: string;\n}\n\n/**\n * @internal\n */\nexport interface SignInWithPhoneNumberResponse extends IdTokenResponse {\n temporaryProof?: string;\n phoneNumber?: string;\n}\n\nexport async function signInWithPhoneNumber(\n auth: Auth,\n request: SignInWithPhoneNumberRequest\n): Promise {\n return _performSignInRequest<\n SignInWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport async function linkWithPhoneNumber(\n auth: Auth,\n request: LinkWithPhoneNumberRequest\n): Promise {\n const response = await _performSignInRequest<\n LinkWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, request)\n );\n if (response.temporaryProof) {\n throw _makeTaggedError(auth, AuthErrorCode.NEED_CONFIRMATION, response);\n }\n return response;\n}\n\ninterface VerifyPhoneNumberForExistingRequest\n extends SignInWithPhoneNumberRequest {\n operation: 'REAUTH';\n}\n\nconst VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_: Partial<\n ServerErrorMap\n> = {\n [ServerError.USER_NOT_FOUND]: AuthErrorCode.USER_DELETED\n};\n\nexport async function verifyPhoneNumberForExisting(\n auth: Auth,\n request: SignInWithPhoneNumberRequest\n): Promise {\n const apiRequest: VerifyPhoneNumberForExistingRequest = {\n ...request,\n operation: 'REAUTH'\n };\n return _performSignInRequest<\n VerifyPhoneNumberForExistingRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, apiRequest),\n VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport {\n linkWithPhoneNumber,\n signInWithPhoneNumber,\n SignInWithPhoneNumberRequest,\n verifyPhoneNumberForExisting\n} from '../../api/authentication/sms';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthCredential } from './auth_credential';\n\nexport interface PhoneAuthCredentialParameters {\n verificationId?: string;\n verificationCode?: string;\n phoneNumber?: string;\n temporaryProof?: string;\n}\n\n/**\n * Represents the credentials returned by {@link PhoneAuthProvider}.\n *\n * @public\n */\nexport class PhoneAuthCredential extends AuthCredential {\n private constructor(private readonly params: PhoneAuthCredentialParameters) {\n super(ProviderId.PHONE, SignInMethod.PHONE);\n }\n\n /** @internal */\n static _fromVerification(\n verificationId: string,\n verificationCode: string\n ): PhoneAuthCredential {\n return new PhoneAuthCredential({ verificationId, verificationCode });\n }\n\n /** @internal */\n static _fromTokenResponse(\n phoneNumber: string,\n temporaryProof: string\n ): PhoneAuthCredential {\n return new PhoneAuthCredential({ phoneNumber, temporaryProof });\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n return signInWithPhoneNumber(auth, this._makeVerificationRequest());\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n return linkWithPhoneNumber(auth, {\n idToken,\n ...this._makeVerificationRequest()\n });\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return verifyPhoneNumberForExisting(auth, this._makeVerificationRequest());\n }\n\n /** @internal */\n _makeVerificationRequest(): SignInWithPhoneNumberRequest {\n const { temporaryProof, phoneNumber, verificationId, verificationCode } =\n this.params;\n if (temporaryProof && phoneNumber) {\n return { temporaryProof, phoneNumber };\n }\n\n return {\n sessionInfo: verificationId,\n code: verificationCode\n };\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n const obj: Record = {\n providerId: this.providerId\n };\n if (this.params.phoneNumber) {\n obj.phoneNumber = this.params.phoneNumber;\n }\n if (this.params.temporaryProof) {\n obj.temporaryProof = this.params.temporaryProof;\n }\n if (this.params.verificationCode) {\n obj.verificationCode = this.params.verificationCode;\n }\n if (this.params.verificationId) {\n obj.verificationId = this.params.verificationId;\n }\n\n return obj;\n }\n\n /** Generates a phone credential based on a plain object or a JSON string. */\n static fromJSON(json: object | string): PhoneAuthCredential | null {\n if (typeof json === 'string') {\n json = JSON.parse(json);\n }\n\n const { verificationId, verificationCode, phoneNumber, temporaryProof } =\n json as { [key: string]: string };\n if (\n !verificationCode &&\n !verificationId &&\n !phoneNumber &&\n !temporaryProof\n ) {\n return null;\n }\n\n return new PhoneAuthCredential({\n verificationId,\n verificationCode,\n phoneNumber,\n temporaryProof\n });\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { extractQuerystring, querystringDecode } from '@firebase/util';\nimport { ActionCodeOperation } from '../model/public_types';\nimport { AuthErrorCode } from './errors';\nimport { _assert } from './util/assert';\n\n/**\n * Enums for fields in URL query string.\n *\n * @enum {string}\n */\nconst enum QueryField {\n API_KEY = 'apiKey',\n CODE = 'oobCode',\n CONTINUE_URL = 'continueUrl',\n LANGUAGE_CODE = 'languageCode',\n MODE = 'mode',\n TENANT_ID = 'tenantId'\n}\n\n/**\n * Maps the mode string in action code URL to Action Code Info operation.\n *\n * @param mode\n */\nfunction parseMode(mode: string | null): ActionCodeOperation | null {\n switch (mode) {\n case 'recoverEmail':\n return ActionCodeOperation.RECOVER_EMAIL;\n case 'resetPassword':\n return ActionCodeOperation.PASSWORD_RESET;\n case 'signIn':\n return ActionCodeOperation.EMAIL_SIGNIN;\n case 'verifyEmail':\n return ActionCodeOperation.VERIFY_EMAIL;\n case 'verifyAndChangeEmail':\n return ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;\n case 'revertSecondFactorAddition':\n return ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION;\n default:\n return null;\n }\n}\n\n/**\n * Helper to parse FDL links\n *\n * @param url\n */\nfunction parseDeepLink(url: string): string {\n const link = querystringDecode(extractQuerystring(url))['link'];\n\n // Double link case (automatic redirect).\n const doubleDeepLink = link\n ? querystringDecode(extractQuerystring(link))['deep_link_id']\n : null;\n // iOS custom scheme links.\n const iOSDeepLink = querystringDecode(extractQuerystring(url))[\n 'deep_link_id'\n ];\n const iOSDoubleDeepLink = iOSDeepLink\n ? querystringDecode(extractQuerystring(iOSDeepLink))['link']\n : null;\n return iOSDoubleDeepLink || iOSDeepLink || doubleDeepLink || link || url;\n}\n\n/**\n * A utility class to parse email action URLs such as password reset, email verification,\n * email link sign in, etc.\n *\n * @public\n */\nexport class ActionCodeURL {\n /**\n * The API key of the email action link.\n */\n readonly apiKey: string;\n /**\n * The action code of the email action link.\n */\n readonly code: string;\n /**\n * The continue URL of the email action link. Null if not provided.\n */\n readonly continueUrl: string | null;\n /**\n * The language code of the email action link. Null if not provided.\n */\n readonly languageCode: string | null;\n /**\n * The action performed by the email action link. It returns from one of the types from\n * {@link ActionCodeInfo}\n */\n readonly operation: string;\n /**\n * The tenant ID of the email action link. Null if the email action is from the parent project.\n */\n readonly tenantId: string | null;\n\n /**\n * @param actionLink - The link from which to extract the URL.\n * @returns The {@link ActionCodeURL} object, or null if the link is invalid.\n *\n * @internal\n */\n constructor(actionLink: string) {\n const searchParams = querystringDecode(extractQuerystring(actionLink));\n const apiKey = searchParams[QueryField.API_KEY] ?? null;\n const code = searchParams[QueryField.CODE] ?? null;\n const operation = parseMode(searchParams[QueryField.MODE] ?? null);\n // Validate API key, code and mode.\n _assert(apiKey && code && operation, AuthErrorCode.ARGUMENT_ERROR);\n this.apiKey = apiKey;\n this.operation = operation;\n this.code = code;\n this.continueUrl = searchParams[QueryField.CONTINUE_URL] ?? null;\n this.languageCode = searchParams[QueryField.LANGUAGE_CODE] ?? null;\n this.tenantId = searchParams[QueryField.TENANT_ID] ?? null;\n }\n\n /**\n * Parses the email action link string and returns an {@link ActionCodeURL} if the link is valid,\n * otherwise returns null.\n *\n * @param link - The email action link string.\n * @returns The {@link ActionCodeURL} object, or null if the link is invalid.\n *\n * @public\n */\n static parseLink(link: string): ActionCodeURL | null {\n const actionLink = parseDeepLink(link);\n try {\n return new ActionCodeURL(actionLink);\n } catch {\n return null;\n }\n }\n}\n\n/**\n * Parses the email action link string and returns an {@link ActionCodeURL} if\n * the link is valid, otherwise returns null.\n *\n * @public\n */\nexport function parseActionCodeURL(link: string): ActionCodeURL | null {\n return ActionCodeURL.parseLink(link);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\nimport { AuthProvider } from '../../model/public_types';\n\nimport { ActionCodeURL } from '../action_code_url';\nimport { EmailAuthCredential } from '../credentials/email';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\n\n/**\n * Provider for generating {@link EmailAuthCredential}.\n *\n * @public\n */\nexport class EmailAuthProvider implements AuthProvider {\n /**\n * Always set to {@link ProviderId}.PASSWORD, even for email link.\n */\n static readonly PROVIDER_ID: 'password' = ProviderId.PASSWORD;\n /**\n * Always set to {@link SignInMethod}.EMAIL_PASSWORD.\n */\n static readonly EMAIL_PASSWORD_SIGN_IN_METHOD: 'password' =\n SignInMethod.EMAIL_PASSWORD;\n /**\n * Always set to {@link SignInMethod}.EMAIL_LINK.\n */\n static readonly EMAIL_LINK_SIGN_IN_METHOD: 'emailLink' =\n SignInMethod.EMAIL_LINK;\n /**\n * Always set to {@link ProviderId}.PASSWORD, even for email link.\n */\n readonly providerId = EmailAuthProvider.PROVIDER_ID;\n\n /**\n * Initialize an {@link AuthCredential} using an email and password.\n *\n * @example\n * ```javascript\n * const authCredential = EmailAuthProvider.credential(email, password);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * ```javascript\n * const userCredential = await signInWithEmailAndPassword(auth, email, password);\n * ```\n *\n * @param email - Email address.\n * @param password - User account password.\n * @returns The auth provider credential.\n */\n static credential(email: string, password: string): EmailAuthCredential {\n return EmailAuthCredential._fromEmailAndPassword(email, password);\n }\n\n /**\n * Initialize an {@link AuthCredential} using an email and an email link after a sign in with\n * email link operation.\n *\n * @example\n * ```javascript\n * const authCredential = EmailAuthProvider.credentialWithLink(auth, email, emailLink);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * ```javascript\n * await sendSignInLinkToEmail(auth, email);\n * // Obtain emailLink from user.\n * const userCredential = await signInWithEmailLink(auth, email, emailLink);\n * ```\n *\n * @param auth - The {@link Auth} instance used to verify the link.\n * @param email - Email address.\n * @param emailLink - Sign-in email link.\n * @returns - The auth provider credential.\n */\n static credentialWithLink(\n email: string,\n emailLink: string\n ): EmailAuthCredential {\n const actionCodeUrl = ActionCodeURL.parseLink(emailLink);\n _assert(actionCodeUrl, AuthErrorCode.ARGUMENT_ERROR);\n\n return EmailAuthCredential._fromEmailAndCode(\n email,\n actionCodeUrl.code,\n actionCodeUrl.tenantId\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider } from '../../model/public_types';\n\n/**\n * Map of OAuth Custom Parameters.\n *\n * @public\n */\nexport type CustomParameters = Record;\n\n/**\n * The base class for all Federated providers (OAuth (including OIDC), SAML).\n *\n * This class is not meant to be instantiated directly.\n *\n * @public\n */\nexport abstract class FederatedAuthProvider implements AuthProvider {\n /** @internal */\n defaultLanguageCode: string | null = null;\n /** @internal */\n private customParameters: CustomParameters = {};\n\n /**\n * Constructor for generic OAuth providers.\n *\n * @param providerId - Provider for which credentials should be generated.\n */\n constructor(readonly providerId: string) {}\n\n /**\n * Set the language gode.\n *\n * @param languageCode - language code\n */\n setDefaultLanguage(languageCode: string | null): void {\n this.defaultLanguageCode = languageCode;\n }\n\n /**\n * Sets the OAuth custom parameters to pass in an OAuth request for popup and redirect sign-in\n * operations.\n *\n * @remarks\n * For a detailed list, check the reserved required OAuth 2.0 parameters such as `client_id`,\n * `redirect_uri`, `scope`, `response_type`, and `state` are not allowed and will be ignored.\n *\n * @param customOAuthParameters - The custom OAuth parameters to pass in the OAuth request.\n */\n setCustomParameters(customOAuthParameters: CustomParameters): AuthProvider {\n this.customParameters = customOAuthParameters;\n return this;\n }\n\n /**\n * Retrieve the current list of {@link CustomParameters}.\n */\n getCustomParameters(): CustomParameters {\n return this.customParameters;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, UserCredential } from '../../model/public_types';\n\nimport { _assert } from '../util/assert';\nimport { AuthErrorCode } from '../errors';\n\nimport { OAuthCredential, OAuthCredentialParams } from '../credentials/oauth';\nimport { UserCredentialInternal } from '../../model/user';\nimport { FirebaseError } from '@firebase/util';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { SignInWithIdpResponse } from '../../../internal';\nimport { FederatedAuthProvider } from './federated';\n\n/**\n * Defines the options for initializing an {@link OAuthCredential}.\n *\n * @remarks\n * For ID tokens with nonce claim, the raw nonce has to also be provided.\n *\n * @public\n */\nexport interface OAuthCredentialOptions {\n /**\n * The OAuth ID token used to initialize the {@link OAuthCredential}.\n */\n idToken?: string;\n /**\n * The OAuth access token used to initialize the {@link OAuthCredential}.\n */\n accessToken?: string;\n /**\n * The raw nonce associated with the ID token.\n *\n * @remarks\n * It is required when an ID token with a nonce field is provided. The SHA-256 hash of the\n * raw nonce must match the nonce field in the ID token.\n */\n rawNonce?: string;\n}\n\n/**\n * Common code to all OAuth providers. This is separate from the\n * {@link OAuthProvider} so that child providers (like\n * {@link GoogleAuthProvider}) don't inherit the `credential` instance method.\n * Instead, they rely on a static `credential` method.\n */\nexport abstract class BaseOAuthProvider\n extends FederatedAuthProvider\n implements AuthProvider\n{\n /** @internal */\n private scopes: string[] = [];\n\n /**\n * Add an OAuth scope to the credential.\n *\n * @param scope - Provider OAuth scope to add.\n */\n addScope(scope: string): AuthProvider {\n // If not already added, add scope to list.\n if (!this.scopes.includes(scope)) {\n this.scopes.push(scope);\n }\n return this;\n }\n\n /**\n * Retrieve the current list of OAuth scopes.\n */\n getScopes(): string[] {\n return [...this.scopes];\n }\n}\n\n/**\n * Provider for generating generic {@link OAuthCredential}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new OAuthProvider('google.com');\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('profile');\n * provider.addScope('email');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a OAuth Access Token for the provider.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new OAuthProvider('google.com');\n * provider.addScope('profile');\n * provider.addScope('email');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a OAuth Access Token for the provider.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * ```\n * @public\n */\nexport class OAuthProvider extends BaseOAuthProvider {\n /**\n * Creates an {@link OAuthCredential} from a JSON string or a plain object.\n * @param json - A plain object or a JSON string\n */\n static credentialFromJSON(json: object | string): OAuthCredential {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n _assert(\n 'providerId' in obj && 'signInMethod' in obj,\n AuthErrorCode.ARGUMENT_ERROR\n );\n return OAuthCredential._fromParams(obj);\n }\n\n /**\n * Creates a {@link OAuthCredential} from a generic OAuth provider's access token or ID token.\n *\n * @remarks\n * The raw nonce is required when an ID token with a nonce field is provided. The SHA-256 hash of\n * the raw nonce must match the nonce field in the ID token.\n *\n * @example\n * ```javascript\n * // `googleUser` from the onsuccess Google Sign In callback.\n * // Initialize a generate OAuth provider with a `google.com` providerId.\n * const provider = new OAuthProvider('google.com');\n * const credential = provider.credential({\n * idToken: googleUser.getAuthResponse().id_token,\n * });\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param params - Either the options object containing the ID token, access token and raw nonce\n * or the ID token string.\n */\n credential(params: OAuthCredentialOptions): OAuthCredential {\n return this._credential({ ...params, nonce: params.rawNonce });\n }\n\n /** An internal credential method that accepts more permissive options */\n private _credential(\n params: Omit\n ): OAuthCredential {\n _assert(params.idToken || params.accessToken, AuthErrorCode.ARGUMENT_ERROR);\n // For OAuthCredential, sign in method is same as providerId.\n return OAuthCredential._fromParams({\n ...params,\n providerId: this.providerId,\n signInMethod: this.providerId\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return OAuthProvider.oauthCredentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return OAuthProvider.oauthCredentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static oauthCredentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const {\n oauthIdToken,\n oauthAccessToken,\n oauthTokenSecret,\n pendingToken,\n nonce,\n providerId\n } = tokenResponse as SignInWithIdpResponse;\n if (\n !oauthAccessToken &&\n !oauthTokenSecret &&\n !oauthIdToken &&\n !pendingToken\n ) {\n return null;\n }\n\n if (!providerId) {\n return null;\n }\n\n try {\n return new OAuthProvider(providerId)._credential({\n idToken: oauthIdToken,\n accessToken: oauthAccessToken,\n nonce,\n pendingToken\n });\n } catch (e) {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.FACEBOOK.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('user_birthday');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = FacebookAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * provider.addScope('user_birthday');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = FacebookAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n *\n * @public\n */\nexport class FacebookAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.FACEBOOK. */\n static readonly FACEBOOK_SIGN_IN_METHOD: 'facebook.com' =\n SignInMethod.FACEBOOK;\n /** Always set to {@link ProviderId}.FACEBOOK. */\n static readonly PROVIDER_ID: 'facebook.com' = ProviderId.FACEBOOK;\n\n constructor() {\n super(ProviderId.FACEBOOK);\n }\n\n /**\n * Creates a credential for Facebook.\n *\n * @example\n * ```javascript\n * // `event` from the Facebook auth.authResponseChange callback.\n * const credential = FacebookAuthProvider.credential(event.authResponse.accessToken);\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param accessToken - Facebook access token.\n */\n static credential(accessToken: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: FacebookAuthProvider.PROVIDER_ID,\n signInMethod: FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return FacebookAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return FacebookAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse || !('oauthAccessToken' in tokenResponse)) {\n return null;\n }\n\n if (!tokenResponse.oauthAccessToken) {\n return null;\n }\n\n try {\n return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.GOOGLE.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new GoogleAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('profile');\n * provider.addScope('email');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Google Access Token.\n * const credential = GoogleAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new GoogleAuthProvider();\n * provider.addScope('profile');\n * provider.addScope('email');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Google Access Token.\n * const credential = GoogleAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n *\n * @public\n */\nexport class GoogleAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.GOOGLE. */\n static readonly GOOGLE_SIGN_IN_METHOD: 'google.com' = SignInMethod.GOOGLE;\n /** Always set to {@link ProviderId}.GOOGLE. */\n static readonly PROVIDER_ID: 'google.com' = ProviderId.GOOGLE;\n\n constructor() {\n super(ProviderId.GOOGLE);\n this.addScope('profile');\n }\n\n /**\n * Creates a credential for Google. At least one of ID token and access token is required.\n *\n * @example\n * ```javascript\n * // \\`googleUser\\` from the onsuccess Google Sign In callback.\n * const credential = GoogleAuthProvider.credential(googleUser.getAuthResponse().id_token);\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param idToken - Google ID token.\n * @param accessToken - Google access token.\n */\n static credential(\n idToken?: string | null,\n accessToken?: string | null\n ): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: GoogleAuthProvider.PROVIDER_ID,\n signInMethod: GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD,\n idToken,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return GoogleAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return GoogleAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const { oauthIdToken, oauthAccessToken } =\n tokenResponse as SignInWithIdpResponse;\n if (!oauthIdToken && !oauthAccessToken) {\n // This could be an oauth 1 credential or a phone credential\n return null;\n }\n\n try {\n return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.GITHUB.\n *\n * @remarks\n * GitHub requires an OAuth 2.0 redirect, so you can either handle the redirect directly, or use\n * the {@link signInWithPopup} handler:\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new GithubAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('repo');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a GitHub Access Token.\n * const credential = GithubAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new GithubAuthProvider();\n * provider.addScope('repo');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a GitHub Access Token.\n * const credential = GithubAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n * @public\n */\nexport class GithubAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.GITHUB. */\n static readonly GITHUB_SIGN_IN_METHOD: 'github.com' = SignInMethod.GITHUB;\n /** Always set to {@link ProviderId}.GITHUB. */\n static readonly PROVIDER_ID: 'github.com' = ProviderId.GITHUB;\n\n constructor() {\n super(ProviderId.GITHUB);\n }\n\n /**\n * Creates a credential for GitHub.\n *\n * @param accessToken - GitHub access token.\n */\n static credential(accessToken: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: GithubAuthProvider.PROVIDER_ID,\n signInMethod: GithubAuthProvider.GITHUB_SIGN_IN_METHOD,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return GithubAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return GithubAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse || !('oauthAccessToken' in tokenResponse)) {\n return null;\n }\n\n if (!tokenResponse.oauthAccessToken) {\n return null;\n }\n\n try {\n return GithubAuthProvider.credential(tokenResponse.oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * Copyright 2020 Twitter LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.TWITTER.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new TwitterAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Twitter Access Token and Secret.\n * const credential = TwitterAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * const secret = credential.secret;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new TwitterAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Twitter Access Token and Secret.\n * const credential = TwitterAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * const secret = credential.secret;\n * ```\n *\n * @public\n */\nexport class TwitterAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.TWITTER. */\n static readonly TWITTER_SIGN_IN_METHOD: 'twitter.com' = SignInMethod.TWITTER;\n /** Always set to {@link ProviderId}.TWITTER. */\n static readonly PROVIDER_ID: 'twitter.com' = ProviderId.TWITTER;\n\n constructor() {\n super(ProviderId.TWITTER);\n }\n\n /**\n * Creates a credential for Twitter.\n *\n * @param token - Twitter access token.\n * @param secret - Twitter secret.\n */\n static credential(token: string, secret: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: TwitterAuthProvider.PROVIDER_ID,\n signInMethod: TwitterAuthProvider.TWITTER_SIGN_IN_METHOD,\n oauthToken: token,\n oauthTokenSecret: secret\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return TwitterAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return TwitterAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n const { oauthAccessToken, oauthTokenSecret } =\n tokenResponse as SignInWithIdpResponse;\n if (!oauthAccessToken || !oauthTokenSecret) {\n return null;\n }\n\n try {\n return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { UserImpl } from './user_impl';\nimport { AuthInternal } from '../../model/auth';\nimport { OperationType, ProviderId } from '../../model/enums';\n\ninterface UserCredentialParams {\n readonly user: UserInternal;\n readonly providerId: ProviderId | string | null;\n readonly _tokenResponse?: PhoneOrOauthTokenResponse;\n readonly operationType: OperationType;\n}\n\nexport class UserCredentialImpl\n implements UserCredentialInternal, UserCredentialParams\n{\n readonly user: UserInternal;\n readonly providerId: ProviderId | string | null;\n readonly _tokenResponse: PhoneOrOauthTokenResponse | undefined;\n readonly operationType: OperationType;\n\n constructor(params: UserCredentialParams) {\n this.user = params.user;\n this.providerId = params.providerId;\n this._tokenResponse = params._tokenResponse;\n this.operationType = params.operationType;\n }\n\n static async _fromIdTokenResponse(\n auth: AuthInternal,\n operationType: OperationType,\n idTokenResponse: IdTokenResponse,\n isAnonymous: boolean = false\n ): Promise {\n const user = await UserImpl._fromIdTokenResponse(\n auth,\n idTokenResponse,\n isAnonymous\n );\n const providerId = providerIdForResponse(idTokenResponse);\n const userCred = new UserCredentialImpl({\n user,\n providerId,\n _tokenResponse: idTokenResponse,\n operationType\n });\n return userCred;\n }\n\n static async _forOperation(\n user: UserInternal,\n operationType: OperationType,\n response: PhoneOrOauthTokenResponse\n ): Promise {\n await user._updateTokensIfNecessary(response, /* reload */ true);\n const providerId = providerIdForResponse(response);\n return new UserCredentialImpl({\n user,\n providerId,\n _tokenResponse: response,\n operationType\n });\n }\n}\n\nfunction providerIdForResponse(\n response: IdTokenResponse\n): ProviderId | string | null {\n if (response.providerId) {\n return response.providerId;\n }\n\n if ('phoneNumber' in response) {\n return ProviderId.PHONE;\n }\n\n return null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MultiFactorError as MultiFactorErrorPublic } from '../model/public_types';\nimport { FirebaseError } from '@firebase/util';\nimport { AuthInternal } from '../model/auth';\nimport { IdTokenResponse } from '../model/id_token';\nimport { AuthErrorCode } from '../core/errors';\nimport { UserInternal } from '../model/user';\nimport { AuthCredential } from '../core/credentials';\nimport { IdTokenMfaResponse } from '../api/authentication/mfa';\nimport { OperationType } from '../model/enums';\n\nexport type MultiFactorErrorData = MultiFactorErrorPublic['customData'] & {\n _serverResponse: IdTokenMfaResponse;\n};\n\nexport class MultiFactorError\n extends FirebaseError\n implements MultiFactorErrorPublic\n{\n readonly customData: MultiFactorErrorData;\n\n private constructor(\n auth: AuthInternal,\n error: FirebaseError,\n readonly operationType: OperationType,\n readonly user?: UserInternal\n ) {\n super(error.code, error.message);\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, MultiFactorError.prototype);\n this.customData = {\n appName: auth.name,\n tenantId: auth.tenantId ?? undefined,\n _serverResponse: error.customData!._serverResponse as IdTokenMfaResponse,\n operationType\n };\n }\n\n static _fromErrorAndOperation(\n auth: AuthInternal,\n error: FirebaseError,\n operationType: OperationType,\n user?: UserInternal\n ): MultiFactorError {\n return new MultiFactorError(auth, error, operationType, user);\n }\n}\n\nexport function _processCredentialSavingMfaContextIfNecessary(\n auth: AuthInternal,\n operationType: OperationType,\n credential: AuthCredential,\n user?: UserInternal\n): Promise {\n const idTokenProvider =\n operationType === OperationType.REAUTHENTICATE\n ? credential._getReauthenticationResolver(auth)\n : credential._getIdTokenResponse(auth);\n\n return idTokenProvider.catch(error => {\n if (error.code === `auth/${AuthErrorCode.MFA_REQUIRED}`) {\n throw MultiFactorError._fromErrorAndOperation(\n auth,\n error,\n operationType,\n user\n );\n }\n\n throw error;\n });\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User } from '../../model/public_types';\n\nimport { deleteLinkedAccounts } from '../../api/account_management/account';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { providerDataAsNames } from '../util/providers';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { _reloadWithoutSaving } from './reload';\nimport { UserCredentialImpl } from './user_credential_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType, ProviderId } from '../../model/enums';\n\n/**\n * Unlinks a provider from a user account.\n *\n * @param user - The user.\n * @param providerId - The provider to unlink.\n *\n * @public\n */\nexport async function unlink(user: User, providerId: string): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n await _assertLinkedStatus(true, userInternal, providerId);\n const { providerUserInfo } = await deleteLinkedAccounts(userInternal.auth, {\n idToken: await userInternal.getIdToken(),\n deleteProvider: [providerId]\n });\n\n const providersLeft = providerDataAsNames(providerUserInfo || []);\n\n userInternal.providerData = userInternal.providerData.filter(pd =>\n providersLeft.has(pd.providerId)\n );\n if (!providersLeft.has(ProviderId.PHONE)) {\n userInternal.phoneNumber = null;\n }\n\n await userInternal.auth._persistUserIfCurrent(userInternal);\n return userInternal;\n}\n\nexport async function _link(\n user: UserInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const response = await _logoutIfInvalidated(\n user,\n credential._linkToIdToken(user.auth, await user.getIdToken()),\n bypassAuthState\n );\n return UserCredentialImpl._forOperation(user, OperationType.LINK, response);\n}\n\nexport async function _assertLinkedStatus(\n expected: boolean,\n user: UserInternal,\n provider: string\n): Promise {\n await _reloadWithoutSaving(user);\n const providerIds = providerDataAsNames(user.providerData);\n\n const code =\n expected === false\n ? AuthErrorCode.PROVIDER_ALREADY_LINKED\n : AuthErrorCode.NO_SUCH_PROVIDER;\n _assert(providerIds.has(provider) === expected, user.auth, code);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { _processCredentialSavingMfaContextIfNecessary } from '../../mfa/mfa_error';\nimport { OperationType } from '../../model/enums';\nimport { UserInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { AuthErrorCode } from '../errors';\nimport { _assert, _fail } from '../util/assert';\nimport { _parseToken } from './id_token_result';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { UserCredentialImpl } from './user_credential_impl';\nimport { _isFirebaseServerApp } from '@firebase/app';\nimport { _serverAppCurrentUserOperationNotSupportedError } from '../../core/util/assert';\n\nexport async function _reauthenticate(\n user: UserInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const { auth } = user;\n if (_isFirebaseServerApp(auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(auth)\n );\n }\n const operationType = OperationType.REAUTHENTICATE;\n\n try {\n const response = await _logoutIfInvalidated(\n user,\n _processCredentialSavingMfaContextIfNecessary(\n auth,\n operationType,\n credential,\n user\n ),\n bypassAuthState\n );\n _assert(response.idToken, auth, AuthErrorCode.INTERNAL_ERROR);\n const parsed = _parseToken(response.idToken);\n _assert(parsed, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const { sub: localId } = parsed;\n _assert(user.uid === localId, auth, AuthErrorCode.USER_MISMATCH);\n\n return UserCredentialImpl._forOperation(user, operationType, response);\n } catch (e) {\n // Convert user deleted error into user mismatch\n if ((e as FirebaseError)?.code === `auth/${AuthErrorCode.USER_DELETED}`) {\n _fail(auth, AuthErrorCode.USER_MISMATCH);\n }\n throw e;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential, Auth, User } from '../../model/public_types';\n\nimport { _processCredentialSavingMfaContextIfNecessary } from '../../mfa/mfa_error';\nimport { AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { _assertLinkedStatus, _link } from '../user/link_unlink';\nimport { _reauthenticate } from '../user/reauthenticate';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _castAuth } from '../auth/auth_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../../model/enums';\nimport { _isFirebaseServerApp } from '@firebase/app';\nimport { _serverAppCurrentUserOperationNotSupportedError } from '../../core/util/assert';\n\nexport async function _signInWithCredential(\n auth: AuthInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n if (_isFirebaseServerApp(auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(auth)\n );\n }\n const operationType = OperationType.SIGN_IN;\n const response = await _processCredentialSavingMfaContextIfNecessary(\n auth,\n operationType,\n credential\n );\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n auth,\n operationType,\n response\n );\n\n if (!bypassAuthState) {\n await auth._updateCurrentUser(userCredential.user);\n }\n return userCredential;\n}\n\n/**\n * Asynchronously signs in with the given credentials.\n *\n * @remarks\n * An {@link AuthProvider} can be used to generate the credential.\n *\n * This method is not supported by {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * @param auth - The {@link Auth} instance.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function signInWithCredential(\n auth: Auth,\n credential: AuthCredential\n): Promise {\n return _signInWithCredential(_castAuth(auth), credential);\n}\n\n/**\n * Links the user account with the given credentials.\n *\n * @remarks\n * An {@link AuthProvider} can be used to generate the credential.\n *\n * @param user - The user.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function linkWithCredential(\n user: User,\n credential: AuthCredential\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n\n await _assertLinkedStatus(false, userInternal, credential.providerId);\n\n return _link(userInternal, credential);\n}\n\n/**\n * Re-authenticates a user using a fresh credential.\n *\n * @remarks\n * Use before operations such as {@link updatePassword} that require tokens from recent sign-in\n * attempts. This method can be used to recover from a `CREDENTIAL_TOO_OLD_LOGIN_AGAIN` error\n * or a `TOKEN_EXPIRED` error.\n *\n * This method is not supported on any {@link User} signed in by {@link Auth} instances\n * created with a {@link @firebase/app#FirebaseServerApp}.\n *\n * @param user - The user.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function reauthenticateWithCredential(\n user: User,\n credential: AuthCredential\n): Promise {\n return _reauthenticate(getModularInstance(user) as UserInternal, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ActionCodeInfo,\n ActionCodeOperation,\n ActionCodeSettings,\n Auth,\n UserCredential\n} from '../../model/public_types';\n\nimport * as account from '../../api/account_management/email_and_password';\nimport * as authentication from '../../api/authentication/email_and_password';\nimport { signUp, SignUpRequest } from '../../api/authentication/sign_up';\nimport { MultiFactorInfoImpl } from '../../mfa/mfa_info';\nimport { EmailAuthProvider } from '../providers/email';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport {\n _assert,\n _serverAppCurrentUserOperationNotSupportedError\n} from '../util/assert';\nimport { _setActionCodeSettingsOnRequest } from './action_code_settings';\nimport { signInWithCredential } from './credential';\nimport { _castAuth } from '../auth/auth_impl';\nimport { AuthErrorCode } from '../errors';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../../model/enums';\nimport { handleRecaptchaFlow } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { RecaptchaActionName, RecaptchaClientType } from '../../api';\nimport { _isFirebaseServerApp } from '@firebase/app';\n\n/**\n * Updates the password policy cached in the {@link Auth} instance if a policy is already\n * cached for the project or tenant.\n *\n * @remarks\n * We only fetch the password policy if the password did not meet policy requirements and\n * there is an existing policy cached. A developer must call validatePassword at least\n * once for the cache to be automatically updated.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @private\n */\nasync function recachePasswordPolicy(auth: Auth): Promise {\n const authInternal = _castAuth(auth);\n if (authInternal._getPasswordPolicyInternal()) {\n await authInternal._updatePasswordPolicy();\n }\n}\n\n/**\n * Sends a password reset email to the given email address. This method does not throw an error when\n * there's no user account with the given email address and\n * {@link https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection | Email Enumeration Protection}\n * is enabled.\n *\n * @remarks\n * To complete the password reset, call {@link confirmPasswordReset} with the code supplied in\n * the email sent to the user, along with the new password specified by the user.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendPasswordResetEmail(auth, 'user@example.com', actionCodeSettings);\n * // Obtain code from user.\n * await confirmPasswordReset('user@example.com', code);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function sendPasswordResetEmail(\n auth: Auth,\n email: string,\n actionCodeSettings?: ActionCodeSettings\n): Promise {\n const authInternal = _castAuth(auth);\n const request: authentication.PasswordResetRequest = {\n requestType: ActionCodeOperation.PASSWORD_RESET,\n email,\n clientType: RecaptchaClientType.WEB\n };\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(authInternal, request, actionCodeSettings);\n }\n await handleRecaptchaFlow(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n authentication.sendPasswordResetEmail\n );\n}\n\n/**\n * Completes the password reset process, given a confirmation code and new password.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A confirmation code sent to the user.\n * @param newPassword - The new password.\n *\n * @public\n */\nexport async function confirmPasswordReset(\n auth: Auth,\n oobCode: string,\n newPassword: string\n): Promise {\n await account\n .resetPassword(getModularInstance(auth), {\n oobCode,\n newPassword\n })\n .catch(async error => {\n if (\n error.code ===\n `auth/${AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS}`\n ) {\n void recachePasswordPolicy(auth);\n }\n\n throw error;\n });\n // Do not return the email.\n}\n\n/**\n * Applies a verification code sent to the user by email or other out-of-band mechanism.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A verification code sent to the user.\n *\n * @public\n */\nexport async function applyActionCode(\n auth: Auth,\n oobCode: string\n): Promise {\n await account.applyActionCode(getModularInstance(auth), { oobCode });\n}\n\n/**\n * Checks a verification code sent to the user by email or other out-of-band mechanism.\n *\n * @returns metadata about the code.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A verification code sent to the user.\n *\n * @public\n */\nexport async function checkActionCode(\n auth: Auth,\n oobCode: string\n): Promise {\n const authModular = getModularInstance(auth);\n const response = await account.resetPassword(authModular, { oobCode });\n\n // Email could be empty only if the request type is EMAIL_SIGNIN or\n // VERIFY_AND_CHANGE_EMAIL.\n // New email should not be empty if the request type is\n // VERIFY_AND_CHANGE_EMAIL.\n // Multi-factor info could not be empty if the request type is\n // REVERT_SECOND_FACTOR_ADDITION.\n const operation = response.requestType;\n _assert(operation, authModular, AuthErrorCode.INTERNAL_ERROR);\n switch (operation) {\n case ActionCodeOperation.EMAIL_SIGNIN:\n break;\n case ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL:\n _assert(response.newEmail, authModular, AuthErrorCode.INTERNAL_ERROR);\n break;\n case ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION:\n _assert(response.mfaInfo, authModular, AuthErrorCode.INTERNAL_ERROR);\n // fall through\n default:\n _assert(response.email, authModular, AuthErrorCode.INTERNAL_ERROR);\n }\n\n // The multi-factor info for revert second factor addition\n let multiFactorInfo: MultiFactorInfoImpl | null = null;\n if (response.mfaInfo) {\n multiFactorInfo = MultiFactorInfoImpl._fromServerResponse(\n _castAuth(authModular),\n response.mfaInfo\n );\n }\n\n return {\n data: {\n email:\n (response.requestType === ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL\n ? response.newEmail\n : response.email) || null,\n previousEmail:\n (response.requestType === ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL\n ? response.email\n : response.newEmail) || null,\n multiFactorInfo\n },\n operation\n };\n}\n\n/**\n * Checks a password reset code sent to the user by email or other out-of-band mechanism.\n *\n * @returns the user's email address if valid.\n *\n * @param auth - The {@link Auth} instance.\n * @param code - A verification code sent to the user.\n *\n * @public\n */\nexport async function verifyPasswordResetCode(\n auth: Auth,\n code: string\n): Promise {\n const { data } = await checkActionCode(getModularInstance(auth), code);\n // Email should always be present since a code was sent to it\n return data.email!;\n}\n\n/**\n * Creates a new user account associated with the specified email address and password.\n *\n * @remarks\n * On successful creation of the user account, this user will also be signed in to your application.\n *\n * User account creation can fail if the account already exists or the password is invalid.\n *\n * This method is not supported on {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * Note: The email address acts as a unique identifier for the user and enables an email-based\n * password reset. This function will create a new user account and set the initial user password.\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param password - The user's chosen password.\n *\n * @public\n */\nexport async function createUserWithEmailAndPassword(\n auth: Auth,\n email: string,\n password: string\n): Promise {\n if (_isFirebaseServerApp(auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(auth)\n );\n }\n const authInternal = _castAuth(auth);\n const request: SignUpRequest = {\n returnSecureToken: true,\n email,\n password,\n clientType: RecaptchaClientType.WEB\n };\n const signUpResponse: Promise = handleRecaptchaFlow(\n authInternal,\n request,\n RecaptchaActionName.SIGN_UP_PASSWORD,\n signUp\n );\n const response = await signUpResponse.catch(error => {\n if (\n error.code === `auth/${AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS}`\n ) {\n void recachePasswordPolicy(auth);\n }\n\n throw error;\n });\n\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n authInternal,\n OperationType.SIGN_IN,\n response\n );\n await authInternal._updateCurrentUser(userCredential.user);\n\n return userCredential;\n}\n\n/**\n * Asynchronously signs in using an email and password.\n *\n * @remarks\n * Fails with an error if the email address and password do not match. When\n * {@link https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection | Email Enumeration Protection}\n * is enabled, this method fails with \"auth/invalid-credential\" in case of an invalid\n * email/password.\n *\n * This method is not supported on {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * Note: The user's password is NOT the password used to access the user's email account. The\n * email address serves as a unique identifier for the user, and the password is used to access\n * the user's account in your Firebase project. See also: {@link createUserWithEmailAndPassword}.\n *\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The users email address.\n * @param password - The users password.\n *\n * @public\n */\nexport function signInWithEmailAndPassword(\n auth: Auth,\n email: string,\n password: string\n): Promise {\n if (_isFirebaseServerApp(auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(auth)\n );\n }\n return signInWithCredential(\n getModularInstance(auth),\n EmailAuthProvider.credential(email, password)\n ).catch(async error => {\n if (\n error.code === `auth/${AuthErrorCode.PASSWORD_DOES_NOT_MEET_REQUIREMENTS}`\n ) {\n void recachePasswordPolicy(auth);\n }\n\n throw error;\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n MultiFactorAssertion,\n MultiFactorInfo,\n MultiFactorSession,\n MultiFactorUser,\n User\n} from '../model/public_types';\n\nimport { withdrawMfa } from '../api/account_management/mfa';\nimport { _logoutIfInvalidated } from '../core/user/invalidation';\nimport { UserInternal } from '../model/user';\nimport { MultiFactorAssertionImpl } from './mfa_assertion';\nimport { MultiFactorInfoImpl } from './mfa_info';\nimport { MultiFactorSessionImpl } from './mfa_session';\nimport { getModularInstance } from '@firebase/util';\n\nexport class MultiFactorUserImpl implements MultiFactorUser {\n enrolledFactors: MultiFactorInfo[] = [];\n\n private constructor(readonly user: UserInternal) {\n user._onReload(userInfo => {\n if (userInfo.mfaInfo) {\n this.enrolledFactors = userInfo.mfaInfo.map(enrollment =>\n MultiFactorInfoImpl._fromServerResponse(user.auth, enrollment)\n );\n }\n });\n }\n\n static _fromUser(user: UserInternal): MultiFactorUserImpl {\n return new MultiFactorUserImpl(user);\n }\n\n async getSession(): Promise {\n return MultiFactorSessionImpl._fromIdtoken(\n await this.user.getIdToken(),\n this.user\n );\n }\n\n async enroll(\n assertionExtern: MultiFactorAssertion,\n displayName?: string | null\n ): Promise {\n const assertion = assertionExtern as MultiFactorAssertionImpl;\n const session = (await this.getSession()) as MultiFactorSessionImpl;\n const finalizeMfaResponse = await _logoutIfInvalidated(\n this.user,\n assertion._process(this.user.auth, session, displayName)\n );\n // New tokens will be issued after enrollment of the new second factors.\n // They need to be updated on the user.\n await this.user._updateTokensIfNecessary(finalizeMfaResponse);\n // The user needs to be reloaded to get the new multi-factor information\n // from server. USER_RELOADED event will be triggered and `enrolledFactors`\n // will be updated.\n return this.user.reload();\n }\n\n async unenroll(infoOrUid: MultiFactorInfo | string): Promise {\n const mfaEnrollmentId =\n typeof infoOrUid === 'string' ? infoOrUid : infoOrUid.uid;\n const idToken = await this.user.getIdToken();\n try {\n const idTokenResponse = await _logoutIfInvalidated(\n this.user,\n withdrawMfa(this.user.auth, {\n idToken,\n mfaEnrollmentId\n })\n );\n // Remove the second factor from the user's list.\n this.enrolledFactors = this.enrolledFactors.filter(\n ({ uid }) => uid !== mfaEnrollmentId\n );\n // Depending on whether the backend decided to revoke the user's session,\n // the tokenResponse may be empty. If the tokens were not updated (and they\n // are now invalid), reloading the user will discover this and invalidate\n // the user's state accordingly.\n await this.user._updateTokensIfNecessary(idTokenResponse);\n await this.user.reload();\n } catch (e) {\n throw e;\n }\n }\n}\n\nconst multiFactorUserCache = new WeakMap();\n\n/**\n * The {@link MultiFactorUser} corresponding to the user.\n *\n * @remarks\n * This is used to access all multi-factor properties and operations related to the user.\n *\n * @param user - The user.\n *\n * @public\n */\nexport function multiFactor(user: User): MultiFactorUser {\n const userModular = getModularInstance(user);\n if (!multiFactorUserCache.has(userModular)) {\n multiFactorUserCache.set(\n userModular,\n MultiFactorUserImpl._fromUser(userModular as UserInternal)\n );\n }\n return multiFactorUserCache.get(userModular)!;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Persistence } from '../../model/public_types';\n\nexport const enum PersistenceType {\n SESSION = 'SESSION',\n LOCAL = 'LOCAL',\n NONE = 'NONE'\n}\n\nexport type PersistedBlob = Record;\n\nexport interface Instantiator {\n (blob: PersistedBlob): T;\n}\n\nexport type PersistenceValue = PersistedBlob | string;\n\nexport const STORAGE_AVAILABLE_KEY = '__sak';\n\nexport interface StorageEventListener {\n (value: PersistenceValue | null): void;\n}\n\nexport interface PersistenceInternal extends Persistence {\n type: PersistenceType;\n _isAvailable(): Promise;\n _set(key: string, value: PersistenceValue): Promise;\n _get(key: string): Promise;\n _remove(key: string): Promise;\n _addListener(key: string, listener: StorageEventListener): void;\n _removeListener(key: string, listener: StorageEventListener): void;\n // Should this persistence allow migration up the chosen hierarchy?\n _shouldAllowMigration?: boolean;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n PersistenceValue,\n STORAGE_AVAILABLE_KEY,\n PersistenceType\n} from '../../core/persistence';\n\n// There are two different browser persistence types: local and session.\n// Both have the same implementation but use a different underlying storage\n// object.\n\nexport abstract class BrowserPersistenceClass {\n protected constructor(\n protected readonly storageRetriever: () => Storage,\n readonly type: PersistenceType\n ) {}\n\n _isAvailable(): Promise {\n try {\n if (!this.storage) {\n return Promise.resolve(false);\n }\n this.storage.setItem(STORAGE_AVAILABLE_KEY, '1');\n this.storage.removeItem(STORAGE_AVAILABLE_KEY);\n return Promise.resolve(true);\n } catch {\n return Promise.resolve(false);\n }\n }\n\n _set(key: string, value: PersistenceValue): Promise {\n this.storage.setItem(key, JSON.stringify(value));\n return Promise.resolve();\n }\n\n _get(key: string): Promise {\n const json = this.storage.getItem(key);\n return Promise.resolve(json ? JSON.parse(json) : null);\n }\n\n _remove(key: string): Promise {\n this.storage.removeItem(key);\n return Promise.resolve();\n }\n\n protected get storage(): Storage {\n return this.storageRetriever();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport { _isMobileBrowser, _isIE10 } from '../../core/util/browser';\nimport {\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n PersistenceValue,\n StorageEventListener\n} from '../../core/persistence';\nimport { BrowserPersistenceClass } from './browser';\n\n// The polling period in case events are not supported\nexport const _POLLING_INTERVAL_MS = 1000;\n\n// The IE 10 localStorage cross tab synchronization delay in milliseconds\nconst IE10_LOCAL_STORAGE_SYNC_DELAY = 10;\n\nclass BrowserLocalPersistence\n extends BrowserPersistenceClass\n implements InternalPersistence\n{\n static type: 'LOCAL' = 'LOCAL';\n\n constructor() {\n super(() => window.localStorage, PersistenceType.LOCAL);\n }\n\n private readonly boundEventHandler = (\n event: StorageEvent,\n poll?: boolean\n ): void => this.onStorageEvent(event, poll);\n private readonly listeners: Record> = {};\n private readonly localCache: Record = {};\n // setTimeout return value is platform specific\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private pollTimer: any | null = null;\n\n // Whether to use polling instead of depending on window events\n private readonly fallbackToPolling = _isMobileBrowser();\n readonly _shouldAllowMigration = true;\n\n private forAllChangedKeys(\n cb: (key: string, oldValue: string | null, newValue: string | null) => void\n ): void {\n // Check all keys with listeners on them.\n for (const key of Object.keys(this.listeners)) {\n // Get value from localStorage.\n const newValue = this.storage.getItem(key);\n const oldValue = this.localCache[key];\n // If local map value does not match, trigger listener with storage event.\n // Differentiate this simulated event from the real storage event.\n if (newValue !== oldValue) {\n cb(key, oldValue, newValue);\n }\n }\n }\n\n private onStorageEvent(event: StorageEvent, poll = false): void {\n // Key would be null in some situations, like when localStorage is cleared\n if (!event.key) {\n this.forAllChangedKeys(\n (key: string, _oldValue: string | null, newValue: string | null) => {\n this.notifyListeners(key, newValue);\n }\n );\n return;\n }\n\n const key = event.key;\n\n // Check the mechanism how this event was detected.\n // The first event will dictate the mechanism to be used.\n if (poll) {\n // Environment detects storage changes via polling.\n // Remove storage event listener to prevent possible event duplication.\n this.detachListener();\n } else {\n // Environment detects storage changes via storage event listener.\n // Remove polling listener to prevent possible event duplication.\n this.stopPolling();\n }\n\n const triggerListeners = (): void => {\n // Keep local map up to date in case storage event is triggered before\n // poll.\n const storedValue = this.storage.getItem(key);\n if (!poll && this.localCache[key] === storedValue) {\n // Real storage event which has already been detected, do nothing.\n // This seems to trigger in some IE browsers for some reason.\n return;\n }\n this.notifyListeners(key, storedValue);\n };\n\n const storedValue = this.storage.getItem(key);\n if (\n _isIE10() &&\n storedValue !== event.newValue &&\n event.newValue !== event.oldValue\n ) {\n // IE 10 has this weird bug where a storage event would trigger with the\n // correct key, oldValue and newValue but localStorage.getItem(key) does\n // not yield the updated value until a few milliseconds. This ensures\n // this recovers from that situation.\n setTimeout(triggerListeners, IE10_LOCAL_STORAGE_SYNC_DELAY);\n } else {\n triggerListeners();\n }\n }\n\n private notifyListeners(key: string, value: string | null): void {\n this.localCache[key] = value;\n const listeners = this.listeners[key];\n if (listeners) {\n for (const listener of Array.from(listeners)) {\n listener(value ? JSON.parse(value) : value);\n }\n }\n }\n\n private startPolling(): void {\n this.stopPolling();\n\n this.pollTimer = setInterval(() => {\n this.forAllChangedKeys(\n (key: string, oldValue: string | null, newValue: string | null) => {\n this.onStorageEvent(\n new StorageEvent('storage', {\n key,\n oldValue,\n newValue\n }),\n /* poll */ true\n );\n }\n );\n }, _POLLING_INTERVAL_MS);\n }\n\n private stopPolling(): void {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n }\n\n private attachListener(): void {\n window.addEventListener('storage', this.boundEventHandler);\n }\n\n private detachListener(): void {\n window.removeEventListener('storage', this.boundEventHandler);\n }\n\n _addListener(key: string, listener: StorageEventListener): void {\n if (Object.keys(this.listeners).length === 0) {\n // Whether browser can detect storage event when it had already been pushed to the background.\n // This may happen in some mobile browsers. A localStorage change in the foreground window\n // will not be detected in the background window via the storage event.\n // This was detected in iOS 7.x mobile browsers\n if (this.fallbackToPolling) {\n this.startPolling();\n } else {\n this.attachListener();\n }\n }\n if (!this.listeners[key]) {\n this.listeners[key] = new Set();\n // Populate the cache to avoid spuriously triggering on first poll.\n this.localCache[key] = this.storage.getItem(key);\n }\n this.listeners[key].add(listener);\n }\n\n _removeListener(key: string, listener: StorageEventListener): void {\n if (this.listeners[key]) {\n this.listeners[key].delete(listener);\n\n if (this.listeners[key].size === 0) {\n delete this.listeners[key];\n }\n }\n\n if (Object.keys(this.listeners).length === 0) {\n this.detachListener();\n this.stopPolling();\n }\n }\n\n // Update local cache on base operations:\n\n async _set(key: string, value: PersistenceValue): Promise {\n await super._set(key, value);\n this.localCache[key] = JSON.stringify(value);\n }\n\n async _get(key: string): Promise {\n const value = await super._get(key);\n this.localCache[key] = JSON.stringify(value);\n return value;\n }\n\n async _remove(key: string): Promise {\n await super._remove(key);\n delete this.localCache[key];\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type `LOCAL` using `localStorage`\n * for the underlying storage.\n *\n * @public\n */\nexport const browserLocalPersistence: Persistence = BrowserLocalPersistence;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport {\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n StorageEventListener\n} from '../../core/persistence';\nimport { BrowserPersistenceClass } from './browser';\n\nclass BrowserSessionPersistence\n extends BrowserPersistenceClass\n implements InternalPersistence\n{\n static type: 'SESSION' = 'SESSION';\n\n constructor() {\n super(() => window.sessionStorage, PersistenceType.SESSION);\n }\n\n _addListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for session storage since it cannot be shared across windows\n return;\n }\n\n _removeListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for session storage since it cannot be shared across windows\n return;\n }\n}\n\n/**\n * An implementation of {@link Persistence} of `SESSION` using `sessionStorage`\n * for the underlying storage.\n *\n * @public\n */\nexport const browserSessionPersistence: Persistence = BrowserSessionPersistence;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ReceiverHandler,\n _EventType,\n _ReceiverResponse,\n SenderMessageEvent,\n _Status,\n _SenderRequest\n} from './index';\nimport { _allSettled } from './promise';\n\n/**\n * Interface class for receiving messages.\n *\n */\nexport class Receiver {\n private static readonly receivers: Receiver[] = [];\n private readonly boundEventHandler: EventListener;\n\n private readonly handlersMap: {\n // TypeScript doesn't have existential types :(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [eventType: string]: Set>;\n } = {};\n\n constructor(private readonly eventTarget: EventTarget) {\n this.boundEventHandler = this.handleEvent.bind(this);\n }\n\n /**\n * Obtain an instance of a Receiver for a given event target, if none exists it will be created.\n *\n * @param eventTarget - An event target (such as window or self) through which the underlying\n * messages will be received.\n */\n static _getInstance(eventTarget: EventTarget): Receiver {\n // The results are stored in an array since objects can't be keys for other\n // objects. In addition, setting a unique property on an event target as a\n // hash map key may not be allowed due to CORS restrictions.\n const existingInstance = this.receivers.find(receiver =>\n receiver.isListeningto(eventTarget)\n );\n if (existingInstance) {\n return existingInstance;\n }\n const newInstance = new Receiver(eventTarget);\n this.receivers.push(newInstance);\n return newInstance;\n }\n\n private isListeningto(eventTarget: EventTarget): boolean {\n return this.eventTarget === eventTarget;\n }\n\n /**\n * Fans out a MessageEvent to the appropriate listeners.\n *\n * @remarks\n * Sends an {@link Status.ACK} upon receipt and a {@link Status.DONE} once all handlers have\n * finished processing.\n *\n * @param event - The MessageEvent.\n *\n */\n private async handleEvent<\n T extends _ReceiverResponse,\n S extends _SenderRequest\n >(event: Event): Promise {\n const messageEvent = event as MessageEvent>;\n const { eventId, eventType, data } = messageEvent.data;\n\n const handlers: Set> | undefined =\n this.handlersMap[eventType];\n if (!handlers?.size) {\n return;\n }\n\n messageEvent.ports[0].postMessage({\n status: _Status.ACK,\n eventId,\n eventType\n });\n\n const promises = Array.from(handlers).map(async handler =>\n handler(messageEvent.origin, data)\n );\n const response = await _allSettled(promises);\n messageEvent.ports[0].postMessage({\n status: _Status.DONE,\n eventId,\n eventType,\n response\n });\n }\n\n /**\n * Subscribe an event handler for a particular event.\n *\n * @param eventType - Event name to subscribe to.\n * @param eventHandler - The event handler which should receive the events.\n *\n */\n _subscribe(\n eventType: _EventType,\n eventHandler: ReceiverHandler\n ): void {\n if (Object.keys(this.handlersMap).length === 0) {\n this.eventTarget.addEventListener('message', this.boundEventHandler);\n }\n\n if (!this.handlersMap[eventType]) {\n this.handlersMap[eventType] = new Set();\n }\n\n this.handlersMap[eventType].add(eventHandler);\n }\n\n /**\n * Unsubscribe an event handler from a particular event.\n *\n * @param eventType - Event name to unsubscribe from.\n * @param eventHandler - Optional event handler, if none provided, unsubscribe all handlers on this event.\n *\n */\n _unsubscribe(\n eventType: _EventType,\n eventHandler?: ReceiverHandler\n ): void {\n if (this.handlersMap[eventType] && eventHandler) {\n this.handlersMap[eventType].delete(eventHandler);\n }\n if (!eventHandler || this.handlersMap[eventType].size === 0) {\n delete this.handlersMap[eventType];\n }\n\n if (Object.keys(this.handlersMap).length === 0) {\n this.eventTarget.removeEventListener('message', this.boundEventHandler);\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** TODO: remove this once tslib has a polyfill for Promise.allSettled */\ninterface PromiseFulfilledResult {\n fulfilled: true;\n value: T;\n}\n\ninterface PromiseRejectedResult {\n fulfilled: false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n reason: any;\n}\n\nexport type PromiseSettledResult =\n | PromiseFulfilledResult\n | PromiseRejectedResult;\n\n/**\n * Shim for Promise.allSettled, note the slightly different format of `fulfilled` vs `status`.\n *\n * @param promises - Array of promises to wait on.\n */\nexport function _allSettled(\n promises: Array>\n): Promise>> {\n return Promise.all(\n promises.map(async promise => {\n try {\n const value = await promise;\n return {\n fulfilled: true,\n value\n } as PromiseFulfilledResult;\n } catch (reason) {\n return {\n fulfilled: false,\n reason\n } as PromiseRejectedResult;\n }\n })\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function _generateEventId(prefix = '', digits = 10): string {\n let random = '';\n for (let i = 0; i < digits; i++) {\n random += Math.floor(Math.random() * 10);\n }\n return prefix + random;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _generateEventId } from '../../core/util/event_id';\nimport {\n _SenderRequest,\n _EventType,\n ReceiverMessageEvent,\n _MessageError,\n SenderMessageEvent,\n _Status,\n _ReceiverMessageResponse,\n _ReceiverResponse,\n _TimeoutDuration\n} from './index';\n\ninterface MessageHandler {\n messageChannel: MessageChannel;\n onMessage: EventListenerOrEventListenerObject;\n}\n\n/**\n * Interface for sending messages and waiting for a completion response.\n *\n */\nexport class Sender {\n private readonly handlers = new Set();\n\n constructor(private readonly target: ServiceWorker) {}\n\n /**\n * Unsubscribe the handler and remove it from our tracking Set.\n *\n * @param handler - The handler to unsubscribe.\n */\n private removeMessageHandler(handler: MessageHandler): void {\n if (handler.messageChannel) {\n handler.messageChannel.port1.removeEventListener(\n 'message',\n handler.onMessage\n );\n handler.messageChannel.port1.close();\n }\n this.handlers.delete(handler);\n }\n\n /**\n * Send a message to the Receiver located at {@link target}.\n *\n * @remarks\n * We'll first wait a bit for an ACK , if we get one we will wait significantly longer until the\n * receiver has had a chance to fully process the event.\n *\n * @param eventType - Type of event to send.\n * @param data - The payload of the event.\n * @param timeout - Timeout for waiting on an ACK from the receiver.\n *\n * @returns An array of settled promises from all the handlers that were listening on the receiver.\n */\n async _send(\n eventType: _EventType,\n data: S,\n timeout = _TimeoutDuration.ACK\n ): Promise<_ReceiverMessageResponse> {\n const messageChannel =\n typeof MessageChannel !== 'undefined' ? new MessageChannel() : null;\n if (!messageChannel) {\n throw new Error(_MessageError.CONNECTION_UNAVAILABLE);\n }\n // Node timers and browser timers return fundamentally different types.\n // We don't actually care what the value is but TS won't accept unknown and\n // we can't cast properly in both environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let completionTimer: any;\n let handler: MessageHandler;\n return new Promise<_ReceiverMessageResponse>((resolve, reject) => {\n const eventId = _generateEventId('', 20);\n messageChannel.port1.start();\n const ackTimer = setTimeout(() => {\n reject(new Error(_MessageError.UNSUPPORTED_EVENT));\n }, timeout);\n handler = {\n messageChannel,\n onMessage(event: Event): void {\n const messageEvent = event as MessageEvent>;\n if (messageEvent.data.eventId !== eventId) {\n return;\n }\n switch (messageEvent.data.status) {\n case _Status.ACK:\n // The receiver should ACK first.\n clearTimeout(ackTimer);\n completionTimer = setTimeout(() => {\n reject(new Error(_MessageError.TIMEOUT));\n }, _TimeoutDuration.COMPLETION);\n break;\n case _Status.DONE:\n // Once the receiver's handlers are finished we will get the results.\n clearTimeout(completionTimer);\n resolve(messageEvent.data.response);\n break;\n default:\n clearTimeout(ackTimer);\n clearTimeout(completionTimer);\n reject(new Error(_MessageError.INVALID_RESPONSE));\n break;\n }\n }\n };\n this.handlers.add(handler);\n messageChannel.port1.addEventListener('message', handler.onMessage);\n this.target.postMessage(\n {\n eventType,\n eventId,\n data\n } as SenderMessageEvent,\n [messageChannel.port2]\n );\n }).finally(() => {\n if (handler) {\n this.removeMessageHandler(handler);\n }\n });\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Recaptcha, GreCAPTCHATopLevel } from './recaptcha/recaptcha';\n\n/**\n * A specialized window type that melds the normal window type plus the\n * various bits we need. The three different blocks that are &'d together\n * cant be defined in the same block together.\n */\nexport type AuthWindow = {\n // Standard window types\n [T in keyof Window]: Window[T];\n} & {\n // Any known / named properties we want to add\n grecaptcha?: Recaptcha | GreCAPTCHATopLevel;\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n ___jsl?: Record;\n gapi?: typeof gapi;\n} & {\n // A final catch-all for callbacks (which will have random names) that\n // we will stick on the window.\n [callback: string]: (...args: unknown[]) => void;\n};\n\n/**\n * Lazy accessor for window, since the compat layer won't tree shake this out,\n * we need to make sure not to mess with window unless we have to\n */\nexport function _window(): AuthWindow {\n return window as unknown as AuthWindow;\n}\n\nexport function _setWindowLocation(url: string): void {\n _window().location.href = url;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _window } from '../auth_window';\n\nexport function _isWorker(): boolean {\n return (\n typeof _window()['WorkerGlobalScope'] !== 'undefined' &&\n typeof _window()['importScripts'] === 'function'\n );\n}\n\nexport async function _getActiveServiceWorker(): Promise {\n if (!navigator?.serviceWorker) {\n return null;\n }\n try {\n const registration = await navigator.serviceWorker.ready;\n return registration.active;\n } catch {\n return null;\n }\n}\n\nexport function _getServiceWorkerController(): ServiceWorker | null {\n return navigator?.serviceWorker?.controller || null;\n}\n\nexport function _getWorkerGlobalScope(): ServiceWorker | null {\n return _isWorker() ? (self as unknown as ServiceWorker) : null;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\nimport {\n PersistedBlob,\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n PersistenceValue,\n StorageEventListener,\n STORAGE_AVAILABLE_KEY\n} from '../../core/persistence/';\nimport {\n _EventType,\n _PingResponse,\n KeyChangedResponse,\n KeyChangedRequest,\n PingRequest,\n _TimeoutDuration\n} from '../messagechannel/index';\nimport { Receiver } from '../messagechannel/receiver';\nimport { Sender } from '../messagechannel/sender';\nimport {\n _isWorker,\n _getActiveServiceWorker,\n _getServiceWorkerController,\n _getWorkerGlobalScope\n} from '../util/worker';\n\nexport const DB_NAME = 'firebaseLocalStorageDb';\nconst DB_VERSION = 1;\nconst DB_OBJECTSTORE_NAME = 'firebaseLocalStorage';\nconst DB_DATA_KEYPATH = 'fbase_key';\n\ninterface DBObject {\n [DB_DATA_KEYPATH]: string;\n value: PersistedBlob;\n}\n\n/**\n * Promise wrapper for IDBRequest\n *\n * Unfortunately we can't cleanly extend Promise since promises are not callable in ES6\n *\n */\nclass DBPromise {\n constructor(private readonly request: IDBRequest) {}\n\n toPromise(): Promise {\n return new Promise((resolve, reject) => {\n this.request.addEventListener('success', () => {\n resolve(this.request.result);\n });\n this.request.addEventListener('error', () => {\n reject(this.request.error);\n });\n });\n }\n}\n\nfunction getObjectStore(db: IDBDatabase, isReadWrite: boolean): IDBObjectStore {\n return db\n .transaction([DB_OBJECTSTORE_NAME], isReadWrite ? 'readwrite' : 'readonly')\n .objectStore(DB_OBJECTSTORE_NAME);\n}\n\nexport async function _clearDatabase(db: IDBDatabase): Promise {\n const objectStore = getObjectStore(db, true);\n return new DBPromise(objectStore.clear()).toPromise();\n}\n\nexport function _deleteDatabase(): Promise {\n const request = indexedDB.deleteDatabase(DB_NAME);\n return new DBPromise(request).toPromise();\n}\n\nexport function _openDatabase(): Promise {\n const request = indexedDB.open(DB_NAME, DB_VERSION);\n return new Promise((resolve, reject) => {\n request.addEventListener('error', () => {\n reject(request.error);\n });\n\n request.addEventListener('upgradeneeded', () => {\n const db = request.result;\n\n try {\n db.createObjectStore(DB_OBJECTSTORE_NAME, { keyPath: DB_DATA_KEYPATH });\n } catch (e) {\n reject(e);\n }\n });\n\n request.addEventListener('success', async () => {\n const db: IDBDatabase = request.result;\n // Strange bug that occurs in Firefox when multiple tabs are opened at the\n // same time. The only way to recover seems to be deleting the database\n // and re-initializing it.\n // https://github.com/firebase/firebase-js-sdk/issues/634\n\n if (!db.objectStoreNames.contains(DB_OBJECTSTORE_NAME)) {\n // Need to close the database or else you get a `blocked` event\n db.close();\n await _deleteDatabase();\n resolve(await _openDatabase());\n } else {\n resolve(db);\n }\n });\n });\n}\n\nexport async function _putObject(\n db: IDBDatabase,\n key: string,\n value: PersistenceValue | string\n): Promise {\n const request = getObjectStore(db, true).put({\n [DB_DATA_KEYPATH]: key,\n value\n });\n return new DBPromise(request).toPromise();\n}\n\nasync function getObject(\n db: IDBDatabase,\n key: string\n): Promise {\n const request = getObjectStore(db, false).get(key);\n const data = await new DBPromise(request).toPromise();\n return data === undefined ? null : data.value;\n}\n\nexport function _deleteObject(db: IDBDatabase, key: string): Promise {\n const request = getObjectStore(db, true).delete(key);\n return new DBPromise(request).toPromise();\n}\n\nexport const _POLLING_INTERVAL_MS = 800;\nexport const _TRANSACTION_RETRY_COUNT = 3;\n\nclass IndexedDBLocalPersistence implements InternalPersistence {\n static type: 'LOCAL' = 'LOCAL';\n\n type = PersistenceType.LOCAL;\n db?: IDBDatabase;\n readonly _shouldAllowMigration = true;\n\n private readonly listeners: Record> = {};\n private readonly localCache: Record = {};\n // setTimeout return value is platform specific\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private pollTimer: any | null = null;\n private pendingWrites = 0;\n\n private receiver: Receiver | null = null;\n private sender: Sender | null = null;\n private serviceWorkerReceiverAvailable = false;\n private activeServiceWorker: ServiceWorker | null = null;\n // Visible for testing only\n readonly _workerInitializationPromise: Promise;\n\n constructor() {\n // Fire & forget the service worker registration as it may never resolve\n this._workerInitializationPromise =\n this.initializeServiceWorkerMessaging().then(\n () => {},\n () => {}\n );\n }\n\n async _openDb(): Promise {\n if (this.db) {\n return this.db;\n }\n this.db = await _openDatabase();\n return this.db;\n }\n\n async _withRetries(op: (db: IDBDatabase) => Promise): Promise {\n let numAttempts = 0;\n\n while (true) {\n try {\n const db = await this._openDb();\n return await op(db);\n } catch (e) {\n if (numAttempts++ > _TRANSACTION_RETRY_COUNT) {\n throw e;\n }\n if (this.db) {\n this.db.close();\n this.db = undefined;\n }\n // TODO: consider adding exponential backoff\n }\n }\n }\n\n /**\n * IndexedDB events do not propagate from the main window to the worker context. We rely on a\n * postMessage interface to send these events to the worker ourselves.\n */\n private async initializeServiceWorkerMessaging(): Promise {\n return _isWorker() ? this.initializeReceiver() : this.initializeSender();\n }\n\n /**\n * As the worker we should listen to events from the main window.\n */\n private async initializeReceiver(): Promise {\n this.receiver = Receiver._getInstance(_getWorkerGlobalScope()!);\n // Refresh from persistence if we receive a KeyChanged message.\n this.receiver._subscribe(\n _EventType.KEY_CHANGED,\n async (_origin: string, data: KeyChangedRequest) => {\n const keys = await this._poll();\n return {\n keyProcessed: keys.includes(data.key)\n };\n }\n );\n // Let the sender know that we are listening so they give us more timeout.\n this.receiver._subscribe(\n _EventType.PING,\n async (_origin: string, _data: PingRequest) => {\n return [_EventType.KEY_CHANGED];\n }\n );\n }\n\n /**\n * As the main window, we should let the worker know when keys change (set and remove).\n *\n * @remarks\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/ready | ServiceWorkerContainer.ready}\n * may not resolve.\n */\n private async initializeSender(): Promise {\n // Check to see if there's an active service worker.\n this.activeServiceWorker = await _getActiveServiceWorker();\n if (!this.activeServiceWorker) {\n return;\n }\n this.sender = new Sender(this.activeServiceWorker);\n // Ping the service worker to check what events they can handle.\n const results = await this.sender._send<_PingResponse, PingRequest>(\n _EventType.PING,\n {},\n _TimeoutDuration.LONG_ACK\n );\n if (!results) {\n return;\n }\n if (\n results[0]?.fulfilled &&\n results[0]?.value.includes(_EventType.KEY_CHANGED)\n ) {\n this.serviceWorkerReceiverAvailable = true;\n }\n }\n\n /**\n * Let the worker know about a changed key, the exact key doesn't technically matter since the\n * worker will just trigger a full sync anyway.\n *\n * @remarks\n * For now, we only support one service worker per page.\n *\n * @param key - Storage key which changed.\n */\n private async notifyServiceWorker(key: string): Promise {\n if (\n !this.sender ||\n !this.activeServiceWorker ||\n _getServiceWorkerController() !== this.activeServiceWorker\n ) {\n return;\n }\n try {\n await this.sender._send(\n _EventType.KEY_CHANGED,\n { key },\n // Use long timeout if receiver has previously responded to a ping from us.\n this.serviceWorkerReceiverAvailable\n ? _TimeoutDuration.LONG_ACK\n : _TimeoutDuration.ACK\n );\n } catch {\n // This is a best effort approach. Ignore errors.\n }\n }\n\n async _isAvailable(): Promise {\n try {\n if (!indexedDB) {\n return false;\n }\n const db = await _openDatabase();\n await _putObject(db, STORAGE_AVAILABLE_KEY, '1');\n await _deleteObject(db, STORAGE_AVAILABLE_KEY);\n return true;\n } catch {}\n return false;\n }\n\n private async _withPendingWrite(write: () => Promise): Promise {\n this.pendingWrites++;\n try {\n await write();\n } finally {\n this.pendingWrites--;\n }\n }\n\n async _set(key: string, value: PersistenceValue): Promise {\n return this._withPendingWrite(async () => {\n await this._withRetries((db: IDBDatabase) => _putObject(db, key, value));\n this.localCache[key] = value;\n return this.notifyServiceWorker(key);\n });\n }\n\n async _get(key: string): Promise {\n const obj = (await this._withRetries((db: IDBDatabase) =>\n getObject(db, key)\n )) as T;\n this.localCache[key] = obj;\n return obj;\n }\n\n async _remove(key: string): Promise {\n return this._withPendingWrite(async () => {\n await this._withRetries((db: IDBDatabase) => _deleteObject(db, key));\n delete this.localCache[key];\n return this.notifyServiceWorker(key);\n });\n }\n\n private async _poll(): Promise {\n // TODO: check if we need to fallback if getAll is not supported\n const result = await this._withRetries((db: IDBDatabase) => {\n const getAllRequest = getObjectStore(db, false).getAll();\n return new DBPromise(getAllRequest).toPromise();\n });\n\n if (!result) {\n return [];\n }\n\n // If we have pending writes in progress abort, we'll get picked up on the next poll\n if (this.pendingWrites !== 0) {\n return [];\n }\n\n const keys = [];\n const keysInResult = new Set();\n if (result.length !== 0) {\n for (const { fbase_key: key, value } of result) {\n keysInResult.add(key);\n if (JSON.stringify(this.localCache[key]) !== JSON.stringify(value)) {\n this.notifyListeners(key, value as PersistenceValue);\n keys.push(key);\n }\n }\n }\n\n for (const localKey of Object.keys(this.localCache)) {\n if (this.localCache[localKey] && !keysInResult.has(localKey)) {\n // Deleted\n this.notifyListeners(localKey, null);\n keys.push(localKey);\n }\n }\n return keys;\n }\n\n private notifyListeners(\n key: string,\n newValue: PersistenceValue | null\n ): void {\n this.localCache[key] = newValue;\n const listeners = this.listeners[key];\n if (listeners) {\n for (const listener of Array.from(listeners)) {\n listener(newValue);\n }\n }\n }\n\n private startPolling(): void {\n this.stopPolling();\n\n this.pollTimer = setInterval(\n async () => this._poll(),\n _POLLING_INTERVAL_MS\n );\n }\n\n private stopPolling(): void {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n }\n\n _addListener(key: string, listener: StorageEventListener): void {\n if (Object.keys(this.listeners).length === 0) {\n this.startPolling();\n }\n if (!this.listeners[key]) {\n this.listeners[key] = new Set();\n // Populate the cache to avoid spuriously triggering on first poll.\n void this._get(key); // This can happen in the background async and we can return immediately.\n }\n this.listeners[key].add(listener);\n }\n\n _removeListener(key: string, listener: StorageEventListener): void {\n if (this.listeners[key]) {\n this.listeners[key].delete(listener);\n\n if (this.listeners[key].size === 0) {\n delete this.listeners[key];\n }\n }\n\n if (Object.keys(this.listeners).length === 0) {\n this.stopPolling();\n }\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type `LOCAL` using `indexedDB`\n * for the underlying storage.\n *\n * @public\n */\nexport const indexedDBLocalPersistence: Persistence = IndexedDBLocalPersistence;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystring } from '@firebase/util';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert, _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as jsHelpers from '../load_js';\nimport { Recaptcha, isV2 } from './recaptcha';\nimport { MockReCaptcha } from './recaptcha_mock';\n\n// ReCaptcha will load using the same callback, so the callback function needs\n// to be kept around\nexport const _JSLOAD_CALLBACK = jsHelpers._generateCallbackName('rcb');\nconst NETWORK_TIMEOUT_DELAY = new Delay(30000, 60000);\n\n/**\n * We need to mark this interface as internal explicitly to exclude it in the public typings, because\n * it references AuthInternal which has a circular dependency with UserInternal.\n *\n * @internal\n */\nexport interface ReCaptchaLoader {\n load(auth: AuthInternal, hl?: string): Promise;\n clearedOneInstance(): void;\n}\n\n/**\n * Loader for the GReCaptcha library. There should only ever be one of this.\n */\nexport class ReCaptchaLoaderImpl implements ReCaptchaLoader {\n private hostLanguage = '';\n private counter = 0;\n /**\n * Check for `render()` method. `window.grecaptcha` will exist if the Enterprise\n * version of the ReCAPTCHA script was loaded by someone else (e.g. App Check) but\n * `window.grecaptcha.render()` will not. Another load will add it.\n */\n private readonly librarySeparatelyLoaded = !!_window().grecaptcha?.render;\n\n load(auth: AuthInternal, hl = ''): Promise {\n _assert(isHostLanguageValid(hl), auth, AuthErrorCode.ARGUMENT_ERROR);\n\n if (this.shouldResolveImmediately(hl) && isV2(_window().grecaptcha)) {\n return Promise.resolve(_window().grecaptcha! as Recaptcha);\n }\n return new Promise((resolve, reject) => {\n const networkTimeout = _window().setTimeout(() => {\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n }, NETWORK_TIMEOUT_DELAY.get());\n\n _window()[_JSLOAD_CALLBACK] = () => {\n _window().clearTimeout(networkTimeout);\n delete _window()[_JSLOAD_CALLBACK];\n\n const recaptcha = _window().grecaptcha as Recaptcha;\n\n if (!recaptcha || !isV2(recaptcha)) {\n reject(_createError(auth, AuthErrorCode.INTERNAL_ERROR));\n return;\n }\n\n // Wrap the recaptcha render function so that we know if the developer has\n // called it separately\n const render = recaptcha.render;\n recaptcha.render = (container, params) => {\n const widgetId = render(container, params);\n this.counter++;\n return widgetId;\n };\n\n this.hostLanguage = hl;\n resolve(recaptcha);\n };\n\n const url = `${jsHelpers._recaptchaV2ScriptUrl()}?${querystring({\n onload: _JSLOAD_CALLBACK,\n render: 'explicit',\n hl\n })}`;\n\n jsHelpers._loadJS(url).catch(() => {\n clearTimeout(networkTimeout);\n reject(_createError(auth, AuthErrorCode.INTERNAL_ERROR));\n });\n });\n }\n\n clearedOneInstance(): void {\n this.counter--;\n }\n\n private shouldResolveImmediately(hl: string): boolean {\n // We can resolve immediately if:\n // • grecaptcha is already defined AND (\n // 1. the requested language codes are the same OR\n // 2. there exists already a ReCaptcha on the page\n // 3. the library was already loaded by the app\n // In cases (2) and (3), we _can't_ reload as it would break the recaptchas\n // that are already in the page\n return (\n !!_window().grecaptcha?.render &&\n (hl === this.hostLanguage ||\n this.counter > 0 ||\n this.librarySeparatelyLoaded)\n );\n }\n}\n\nfunction isHostLanguageValid(hl: string): boolean {\n return hl.length <= 6 && /^\\s*[a-zA-Z0-9\\-]*\\s*$/.test(hl);\n}\n\nexport class MockReCaptchaLoaderImpl implements ReCaptchaLoader {\n async load(auth: AuthInternal): Promise {\n return new MockReCaptcha(auth);\n }\n\n clearedOneInstance(): void {}\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth, RecaptchaParameters } from '../../model/public_types';\nimport { getRecaptchaParams } from '../../api/authentication/recaptcha';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport { _isHttpOrHttps } from '../../core/util/location';\nimport { ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport { _isWorker } from '../util/worker';\nimport { Recaptcha } from './recaptcha';\nimport {\n MockReCaptchaLoaderImpl,\n ReCaptchaLoader,\n ReCaptchaLoaderImpl\n} from './recaptcha_loader';\n\nexport const RECAPTCHA_VERIFIER_TYPE = 'recaptcha';\n\nconst DEFAULT_PARAMS: RecaptchaParameters = {\n theme: 'light',\n type: 'image'\n};\n\ntype TokenCallback = (token: string) => void;\n\n/**\n * An {@link https://www.google.com/recaptcha/ | reCAPTCHA}-based application verifier.\n *\n * @remarks\n * `RecaptchaVerifier` does not work in a Node.js environment.\n *\n * @public\n */\nexport class RecaptchaVerifier implements ApplicationVerifierInternal {\n /**\n * The application verifier type.\n *\n * @remarks\n * For a reCAPTCHA verifier, this is 'recaptcha'.\n */\n readonly type = RECAPTCHA_VERIFIER_TYPE;\n private destroyed = false;\n private widgetId: number | null = null;\n private readonly container: HTMLElement;\n private readonly isInvisible: boolean;\n private readonly tokenChangeListeners = new Set();\n private renderPromise: Promise | null = null;\n private readonly auth: AuthInternal;\n\n /** @internal */\n readonly _recaptchaLoader: ReCaptchaLoader;\n private recaptcha: Recaptcha | null = null;\n\n /**\n * @param authExtern - The corresponding Firebase {@link Auth} instance.\n *\n * @param containerOrId - The reCAPTCHA container parameter.\n *\n * @remarks\n * This has different meaning depending on whether the reCAPTCHA is hidden or visible. For a\n * visible reCAPTCHA the container must be empty. If a string is used, it has to correspond to\n * an element ID. The corresponding element must also must be in the DOM at the time of\n * initialization.\n *\n * @param parameters - The optional reCAPTCHA parameters.\n *\n * @remarks\n * Check the reCAPTCHA docs for a comprehensive list. All parameters are accepted except for\n * the sitekey. Firebase Auth backend provisions a reCAPTCHA for each project and will\n * configure this upon rendering. For an invisible reCAPTCHA, a size key must have the value\n * 'invisible'.\n */\n constructor(\n authExtern: Auth,\n containerOrId: HTMLElement | string,\n private readonly parameters: RecaptchaParameters = {\n ...DEFAULT_PARAMS\n }\n ) {\n this.auth = _castAuth(authExtern);\n this.isInvisible = this.parameters.size === 'invisible';\n _assert(\n typeof document !== 'undefined',\n this.auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n const container =\n typeof containerOrId === 'string'\n ? document.getElementById(containerOrId)\n : containerOrId;\n _assert(container, this.auth, AuthErrorCode.ARGUMENT_ERROR);\n\n this.container = container;\n this.parameters.callback = this.makeTokenCallback(this.parameters.callback);\n\n this._recaptchaLoader = this.auth.settings.appVerificationDisabledForTesting\n ? new MockReCaptchaLoaderImpl()\n : new ReCaptchaLoaderImpl();\n\n this.validateStartingState();\n // TODO: Figure out if sdk version is needed\n }\n\n /**\n * Waits for the user to solve the reCAPTCHA and resolves with the reCAPTCHA token.\n *\n * @returns A Promise for the reCAPTCHA token.\n */\n async verify(): Promise {\n this.assertNotDestroyed();\n const id = await this.render();\n const recaptcha = this.getAssertedRecaptcha();\n\n const response = recaptcha.getResponse(id);\n if (response) {\n return response;\n }\n\n return new Promise(resolve => {\n const tokenChange = (token: string): void => {\n if (!token) {\n return; // Ignore token expirations.\n }\n this.tokenChangeListeners.delete(tokenChange);\n resolve(token);\n };\n\n this.tokenChangeListeners.add(tokenChange);\n if (this.isInvisible) {\n recaptcha.execute(id);\n }\n });\n }\n\n /**\n * Renders the reCAPTCHA widget on the page.\n *\n * @returns A Promise that resolves with the reCAPTCHA widget ID.\n */\n render(): Promise {\n try {\n this.assertNotDestroyed();\n } catch (e) {\n // This method returns a promise. Since it's not async (we want to return the\n // _same_ promise if rendering is still occurring), the API surface should\n // reject with the error rather than just throw\n return Promise.reject(e);\n }\n\n if (this.renderPromise) {\n return this.renderPromise;\n }\n\n this.renderPromise = this.makeRenderPromise().catch(e => {\n this.renderPromise = null;\n throw e;\n });\n\n return this.renderPromise;\n }\n\n /** @internal */\n _reset(): void {\n this.assertNotDestroyed();\n if (this.widgetId !== null) {\n this.getAssertedRecaptcha().reset(this.widgetId);\n }\n }\n\n /**\n * Clears the reCAPTCHA widget from the page and destroys the instance.\n */\n clear(): void {\n this.assertNotDestroyed();\n this.destroyed = true;\n this._recaptchaLoader.clearedOneInstance();\n if (!this.isInvisible) {\n this.container.childNodes.forEach(node => {\n this.container.removeChild(node);\n });\n }\n }\n\n private validateStartingState(): void {\n _assert(!this.parameters.sitekey, this.auth, AuthErrorCode.ARGUMENT_ERROR);\n _assert(\n this.isInvisible || !this.container.hasChildNodes(),\n this.auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n typeof document !== 'undefined',\n this.auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n }\n\n private makeTokenCallback(\n existing: TokenCallback | string | undefined\n ): TokenCallback {\n return token => {\n this.tokenChangeListeners.forEach(listener => listener(token));\n if (typeof existing === 'function') {\n existing(token);\n } else if (typeof existing === 'string') {\n const globalFunc = _window()[existing];\n if (typeof globalFunc === 'function') {\n globalFunc(token);\n }\n }\n };\n }\n\n private assertNotDestroyed(): void {\n _assert(!this.destroyed, this.auth, AuthErrorCode.INTERNAL_ERROR);\n }\n\n private async makeRenderPromise(): Promise {\n await this.init();\n if (!this.widgetId) {\n let container = this.container;\n if (!this.isInvisible) {\n const guaranteedEmpty = document.createElement('div');\n container.appendChild(guaranteedEmpty);\n container = guaranteedEmpty;\n }\n\n this.widgetId = this.getAssertedRecaptcha().render(\n container,\n this.parameters\n );\n }\n\n return this.widgetId;\n }\n\n private async init(): Promise {\n _assert(\n _isHttpOrHttps() && !_isWorker(),\n this.auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n\n await domReady();\n this.recaptcha = await this._recaptchaLoader.load(\n this.auth,\n this.auth.languageCode || undefined\n );\n\n const siteKey = await getRecaptchaParams(this.auth);\n _assert(siteKey, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.parameters.sitekey = siteKey;\n }\n\n private getAssertedRecaptcha(): Recaptcha {\n _assert(this.recaptcha, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return this.recaptcha;\n }\n}\n\nfunction domReady(): Promise {\n let resolver: (() => void) | null = null;\n return new Promise(resolve => {\n if (document.readyState === 'complete') {\n resolve();\n return;\n }\n\n // Document not ready, wait for load before resolving.\n // Save resolver, so we can remove listener in case it was externally\n // cancelled.\n resolver = () => resolve();\n window.addEventListener('load', resolver);\n }).catch(e => {\n if (resolver) {\n window.removeEventListener('load', resolver);\n }\n\n throw e;\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ApplicationVerifier,\n Auth,\n ConfirmationResult,\n PhoneInfoOptions,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { startEnrollPhoneMfa } from '../../api/account_management/mfa';\nimport { startSignInPhoneMfa } from '../../api/authentication/mfa';\nimport { sendPhoneVerificationCode } from '../../api/authentication/sms';\nimport { ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { PhoneAuthCredential } from '../../core/credentials/phone';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assertLinkedStatus, _link } from '../../core/user/link_unlink';\nimport {\n _assert,\n _serverAppCurrentUserOperationNotSupportedError\n} from '../../core/util/assert';\nimport { AuthInternal } from '../../model/auth';\nimport {\n linkWithCredential,\n reauthenticateWithCredential,\n signInWithCredential\n} from '../../core/strategies/credential';\nimport {\n MultiFactorSessionImpl,\n MultiFactorSessionType\n} from '../../mfa/mfa_session';\nimport { UserInternal } from '../../model/user';\nimport { RECAPTCHA_VERIFIER_TYPE } from '../recaptcha/recaptcha_verifier';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { ProviderId } from '../../model/enums';\nimport { _isFirebaseServerApp } from '@firebase/app';\n\ninterface OnConfirmationCallback {\n (credential: PhoneAuthCredential): Promise;\n}\n\nclass ConfirmationResultImpl implements ConfirmationResult {\n constructor(\n readonly verificationId: string,\n private readonly onConfirmation: OnConfirmationCallback\n ) {}\n\n confirm(verificationCode: string): Promise {\n const authCredential = PhoneAuthCredential._fromVerification(\n this.verificationId,\n verificationCode\n );\n return this.onConfirmation(authCredential);\n }\n}\n\n/**\n * Asynchronously signs in using a phone number.\n *\n * @remarks\n * This method sends a code via SMS to the given\n * phone number, and returns a {@link ConfirmationResult}. After the user\n * provides the code sent to their phone, call {@link ConfirmationResult.confirm}\n * with the code to sign the user in.\n *\n * For abuse prevention, this method also requires a {@link ApplicationVerifier}.\n * This SDK includes a reCAPTCHA-based implementation, {@link RecaptchaVerifier}.\n * This function can work on other platforms that do not support the\n * {@link RecaptchaVerifier} (like React Native), but you need to use a\n * third-party {@link ApplicationVerifier} implementation.\n *\n * This method does not work in a Node.js environment or with {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```javascript\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');\n * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain a verificationCode from the user.\n * const credential = await confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function signInWithPhoneNumber(\n auth: Auth,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n if (_isFirebaseServerApp(auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(auth)\n );\n }\n const authInternal = _castAuth(auth);\n const verificationId = await _verifyPhoneNumber(\n authInternal,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n signInWithCredential(authInternal, cred)\n );\n}\n\n/**\n * Links the user account with the given phone number.\n *\n * @remarks\n * This method does not work in a Node.js environment.\n *\n * @param user - The user.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function linkWithPhoneNumber(\n user: User,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n await _assertLinkedStatus(false, userInternal, ProviderId.PHONE);\n const verificationId = await _verifyPhoneNumber(\n userInternal.auth,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n linkWithCredential(userInternal, cred)\n );\n}\n\n/**\n * Re-authenticates a user using a fresh phone credential.\n *\n * @remarks\n * Use before operations such as {@link updatePassword} that require tokens from recent sign-in attempts.\n *\n * This method does not work in a Node.js environment or on any {@link User} signed in by\n * {@link Auth} instances created with a {@link @firebase/app#FirebaseServerApp}.\n *\n * @param user - The user.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function reauthenticateWithPhoneNumber(\n user: User,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n if (_isFirebaseServerApp(userInternal.auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(userInternal.auth)\n );\n }\n const verificationId = await _verifyPhoneNumber(\n userInternal.auth,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n reauthenticateWithCredential(userInternal, cred)\n );\n}\n\n/**\n * Returns a verification ID to be used in conjunction with the SMS code that is sent.\n *\n */\nexport async function _verifyPhoneNumber(\n auth: AuthInternal,\n options: PhoneInfoOptions | string,\n verifier: ApplicationVerifierInternal\n): Promise {\n const recaptchaToken = await verifier.verify();\n\n try {\n _assert(\n typeof recaptchaToken === 'string',\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n verifier.type === RECAPTCHA_VERIFIER_TYPE,\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n\n let phoneInfoOptions: PhoneInfoOptions;\n\n if (typeof options === 'string') {\n phoneInfoOptions = {\n phoneNumber: options\n };\n } else {\n phoneInfoOptions = options;\n }\n\n if ('session' in phoneInfoOptions) {\n const session = phoneInfoOptions.session as MultiFactorSessionImpl;\n\n if ('phoneNumber' in phoneInfoOptions) {\n _assert(\n session.type === MultiFactorSessionType.ENROLL,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const response = await startEnrollPhoneMfa(auth, {\n idToken: session.credential,\n phoneEnrollmentInfo: {\n phoneNumber: phoneInfoOptions.phoneNumber,\n recaptchaToken\n }\n });\n return response.phoneSessionInfo.sessionInfo;\n } else {\n _assert(\n session.type === MultiFactorSessionType.SIGN_IN,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const mfaEnrollmentId =\n phoneInfoOptions.multiFactorHint?.uid ||\n phoneInfoOptions.multiFactorUid;\n _assert(mfaEnrollmentId, auth, AuthErrorCode.MISSING_MFA_INFO);\n const response = await startSignInPhoneMfa(auth, {\n mfaPendingCredential: session.credential,\n mfaEnrollmentId,\n phoneSignInInfo: {\n recaptchaToken\n }\n });\n return response.phoneResponseInfo.sessionInfo;\n }\n } else {\n const { sessionInfo } = await sendPhoneVerificationCode(auth, {\n phoneNumber: phoneInfoOptions.phoneNumber,\n recaptchaToken\n });\n return sessionInfo;\n }\n } finally {\n verifier._reset();\n }\n}\n\n/**\n * Updates the user's phone number.\n *\n * @remarks\n * This method does not work in a Node.js environment or on any {@link User} signed in by\n * {@link Auth} instances created with a {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new RecaptchaVerifier('recaptcha-container');\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);\n * // Obtain the verificationCode from the user.\n * const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * await updatePhoneNumber(user, phoneCredential);\n * ```\n *\n * @param user - The user.\n * @param credential - A credential authenticating the new phone number.\n *\n * @public\n */\nexport async function updatePhoneNumber(\n user: User,\n credential: PhoneAuthCredential\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n if (_isFirebaseServerApp(userInternal.auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(userInternal.auth)\n );\n }\n await _link(userInternal, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { SignInWithPhoneNumberRequest } from '../authentication/sms';\nimport { FinalizeMfaResponse } from '../authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\n\n/**\n * MFA Info as returned by the API.\n */\ninterface BaseMfaEnrollment {\n mfaEnrollmentId: string;\n enrolledAt: number;\n displayName?: string;\n}\n\n/**\n * An MFA provided by SMS verification.\n */\nexport interface PhoneMfaEnrollment extends BaseMfaEnrollment {\n phoneInfo: string;\n}\n\n/**\n * An MFA provided by TOTP (Time-based One Time Password).\n */\nexport interface TotpMfaEnrollment extends BaseMfaEnrollment {}\n\n/**\n * MfaEnrollment can be any subtype of BaseMfaEnrollment, currently only PhoneMfaEnrollment and TotpMfaEnrollment are supported.\n */\nexport type MfaEnrollment = PhoneMfaEnrollment | TotpMfaEnrollment;\n\nexport interface StartPhoneMfaEnrollmentRequest {\n idToken: string;\n phoneEnrollmentInfo: {\n phoneNumber: string;\n recaptchaToken: string;\n };\n tenantId?: string;\n}\n\nexport interface StartPhoneMfaEnrollmentResponse {\n phoneSessionInfo: {\n sessionInfo: string;\n };\n}\n\nexport function startEnrollPhoneMfa(\n auth: AuthInternal,\n request: StartPhoneMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n StartPhoneMfaEnrollmentRequest,\n StartPhoneMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface FinalizePhoneMfaEnrollmentRequest {\n idToken: string;\n phoneVerificationInfo: SignInWithPhoneNumberRequest;\n displayName?: string | null;\n tenantId?: string;\n}\n\nexport interface FinalizePhoneMfaEnrollmentResponse\n extends FinalizeMfaResponse {}\n\nexport function finalizeEnrollPhoneMfa(\n auth: AuthInternal,\n request: FinalizePhoneMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n FinalizePhoneMfaEnrollmentRequest,\n FinalizePhoneMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\nexport interface StartTotpMfaEnrollmentRequest {\n idToken: string;\n totpEnrollmentInfo: {};\n tenantId?: string;\n}\n\nexport interface StartTotpMfaEnrollmentResponse {\n totpSessionInfo: {\n sharedSecretKey: string;\n verificationCodeLength: number;\n hashingAlgorithm: string;\n periodSec: number;\n sessionInfo: string;\n finalizeEnrollmentTime: number;\n };\n}\n\nexport function startEnrollTotpMfa(\n auth: AuthInternal,\n request: StartTotpMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n StartTotpMfaEnrollmentRequest,\n StartTotpMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface TotpVerificationInfo {\n sessionInfo: string;\n verificationCode: string;\n}\nexport interface FinalizeTotpMfaEnrollmentRequest {\n idToken: string;\n totpVerificationInfo: TotpVerificationInfo;\n displayName?: string | null;\n tenantId?: string;\n}\n\nexport interface FinalizeTotpMfaEnrollmentResponse\n extends FinalizeMfaResponse {}\n\nexport function finalizeEnrollTotpMfa(\n auth: AuthInternal,\n request: FinalizeTotpMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n FinalizeTotpMfaEnrollmentRequest,\n FinalizeTotpMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface WithdrawMfaRequest {\n idToken: string;\n mfaEnrollmentId: string;\n tenantId?: string;\n}\n\nexport interface WithdrawMfaResponse extends FinalizeMfaResponse {}\n\nexport function withdrawMfa(\n auth: AuthInternal,\n request: WithdrawMfaRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.WITHDRAW_MFA,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performApiRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { Auth } from '../../model/public_types';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { MfaEnrollment } from '../account_management/mfa';\nimport { SignInWithIdpResponse } from './idp';\nimport {\n SignInWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n} from './sms';\n\nexport interface FinalizeMfaResponse {\n idToken: string;\n refreshToken: string;\n}\n\n/**\n * @internal\n */\nexport interface IdTokenMfaResponse extends IdTokenResponse {\n mfaPendingCredential?: string;\n mfaInfo?: MfaEnrollment[];\n}\n\nexport interface StartPhoneMfaSignInRequest {\n mfaPendingCredential: string;\n mfaEnrollmentId: string;\n phoneSignInInfo: {\n recaptchaToken: string;\n };\n tenantId?: string;\n}\n\nexport interface StartPhoneMfaSignInResponse {\n phoneResponseInfo: {\n sessionInfo: string;\n };\n}\n\nexport function startSignInPhoneMfa(\n auth: Auth,\n request: StartPhoneMfaSignInRequest\n): Promise {\n return _performApiRequest<\n StartPhoneMfaSignInRequest,\n StartPhoneMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface FinalizePhoneMfaSignInRequest {\n mfaPendingCredential: string;\n phoneVerificationInfo: SignInWithPhoneNumberRequest;\n tenantId?: string;\n}\n\n// TOTP MFA Sign in only has a finalize phase. Phone MFA has a start phase to initiate sending an\n// SMS and a finalize phase to complete sign in. With TOTP, the user already has the OTP in the\n// TOTP/Authenticator app.\nexport interface FinalizeTotpMfaSignInRequest {\n mfaPendingCredential: string;\n totpVerificationInfo: { verificationCode: string };\n tenantId?: string;\n mfaEnrollmentId: string;\n}\n\nexport interface FinalizePhoneMfaSignInResponse extends FinalizeMfaResponse {}\n\nexport interface FinalizeTotpMfaSignInResponse extends FinalizeMfaResponse {}\n\nexport function finalizeSignInPhoneMfa(\n auth: Auth,\n request: FinalizePhoneMfaSignInRequest\n): Promise {\n return _performApiRequest<\n FinalizePhoneMfaSignInRequest,\n FinalizePhoneMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport function finalizeSignInTotpMfa(\n auth: Auth,\n request: FinalizeTotpMfaSignInRequest\n): Promise {\n return _performApiRequest<\n FinalizeTotpMfaSignInRequest,\n FinalizeTotpMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\n/**\n * @internal\n */\nexport type PhoneOrOauthTokenResponse =\n | SignInWithPhoneNumberResponse\n | SignInWithIdpResponse\n | IdTokenResponse;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n PhoneInfoOptions,\n ApplicationVerifier,\n UserCredential\n} from '../../model/public_types';\n\nimport { SignInWithPhoneNumberResponse } from '../../api/authentication/sms';\nimport { ApplicationVerifierInternal as ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { AuthInternal as AuthInternal } from '../../model/auth';\nimport { UserCredentialInternal as UserCredentialInternal } from '../../model/user';\nimport { PhoneAuthCredential } from '../../core/credentials/phone';\nimport { _verifyPhoneNumber } from '../strategies/phone';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthCredential } from '../../core';\nimport { FirebaseError, getModularInstance } from '@firebase/util';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link PhoneAuthCredential}.\n *\n * @remarks\n * `PhoneAuthProvider` does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new RecaptchaVerifier('recaptcha-container');\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);\n * // Obtain the verificationCode from the user.\n * const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = await signInWithCredential(auth, phoneCredential);\n * ```\n *\n * @public\n */\nexport class PhoneAuthProvider {\n /** Always set to {@link ProviderId}.PHONE. */\n static readonly PROVIDER_ID: 'phone' = ProviderId.PHONE;\n /** Always set to {@link SignInMethod}.PHONE. */\n static readonly PHONE_SIGN_IN_METHOD: 'phone' = SignInMethod.PHONE;\n\n /** Always set to {@link ProviderId}.PHONE. */\n readonly providerId = PhoneAuthProvider.PROVIDER_ID;\n private readonly auth: AuthInternal;\n\n /**\n * @param auth - The Firebase {@link Auth} instance in which sign-ins should occur.\n *\n */\n constructor(auth: Auth) {\n this.auth = _castAuth(auth);\n }\n\n /**\n *\n * Starts a phone number authentication flow by sending a verification code to the given phone\n * number.\n *\n * @example\n * ```javascript\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber(phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * An alternative flow is provided using the `signInWithPhoneNumber` method.\n * ```javascript\n * const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const userCredential = confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param phoneInfoOptions - The user's {@link PhoneInfoOptions}. The phone number should be in\n * E.164 format (e.g. +16505550101).\n * @param applicationVerifier - For abuse prevention, this method also requires a\n * {@link ApplicationVerifier}. This SDK includes a reCAPTCHA-based implementation,\n * {@link RecaptchaVerifier}.\n *\n * @returns A Promise for a verification ID that can be passed to\n * {@link PhoneAuthProvider.credential} to identify this flow..\n */\n verifyPhoneNumber(\n phoneOptions: PhoneInfoOptions | string,\n applicationVerifier: ApplicationVerifier\n ): Promise {\n return _verifyPhoneNumber(\n this.auth,\n phoneOptions,\n getModularInstance(applicationVerifier as ApplicationVerifierInternal)\n );\n }\n\n /**\n * Creates a phone auth credential, given the verification ID from\n * {@link PhoneAuthProvider.verifyPhoneNumber} and the code that was sent to the user's\n * mobile device.\n *\n * @example\n * ```javascript\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = provider.verifyPhoneNumber(phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * An alternative flow is provided using the `signInWithPhoneNumber` method.\n * ```javascript\n * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const userCredential = await confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param verificationId - The verification ID returned from {@link PhoneAuthProvider.verifyPhoneNumber}.\n * @param verificationCode - The verification code sent to the user's mobile device.\n *\n * @returns The auth provider credential.\n */\n static credential(\n verificationId: string,\n verificationCode: string\n ): PhoneAuthCredential {\n return PhoneAuthCredential._fromVerification(\n verificationId,\n verificationCode\n );\n }\n\n /**\n * Generates an {@link AuthCredential} from a {@link UserCredential}.\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): AuthCredential | null {\n const credential = userCredential as UserCredentialInternal;\n return PhoneAuthProvider.credentialFromTaggedObject(credential);\n }\n\n /**\n * Returns an {@link AuthCredential} when passed an error.\n *\n * @remarks\n *\n * This method works for errors like\n * `auth/account-exists-with-different-credentials`. This is useful for\n * recovering when attempting to set a user's phone number but the number\n * in question is already tied to another account. For example, the following\n * code tries to update the current user's phone number, and if that\n * fails, links the user with the account associated with that number:\n *\n * ```js\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber(number, verifier);\n * try {\n * const code = ''; // Prompt the user for the verification code\n * await updatePhoneNumber(\n * auth.currentUser,\n * PhoneAuthProvider.credential(verificationId, code));\n * } catch (e) {\n * if ((e as FirebaseError)?.code === 'auth/account-exists-with-different-credential') {\n * const cred = PhoneAuthProvider.credentialFromError(e);\n * await linkWithCredential(auth.currentUser, cred);\n * }\n * }\n *\n * // At this point, auth.currentUser.phoneNumber === number.\n * ```\n *\n * @param error - The error to generate a credential from.\n */\n static credentialFromError(error: FirebaseError): AuthCredential | null {\n return PhoneAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): AuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n const { phoneNumber, temporaryProof } =\n tokenResponse as SignInWithPhoneNumberResponse;\n if (phoneNumber && temporaryProof) {\n return PhoneAuthCredential._fromTokenResponse(\n phoneNumber,\n temporaryProof\n );\n }\n return null;\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PopupRedirectResolver } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\nimport { PopupRedirectResolverInternal } from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from './assert';\nimport { _getInstance } from './instantiator';\n\n/**\n * Chooses a popup/redirect resolver to use. This prefers the override (which\n * is directly passed in), and falls back to the property set on the auth\n * object. If neither are available, this function errors w/ an argument error.\n */\nexport function _withDefaultResolver(\n auth: AuthInternal,\n resolverOverride: PopupRedirectResolver | undefined\n): PopupRedirectResolverInternal {\n if (resolverOverride) {\n return _getInstance(resolverOverride);\n }\n\n _assert(auth._popupRedirectResolver, auth, AuthErrorCode.ARGUMENT_ERROR);\n\n return auth._popupRedirectResolver;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { _link as _linkUser } from '../user/link_unlink';\nimport { _reauthenticate } from '../user/reauthenticate';\nimport { _assert } from '../util/assert';\nimport { _signInWithCredential } from './credential';\nimport { AuthErrorCode } from '../errors';\nimport { ProviderId } from '../../model/enums';\n\nexport interface IdpTaskParams {\n auth: AuthInternal;\n requestUri: string;\n sessionId?: string;\n tenantId?: string;\n postBody?: string;\n pendingToken?: string;\n user?: UserInternal;\n bypassAuthState?: boolean;\n}\n\nexport type IdpTask = (\n params: IdpTaskParams\n) => Promise;\n\nclass IdpCredential extends AuthCredential {\n constructor(readonly params: IdpTaskParams) {\n super(ProviderId.CUSTOM, ProviderId.CUSTOM);\n }\n\n _getIdTokenResponse(auth: AuthInternal): Promise {\n return signInWithIdp(auth, this._buildIdpRequest());\n }\n\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n return signInWithIdp(auth, this._buildIdpRequest(idToken));\n }\n\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return signInWithIdp(auth, this._buildIdpRequest());\n }\n\n private _buildIdpRequest(idToken?: string): SignInWithIdpRequest {\n const request: SignInWithIdpRequest = {\n requestUri: this.params.requestUri,\n sessionId: this.params.sessionId,\n postBody: this.params.postBody,\n tenantId: this.params.tenantId,\n pendingToken: this.params.pendingToken,\n returnSecureToken: true,\n returnIdpCredential: true\n };\n\n if (idToken) {\n request.idToken = idToken;\n }\n\n return request;\n }\n}\n\nexport function _signIn(\n params: IdpTaskParams\n): Promise {\n return _signInWithCredential(\n params.auth,\n new IdpCredential(params),\n params.bypassAuthState\n ) as Promise;\n}\n\nexport function _reauth(\n params: IdpTaskParams\n): Promise {\n const { auth, user } = params;\n _assert(user, auth, AuthErrorCode.INTERNAL_ERROR);\n return _reauthenticate(\n user,\n new IdpCredential(params),\n params.bypassAuthState\n );\n}\n\nexport async function _link(\n params: IdpTaskParams\n): Promise {\n const { auth, user } = params;\n _assert(user, auth, AuthErrorCode.INTERNAL_ERROR);\n return _linkUser(user, new IdpCredential(params), params.bypassAuthState);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport {\n AuthEvent,\n AuthEventConsumer,\n AuthEventType,\n EventManager,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { debugAssert, _fail } from '../util/assert';\nimport {\n _link,\n _reauth,\n _signIn,\n IdpTask,\n IdpTaskParams\n} from '../strategies/idp';\nimport { AuthInternal } from '../../model/auth';\n\ninterface PendingPromise {\n resolve: (cred: UserCredentialInternal | null) => void;\n reject: (error: Error) => void;\n}\n\n/**\n * Popup event manager. Handles the popup's entire lifecycle; listens to auth\n * events\n */\nexport abstract class AbstractPopupRedirectOperation\n implements AuthEventConsumer\n{\n private pendingPromise: PendingPromise | null = null;\n private eventManager: EventManager | null = null;\n readonly filter: AuthEventType[];\n\n abstract eventId: string | null;\n\n constructor(\n protected readonly auth: AuthInternal,\n filter: AuthEventType | AuthEventType[],\n protected readonly resolver: PopupRedirectResolverInternal,\n protected user?: UserInternal,\n protected readonly bypassAuthState = false\n ) {\n this.filter = Array.isArray(filter) ? filter : [filter];\n }\n\n abstract onExecution(): Promise;\n\n execute(): Promise {\n return new Promise(\n async (resolve, reject) => {\n this.pendingPromise = { resolve, reject };\n\n try {\n this.eventManager = await this.resolver._initialize(this.auth);\n await this.onExecution();\n this.eventManager.registerConsumer(this);\n } catch (e) {\n this.reject(e as Error);\n }\n }\n );\n }\n\n async onAuthEvent(event: AuthEvent): Promise {\n const { urlResponse, sessionId, postBody, tenantId, error, type } = event;\n if (error) {\n this.reject(error);\n return;\n }\n\n const params: IdpTaskParams = {\n auth: this.auth,\n requestUri: urlResponse!,\n sessionId: sessionId!,\n tenantId: tenantId || undefined,\n postBody: postBody || undefined,\n user: this.user,\n bypassAuthState: this.bypassAuthState\n };\n\n try {\n this.resolve(await this.getIdpTask(type)(params));\n } catch (e) {\n this.reject(e as Error);\n }\n }\n\n onError(error: FirebaseError): void {\n this.reject(error);\n }\n\n private getIdpTask(type: AuthEventType): IdpTask {\n switch (type) {\n case AuthEventType.SIGN_IN_VIA_POPUP:\n case AuthEventType.SIGN_IN_VIA_REDIRECT:\n return _signIn;\n case AuthEventType.LINK_VIA_POPUP:\n case AuthEventType.LINK_VIA_REDIRECT:\n return _link;\n case AuthEventType.REAUTH_VIA_POPUP:\n case AuthEventType.REAUTH_VIA_REDIRECT:\n return _reauth;\n default:\n _fail(this.auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n protected resolve(cred: UserCredentialInternal | null): void {\n debugAssert(this.pendingPromise, 'Pending promise was never set');\n this.pendingPromise.resolve(cred);\n this.unregisterAndCleanUp();\n }\n\n protected reject(error: Error): void {\n debugAssert(this.pendingPromise, 'Pending promise was never set');\n this.pendingPromise.reject(error);\n this.unregisterAndCleanUp();\n }\n\n private unregisterAndCleanUp(): void {\n if (this.eventManager) {\n this.eventManager.unregisterConsumer(this);\n }\n\n this.pendingPromise = null;\n this.cleanUp();\n }\n\n abstract cleanUp(): void;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n AuthProvider,\n PopupRedirectResolver,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthErrorCode } from '../../core/errors';\nimport {\n _assert,\n debugAssert,\n _createError,\n _assertInstanceOf\n} from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { _generateEventId } from '../../core/util/event_id';\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport { _withDefaultResolver } from '../../core/util/resolver';\nimport { AuthPopup } from '../util/popup';\nimport { AbstractPopupRedirectOperation } from '../../core/strategies/abstract_popup_redirect_operation';\nimport { FederatedAuthProvider } from '../../core/providers/federated';\nimport { getModularInstance } from '@firebase/util';\nimport { _isFirebaseServerApp } from '@firebase/app';\n\n/*\n * The event timeout is the same on mobile and desktop, no need for Delay. Set this to 8s since\n * blocking functions can take upto 7s to complete sign in, as documented in:\n * https://cloud.google.com/identity-platform/docs/blocking-functions#understanding_blocking_functions\n * https://firebase.google.com/docs/auth/extend-with-blocking-functions#understanding_blocking_functions\n */\nexport const enum _Timeout {\n AUTH_EVENT = 8000\n}\nexport const _POLL_WINDOW_CLOSE_TIMEOUT = new Delay(2000, 10000);\n\n/**\n * Authenticates a Firebase client using a popup-based OAuth authentication flow.\n *\n * @remarks\n * If succeeds, returns the signed in user along with the provider's credential. If sign in was\n * unsuccessful, returns an error object containing additional information about the error.\n *\n * This method does not work in a Node.js environment or with {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function signInWithPopup(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n if (_isFirebaseServerApp(auth.app)) {\n return Promise.reject(\n _createError(auth, AuthErrorCode.OPERATION_NOT_SUPPORTED)\n );\n }\n const authInternal = _castAuth(auth);\n _assertInstanceOf(auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(authInternal, resolver);\n const action = new PopupOperation(\n authInternal,\n AuthEventType.SIGN_IN_VIA_POPUP,\n provider,\n resolverInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Reauthenticates the current user with the specified {@link OAuthProvider} using a pop-up based\n * OAuth flow.\n *\n * @remarks\n * If the reauthentication is successful, the returned result will contain the user and the\n * provider's credential.\n *\n * This method does not work in a Node.js environment or on any {@link User} signed in by\n * {@link Auth} instances created with a {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n * // Reauthenticate using a popup.\n * await reauthenticateWithPopup(result.user, provider);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function reauthenticateWithPopup(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n if (_isFirebaseServerApp(userInternal.auth.app)) {\n return Promise.reject(\n _createError(userInternal.auth, AuthErrorCode.OPERATION_NOT_SUPPORTED)\n );\n }\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n const action = new PopupOperation(\n userInternal.auth,\n AuthEventType.REAUTH_VIA_POPUP,\n provider,\n resolverInternal,\n userInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Links the authenticated provider to the user account using a pop-up based OAuth flow.\n *\n * @remarks\n * If the linking is successful, the returned result will contain the user and the provider's credential.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // Sign in using some other provider.\n * const result = await signInWithEmailAndPassword(auth, email, password);\n * // Link using a popup.\n * const provider = new FacebookAuthProvider();\n * await linkWithPopup(result.user, provider);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function linkWithPopup(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n\n const action = new PopupOperation(\n userInternal.auth,\n AuthEventType.LINK_VIA_POPUP,\n provider,\n resolverInternal,\n userInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Popup event manager. Handles the popup's entire lifecycle; listens to auth\n * events\n *\n */\nclass PopupOperation extends AbstractPopupRedirectOperation {\n // Only one popup is ever shown at once. The lifecycle of the current popup\n // can be managed / cancelled by the constructor.\n private static currentPopupAction: PopupOperation | null = null;\n private authWindow: AuthPopup | null = null;\n private pollId: number | null = null;\n\n constructor(\n auth: AuthInternal,\n filter: AuthEventType,\n private readonly provider: AuthProvider,\n resolver: PopupRedirectResolverInternal,\n user?: UserInternal\n ) {\n super(auth, filter, resolver, user);\n if (PopupOperation.currentPopupAction) {\n PopupOperation.currentPopupAction.cancel();\n }\n\n PopupOperation.currentPopupAction = this;\n }\n\n async executeNotNull(): Promise {\n const result = await this.execute();\n _assert(result, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return result;\n }\n\n async onExecution(): Promise {\n debugAssert(\n this.filter.length === 1,\n 'Popup operations only handle one event'\n );\n const eventId = _generateEventId();\n this.authWindow = await this.resolver._openPopup(\n this.auth,\n this.provider,\n this.filter[0], // There's always one, see constructor\n eventId\n );\n this.authWindow.associatedEvent = eventId;\n\n // Check for web storage support and origin validation _after_ the popup is\n // loaded. These operations are slow (~1 second or so) Rather than\n // waiting on them before opening the window, optimistically open the popup\n // and check for storage support at the same time. If storage support is\n // not available, this will cause the whole thing to reject properly. It\n // will also close the popup, but since the promise has already rejected,\n // the popup closed by user poll will reject into the void.\n this.resolver._originValidation(this.auth).catch(e => {\n this.reject(e);\n });\n\n this.resolver._isIframeWebStorageSupported(this.auth, isSupported => {\n if (!isSupported) {\n this.reject(\n _createError(this.auth, AuthErrorCode.WEB_STORAGE_UNSUPPORTED)\n );\n }\n });\n\n // Handle user closure. Notice this does *not* use await\n this.pollUserCancellation();\n }\n\n get eventId(): string | null {\n return this.authWindow?.associatedEvent || null;\n }\n\n cancel(): void {\n this.reject(_createError(this.auth, AuthErrorCode.EXPIRED_POPUP_REQUEST));\n }\n\n cleanUp(): void {\n if (this.authWindow) {\n this.authWindow.close();\n }\n\n if (this.pollId) {\n window.clearTimeout(this.pollId);\n }\n\n this.authWindow = null;\n this.pollId = null;\n PopupOperation.currentPopupAction = null;\n }\n\n private pollUserCancellation(): void {\n const poll = (): void => {\n if (this.authWindow?.window?.closed) {\n // Make sure that there is sufficient time for whatever action to\n // complete. The window could have closed but the sign in network\n // call could still be in flight. This is specifically true for\n // Firefox or if the opener is in an iframe, in which case the oauth\n // helper closes the popup.\n this.pollId = window.setTimeout(() => {\n this.pollId = null;\n this.reject(\n _createError(this.auth, AuthErrorCode.POPUP_CLOSED_BY_USER)\n );\n }, _Timeout.AUTH_EVENT);\n return;\n }\n\n this.pollId = window.setTimeout(poll, _POLL_WINDOW_CLOSE_TIMEOUT.get());\n };\n\n poll();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEvent,\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserCredentialInternal } from '../../model/user';\nimport { PersistenceInternal } from '../persistence';\nimport { _persistenceKeyName } from '../persistence/persistence_user_manager';\nimport { _getInstance } from '../util/instantiator';\nimport { AbstractPopupRedirectOperation } from './abstract_popup_redirect_operation';\n\nconst PENDING_REDIRECT_KEY = 'pendingRedirect';\n\n// We only get one redirect outcome for any one auth, so just store it\n// in here.\nconst redirectOutcomeMap: Map<\n string,\n () => Promise\n> = new Map();\n\nexport class RedirectAction extends AbstractPopupRedirectOperation {\n eventId = null;\n\n constructor(\n auth: AuthInternal,\n resolver: PopupRedirectResolverInternal,\n bypassAuthState = false\n ) {\n super(\n auth,\n [\n AuthEventType.SIGN_IN_VIA_REDIRECT,\n AuthEventType.LINK_VIA_REDIRECT,\n AuthEventType.REAUTH_VIA_REDIRECT,\n AuthEventType.UNKNOWN\n ],\n resolver,\n undefined,\n bypassAuthState\n );\n }\n\n /**\n * Override the execute function; if we already have a redirect result, then\n * just return it.\n */\n async execute(): Promise {\n let readyOutcome = redirectOutcomeMap.get(this.auth._key());\n if (!readyOutcome) {\n try {\n const hasPendingRedirect = await _getAndClearPendingRedirectStatus(\n this.resolver,\n this.auth\n );\n const result = hasPendingRedirect ? await super.execute() : null;\n readyOutcome = () => Promise.resolve(result);\n } catch (e) {\n readyOutcome = () => Promise.reject(e);\n }\n\n redirectOutcomeMap.set(this.auth._key(), readyOutcome);\n }\n\n // If we're not bypassing auth state, the ready outcome should be set to\n // null.\n if (!this.bypassAuthState) {\n redirectOutcomeMap.set(this.auth._key(), () => Promise.resolve(null));\n }\n\n return readyOutcome();\n }\n\n async onAuthEvent(event: AuthEvent): Promise {\n if (event.type === AuthEventType.SIGN_IN_VIA_REDIRECT) {\n return super.onAuthEvent(event);\n } else if (event.type === AuthEventType.UNKNOWN) {\n // This is a sentinel value indicating there's no pending redirect\n this.resolve(null);\n return;\n }\n\n if (event.eventId) {\n const user = await this.auth._redirectUserForId(event.eventId);\n if (user) {\n this.user = user;\n return super.onAuthEvent(event);\n } else {\n this.resolve(null);\n }\n }\n }\n\n async onExecution(): Promise {}\n\n cleanUp(): void {}\n}\n\nexport async function _getAndClearPendingRedirectStatus(\n resolver: PopupRedirectResolverInternal,\n auth: AuthInternal\n): Promise {\n const key = pendingRedirectKey(auth);\n const persistence = resolverPersistence(resolver);\n if (!(await persistence._isAvailable())) {\n return false;\n }\n const hasPendingRedirect = (await persistence._get(key)) === 'true';\n await persistence._remove(key);\n return hasPendingRedirect;\n}\n\nexport async function _setPendingRedirectStatus(\n resolver: PopupRedirectResolverInternal,\n auth: AuthInternal\n): Promise {\n return resolverPersistence(resolver)._set(pendingRedirectKey(auth), 'true');\n}\n\nexport function _clearRedirectOutcomes(): void {\n redirectOutcomeMap.clear();\n}\n\nexport function _overrideRedirectResult(\n auth: AuthInternal,\n result: () => Promise\n): void {\n redirectOutcomeMap.set(auth._key(), result);\n}\n\nfunction resolverPersistence(\n resolver: PopupRedirectResolverInternal\n): PersistenceInternal {\n return _getInstance(resolver._redirectPersistence);\n}\n\nfunction pendingRedirectKey(auth: AuthInternal): string {\n return _persistenceKeyName(\n PENDING_REDIRECT_KEY,\n auth.config.apiKey,\n auth.name\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n AuthProvider,\n PopupRedirectResolver,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { _assertLinkedStatus } from '../../core/user/link_unlink';\nimport {\n _assertInstanceOf,\n _serverAppCurrentUserOperationNotSupportedError\n} from '../../core/util/assert';\nimport { _generateEventId } from '../../core/util/event_id';\nimport { AuthEventType } from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport { _withDefaultResolver } from '../../core/util/resolver';\nimport {\n RedirectAction,\n _setPendingRedirectStatus\n} from '../../core/strategies/redirect';\nimport { FederatedAuthProvider } from '../../core/providers/federated';\nimport { getModularInstance } from '@firebase/util';\nimport { _isFirebaseServerApp } from '@firebase/app';\n\n/**\n * Authenticates a Firebase client using a full-page redirect flow.\n *\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link signInWithRedirect}.\n *\n * This method does not work in a Node.js environment or with {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // You can add additional scopes to the provider:\n * provider.addScope('user_birthday');\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * // As this API can be used for sign-in, linking and reauthentication,\n * // check the operationType to determine what triggered this redirect\n * // operation.\n * const operationType = result.operationType;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function signInWithRedirect(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _signInWithRedirect(auth, provider, resolver) as Promise;\n}\n\nexport async function _signInWithRedirect(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n if (_isFirebaseServerApp(auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(auth)\n );\n }\n const authInternal = _castAuth(auth);\n _assertInstanceOf(auth, provider, FederatedAuthProvider);\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await authInternal._initializationPromise;\n const resolverInternal = _withDefaultResolver(authInternal, resolver);\n await _setPendingRedirectStatus(resolverInternal, authInternal);\n\n return resolverInternal._openRedirect(\n authInternal,\n provider,\n AuthEventType.SIGN_IN_VIA_REDIRECT\n );\n}\n\n/**\n * Reauthenticates the current user with the specified {@link OAuthProvider} using a full-page redirect flow.\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link reauthenticateWithRedirect}.\n *\n * This method does not work in a Node.js environment or with {@link Auth} instances\n * created with a {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * // Reauthenticate using a redirect.\n * await reauthenticateWithRedirect(result.user, provider);\n * // This will again trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function reauthenticateWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _reauthenticateWithRedirect(\n user,\n provider,\n resolver\n ) as Promise;\n}\nexport async function _reauthenticateWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n if (_isFirebaseServerApp(userInternal.auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(userInternal.auth)\n );\n }\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await userInternal.auth._initializationPromise;\n // Allow the resolver to error before persisting the redirect user\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n await _setPendingRedirectStatus(resolverInternal, userInternal.auth);\n\n const eventId = await prepareUserForRedirect(userInternal);\n return resolverInternal._openRedirect(\n userInternal.auth,\n provider,\n AuthEventType.REAUTH_VIA_REDIRECT,\n eventId\n );\n}\n\n/**\n * Links the {@link OAuthProvider} to the user account using a full-page redirect flow.\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link linkWithRedirect}.\n *\n * This method does not work in a Node.js environment or with {@link Auth} instances\n * created with a {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```javascript\n * // Sign in using some other provider.\n * const result = await signInWithEmailAndPassword(auth, email, password);\n * // Link using a redirect.\n * const provider = new FacebookAuthProvider();\n * await linkWithRedirect(result.user, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function linkWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _linkWithRedirect(user, provider, resolver) as Promise;\n}\nexport async function _linkWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await userInternal.auth._initializationPromise;\n // Allow the resolver to error before persisting the redirect user\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n await _assertLinkedStatus(false, userInternal, provider.providerId);\n await _setPendingRedirectStatus(resolverInternal, userInternal.auth);\n\n const eventId = await prepareUserForRedirect(userInternal);\n return resolverInternal._openRedirect(\n userInternal.auth,\n provider,\n AuthEventType.LINK_VIA_REDIRECT,\n eventId\n );\n}\n\n/**\n * Returns a {@link UserCredential} from the redirect-based sign-in flow.\n *\n * @remarks\n * If sign-in succeeded, returns the signed in user. If sign-in was unsuccessful, fails with an\n * error. If no redirect operation was called, returns `null`.\n *\n * This method does not work in a Node.js environment or with {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // You can add additional scopes to the provider:\n * provider.addScope('user_birthday');\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * // As this API can be used for sign-in, linking and reauthentication,\n * // check the operationType to determine what triggered this redirect\n * // operation.\n * const operationType = result.operationType;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function getRedirectResult(\n auth: Auth,\n resolver?: PopupRedirectResolver\n): Promise {\n await _castAuth(auth)._initializationPromise;\n return _getRedirectResult(auth, resolver, false);\n}\n\nexport async function _getRedirectResult(\n auth: Auth,\n resolverExtern?: PopupRedirectResolver,\n bypassAuthState = false\n): Promise {\n if (_isFirebaseServerApp(auth.app)) {\n return Promise.reject(\n _serverAppCurrentUserOperationNotSupportedError(auth)\n );\n }\n const authInternal = _castAuth(auth);\n const resolver = _withDefaultResolver(authInternal, resolverExtern);\n const action = new RedirectAction(authInternal, resolver, bypassAuthState);\n const result = await action.execute();\n\n if (result && !bypassAuthState) {\n delete result.user._redirectEventId;\n await authInternal._persistUserIfCurrent(result.user as UserInternal);\n await authInternal._setRedirectUser(null, resolverExtern);\n }\n\n return result;\n}\n\nasync function prepareUserForRedirect(user: UserInternal): Promise {\n const eventId = _generateEventId(`${user.uid}:::`);\n user._redirectEventId = eventId;\n await user.auth._setRedirectUser(user);\n await user.auth._persistUserIfCurrent(user);\n return eventId;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AuthEvent,\n AuthEventConsumer,\n AuthEventType,\n EventManager\n} from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { AuthInternal } from '../../model/auth';\nimport { _createError } from '../util/assert';\n\n// The amount of time to store the UIDs of seen events; this is\n// set to 10 min by default\nconst EVENT_DUPLICATION_CACHE_DURATION_MS = 10 * 60 * 1000;\n\nexport class AuthEventManager implements EventManager {\n private readonly cachedEventUids: Set = new Set();\n private readonly consumers: Set = new Set();\n protected queuedRedirectEvent: AuthEvent | null = null;\n protected hasHandledPotentialRedirect = false;\n private lastProcessedEventTime = Date.now();\n\n constructor(private readonly auth: AuthInternal) {}\n\n registerConsumer(authEventConsumer: AuthEventConsumer): void {\n this.consumers.add(authEventConsumer);\n\n if (\n this.queuedRedirectEvent &&\n this.isEventForConsumer(this.queuedRedirectEvent, authEventConsumer)\n ) {\n this.sendToConsumer(this.queuedRedirectEvent, authEventConsumer);\n this.saveEventToCache(this.queuedRedirectEvent);\n this.queuedRedirectEvent = null;\n }\n }\n\n unregisterConsumer(authEventConsumer: AuthEventConsumer): void {\n this.consumers.delete(authEventConsumer);\n }\n\n onEvent(event: AuthEvent): boolean {\n // Check if the event has already been handled\n if (this.hasEventBeenHandled(event)) {\n return false;\n }\n\n let handled = false;\n this.consumers.forEach(consumer => {\n if (this.isEventForConsumer(event, consumer)) {\n handled = true;\n this.sendToConsumer(event, consumer);\n this.saveEventToCache(event);\n }\n });\n\n if (this.hasHandledPotentialRedirect || !isRedirectEvent(event)) {\n // If we've already seen a redirect before, or this is a popup event,\n // bail now\n return handled;\n }\n\n this.hasHandledPotentialRedirect = true;\n\n // If the redirect wasn't handled, hang on to it\n if (!handled) {\n this.queuedRedirectEvent = event;\n handled = true;\n }\n\n return handled;\n }\n\n private sendToConsumer(event: AuthEvent, consumer: AuthEventConsumer): void {\n if (event.error && !isNullRedirectEvent(event)) {\n const code =\n (event.error.code?.split('auth/')[1] as AuthErrorCode) ||\n AuthErrorCode.INTERNAL_ERROR;\n consumer.onError(_createError(this.auth, code));\n } else {\n consumer.onAuthEvent(event);\n }\n }\n\n private isEventForConsumer(\n event: AuthEvent,\n consumer: AuthEventConsumer\n ): boolean {\n const eventIdMatches =\n consumer.eventId === null ||\n (!!event.eventId && event.eventId === consumer.eventId);\n return consumer.filter.includes(event.type) && eventIdMatches;\n }\n\n private hasEventBeenHandled(event: AuthEvent): boolean {\n if (\n Date.now() - this.lastProcessedEventTime >=\n EVENT_DUPLICATION_CACHE_DURATION_MS\n ) {\n this.cachedEventUids.clear();\n }\n\n return this.cachedEventUids.has(eventUid(event));\n }\n\n private saveEventToCache(event: AuthEvent): void {\n this.cachedEventUids.add(eventUid(event));\n this.lastProcessedEventTime = Date.now();\n }\n}\n\nfunction eventUid(e: AuthEvent): string {\n return [e.type, e.eventId, e.sessionId, e.tenantId].filter(v => v).join('-');\n}\n\nfunction isNullRedirectEvent({ type, error }: AuthEvent): boolean {\n return (\n type === AuthEventType.UNKNOWN &&\n error?.code === `auth/${AuthErrorCode.NO_AUTH_EVENT}`\n );\n}\n\nfunction isRedirectEvent(event: AuthEvent): boolean {\n switch (event.type) {\n case AuthEventType.SIGN_IN_VIA_REDIRECT:\n case AuthEventType.LINK_VIA_REDIRECT:\n case AuthEventType.REAUTH_VIA_REDIRECT:\n return true;\n case AuthEventType.UNKNOWN:\n return isNullRedirectEvent(event);\n default:\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _getProjectConfig } from '../../api/project_config/get_project_config';\nimport { AuthInternal } from '../../model/auth';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from './assert';\nimport { _getCurrentUrl } from './location';\n\nconst IP_ADDRESS_REGEX = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\nconst HTTP_REGEX = /^https?/;\n\nexport async function _validateOrigin(auth: AuthInternal): Promise {\n // Skip origin validation if we are in an emulated environment\n if (auth.config.emulator) {\n return;\n }\n\n const { authorizedDomains } = await _getProjectConfig(auth);\n\n for (const domain of authorizedDomains) {\n try {\n if (matchDomain(domain)) {\n return;\n }\n } catch {\n // Do nothing if there's a URL error; just continue searching\n }\n }\n\n // In the old SDK, this error also provides helpful messages.\n _fail(auth, AuthErrorCode.INVALID_ORIGIN);\n}\n\nfunction matchDomain(expected: string): boolean {\n const currentUrl = _getCurrentUrl();\n const { protocol, hostname } = new URL(currentUrl);\n if (expected.startsWith('chrome-extension://')) {\n const ceUrl = new URL(expected);\n\n if (ceUrl.hostname === '' && hostname === '') {\n // For some reason we're not parsing chrome URLs properly\n return (\n protocol === 'chrome-extension:' &&\n expected.replace('chrome-extension://', '') ===\n currentUrl.replace('chrome-extension://', '')\n );\n }\n\n return protocol === 'chrome-extension:' && ceUrl.hostname === hostname;\n }\n\n if (!HTTP_REGEX.test(protocol)) {\n return false;\n }\n\n if (IP_ADDRESS_REGEX.test(expected)) {\n // The domain has to be exactly equal to the pattern, as an IP domain will\n // only contain the IP, no extra character.\n return hostname === expected;\n }\n\n // Dots in pattern should be escaped.\n const escapedDomainPattern = expected.replace(/\\./g, '\\\\.');\n // Non ip address domains.\n // domain.com = *.domain.com OR domain.com\n const re = new RegExp(\n '^(.+\\\\.' + escapedDomainPattern + '|' + escapedDomainPattern + ')$',\n 'i'\n );\n return re.test(hostname);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _performApiRequest, Endpoint, HttpMethod } from '../index';\nimport { Auth } from '../../model/public_types';\n\nexport interface GetProjectConfigRequest {\n androidPackageName?: string;\n iosBundleId?: string;\n}\n\nexport interface GetProjectConfigResponse {\n authorizedDomains: string[];\n}\n\nexport async function _getProjectConfig(\n auth: Auth,\n request: GetProjectConfigRequest = {}\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.GET,\n Endpoint.GET_PROJECT_CONFIG,\n request\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as js from '../load_js';\n\nconst NETWORK_TIMEOUT = new Delay(30000, 60000);\n\n/**\n * Reset unloaded GApi modules. If gapi.load fails due to a network error,\n * it will stop working after a retrial. This is a hack to fix this issue.\n */\nfunction resetUnloadedGapiModules(): void {\n // Clear last failed gapi.load state to force next gapi.load to first\n // load the failed gapi.iframes module.\n // Get gapix.beacon context.\n const beacon = _window().___jsl;\n // Get current hint.\n if (beacon?.H) {\n // Get gapi hint.\n for (const hint of Object.keys(beacon.H)) {\n // Requested modules.\n beacon.H[hint].r = beacon.H[hint].r || [];\n // Loaded modules.\n beacon.H[hint].L = beacon.H[hint].L || [];\n // Set requested modules to a copy of the loaded modules.\n beacon.H[hint].r = [...beacon.H[hint].L];\n // Clear pending callbacks.\n if (beacon.CP) {\n for (let i = 0; i < beacon.CP.length; i++) {\n // Remove all failed pending callbacks.\n beacon.CP[i] = null;\n }\n }\n }\n }\n}\n\nfunction loadGapi(auth: AuthInternal): Promise {\n return new Promise((resolve, reject) => {\n // Function to run when gapi.load is ready.\n function loadGapiIframe(): void {\n // The developer may have tried to previously run gapi.load and failed.\n // Run this to fix that.\n resetUnloadedGapiModules();\n gapi.load('gapi.iframes', {\n callback: () => {\n resolve(gapi.iframes.getContext());\n },\n ontimeout: () => {\n // The above reset may be sufficient, but having this reset after\n // failure ensures that if the developer calls gapi.load after the\n // connection is re-established and before another attempt to embed\n // the iframe, it would work and would not be broken because of our\n // failed attempt.\n // Timeout when gapi.iframes.Iframe not loaded.\n resetUnloadedGapiModules();\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n },\n timeout: NETWORK_TIMEOUT.get()\n });\n }\n\n if (_window().gapi?.iframes?.Iframe) {\n // If gapi.iframes.Iframe available, resolve.\n resolve(gapi.iframes.getContext());\n } else if (!!_window().gapi?.load) {\n // Gapi loader ready, load gapi.iframes.\n loadGapiIframe();\n } else {\n // Create a new iframe callback when this is called so as not to overwrite\n // any previous defined callback. This happens if this method is called\n // multiple times in parallel and could result in the later callback\n // overwriting the previous one. This would end up with a iframe\n // timeout.\n const cbName = js._generateCallbackName('iframefcb');\n // GApi loader not available, dynamically load platform.js.\n _window()[cbName] = () => {\n // GApi loader should be ready.\n if (!!gapi.load) {\n loadGapiIframe();\n } else {\n // Gapi loader failed, throw error.\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n }\n };\n // Load GApi loader.\n return js\n ._loadJS(`${js._gapiScriptUrl()}?onload=${cbName}`)\n .catch(e => reject(e));\n }\n }).catch(error => {\n // Reset cached promise to allow for retrial.\n cachedGApiLoader = null;\n throw error;\n });\n}\n\nlet cachedGApiLoader: Promise | null = null;\nexport function _loadGapi(auth: AuthInternal): Promise {\n cachedGApiLoader = cachedGApiLoader || loadGapi(auth);\n return cachedGApiLoader;\n}\n\nexport function _resetLoader(): void {\n cachedGApiLoader = null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { querystring } from '@firebase/util';\nimport { DefaultConfig } from '../../../internal';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert, _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { _emulatorUrl } from '../../core/util/emulator';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as gapiLoader from './gapi';\n\nconst PING_TIMEOUT = new Delay(5000, 15000);\nconst IFRAME_PATH = '__/auth/iframe';\nconst EMULATED_IFRAME_PATH = 'emulator/auth/iframe';\n\nconst IFRAME_ATTRIBUTES = {\n style: {\n position: 'absolute',\n top: '-100px',\n width: '1px',\n height: '1px'\n },\n 'aria-hidden': 'true',\n tabindex: '-1'\n};\n\n// Map from apiHost to endpoint ID for passing into iframe. In current SDK, apiHost can be set to\n// anything (not from a list of endpoints with IDs as in legacy), so this is the closest we can get.\nconst EID_FROM_APIHOST = new Map([\n [DefaultConfig.API_HOST, 'p'], // production\n ['staging-identitytoolkit.sandbox.googleapis.com', 's'], // staging\n ['test-identitytoolkit.sandbox.googleapis.com', 't'] // test\n]);\n\nfunction getIframeUrl(auth: AuthInternal): string {\n const config = auth.config;\n _assert(config.authDomain, auth, AuthErrorCode.MISSING_AUTH_DOMAIN);\n const url = config.emulator\n ? _emulatorUrl(config, EMULATED_IFRAME_PATH)\n : `https://${auth.config.authDomain}/${IFRAME_PATH}`;\n\n const params: Record = {\n apiKey: config.apiKey,\n appName: auth.name,\n v: SDK_VERSION\n };\n const eid = EID_FROM_APIHOST.get(auth.config.apiHost);\n if (eid) {\n params.eid = eid;\n }\n const frameworks = auth._getFrameworks();\n if (frameworks.length) {\n params.fw = frameworks.join(',');\n }\n return `${url}?${querystring(params).slice(1)}`;\n}\n\nexport async function _openIframe(\n auth: AuthInternal\n): Promise {\n const context = await gapiLoader._loadGapi(auth);\n const gapi = _window().gapi;\n _assert(gapi, auth, AuthErrorCode.INTERNAL_ERROR);\n return context.open(\n {\n where: document.body,\n url: getIframeUrl(auth),\n messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER,\n attributes: IFRAME_ATTRIBUTES,\n dontclear: true\n },\n (iframe: gapi.iframes.Iframe) =>\n new Promise(async (resolve, reject) => {\n await iframe.restyle({\n // Prevent iframe from closing on mouse out.\n setHideOnLeave: false\n });\n\n const networkError = _createError(\n auth,\n AuthErrorCode.NETWORK_REQUEST_FAILED\n );\n // Confirm iframe is correctly loaded.\n // To fallback on failure, set a timeout.\n const networkErrorTimer = _window().setTimeout(() => {\n reject(networkError);\n }, PING_TIMEOUT.get());\n // Clear timer and resolve pending iframe ready promise.\n function clearTimerAndResolve(): void {\n _window().clearTimeout(networkErrorTimer);\n resolve(iframe);\n }\n // This returns an IThenable. However the reject part does not call\n // when the iframe is not loaded.\n iframe.ping(clearTimerAndResolve).then(clearTimerAndResolve, () => {\n reject(networkError);\n });\n })\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getUA } from '@firebase/util';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport {\n _isChromeIOS,\n _isFirefox,\n _isIOSStandalone\n} from '../../core/util/browser';\nimport { AuthInternal } from '../../model/auth';\n\nconst BASE_POPUP_OPTIONS = {\n location: 'yes',\n resizable: 'yes',\n statusbar: 'yes',\n toolbar: 'no'\n};\n\nconst DEFAULT_WIDTH = 500;\nconst DEFAULT_HEIGHT = 600;\nconst TARGET_BLANK = '_blank';\n\nconst FIREFOX_EMPTY_URL = 'http://localhost';\n\nexport class AuthPopup {\n associatedEvent: string | null = null;\n\n constructor(readonly window: Window | null) {}\n\n close(): void {\n if (this.window) {\n try {\n this.window.close();\n } catch (e) {}\n }\n }\n}\n\nexport function _open(\n auth: AuthInternal,\n url?: string,\n name?: string,\n width = DEFAULT_WIDTH,\n height = DEFAULT_HEIGHT\n): AuthPopup {\n const top = Math.max((window.screen.availHeight - height) / 2, 0).toString();\n const left = Math.max((window.screen.availWidth - width) / 2, 0).toString();\n let target = '';\n\n const options: { [key: string]: string } = {\n ...BASE_POPUP_OPTIONS,\n width: width.toString(),\n height: height.toString(),\n top,\n left\n };\n\n // Chrome iOS 7 and 8 is returning an undefined popup win when target is\n // specified, even though the popup is not necessarily blocked.\n const ua = getUA().toLowerCase();\n\n if (name) {\n target = _isChromeIOS(ua) ? TARGET_BLANK : name;\n }\n\n if (_isFirefox(ua)) {\n // Firefox complains when invalid URLs are popped out. Hacky way to bypass.\n url = url || FIREFOX_EMPTY_URL;\n // Firefox disables by default scrolling on popup windows, which can create\n // issues when the user has many Google accounts, for instance.\n options.scrollbars = 'yes';\n }\n\n const optionsString = Object.entries(options).reduce(\n (accum, [key, value]) => `${accum}${key}=${value},`,\n ''\n );\n\n if (_isIOSStandalone(ua) && target !== '_self') {\n openAsNewWindowIOS(url || '', target);\n return new AuthPopup(null);\n }\n\n // about:blank getting sanitized causing browsers like IE/Edge to display\n // brief error message before redirecting to handler.\n const newWin = window.open(url || '', target, optionsString);\n _assert(newWin, auth, AuthErrorCode.POPUP_BLOCKED);\n\n // Flaky on IE edge, encapsulate with a try and catch.\n try {\n newWin.focus();\n } catch (e) {}\n\n return new AuthPopup(newWin);\n}\n\nfunction openAsNewWindowIOS(url: string, target: string): void {\n const el = document.createElement('a');\n el.href = url;\n el.target = target;\n const click = document.createEvent('MouseEvent');\n click.initMouseEvent(\n 'click',\n true,\n true,\n window,\n 1,\n 0,\n 0,\n 0,\n 0,\n false,\n false,\n false,\n false,\n 1,\n null\n );\n el.dispatchEvent(click);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { AuthProvider } from '../../model/public_types';\nimport { ApiKey, AppName, AuthInternal } from '../../model/auth';\nimport { AuthEventType } from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from './assert';\nimport { isEmpty, querystring } from '@firebase/util';\nimport { _emulatorUrl } from './emulator';\nimport { FederatedAuthProvider } from '../providers/federated';\nimport { BaseOAuthProvider } from '../providers/oauth';\n\n/**\n * URL for Authentication widget which will initiate the OAuth handshake\n *\n * @internal\n */\nconst WIDGET_PATH = '__/auth/handler';\n\n/**\n * URL for emulated environment\n *\n * @internal\n */\nconst EMULATOR_WIDGET_PATH = 'emulator/auth/handler';\n\n/**\n * Fragment name for the App Check token that gets passed to the widget\n *\n * @internal\n */\nconst FIREBASE_APP_CHECK_FRAGMENT_ID = encodeURIComponent('fac');\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\ntype WidgetParams = {\n apiKey: ApiKey;\n appName: AppName;\n authType: AuthEventType;\n redirectUrl?: string;\n v: string;\n providerId?: string;\n scopes?: string;\n customParameters?: string;\n eventId?: string;\n tid?: string;\n} & { [key: string]: string | undefined };\n\nexport async function _getRedirectUrl(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n redirectUrl?: string,\n eventId?: string,\n additionalParams?: Record\n): Promise {\n _assert(auth.config.authDomain, auth, AuthErrorCode.MISSING_AUTH_DOMAIN);\n _assert(auth.config.apiKey, auth, AuthErrorCode.INVALID_API_KEY);\n\n const params: WidgetParams = {\n apiKey: auth.config.apiKey,\n appName: auth.name,\n authType,\n redirectUrl,\n v: SDK_VERSION,\n eventId\n };\n\n if (provider instanceof FederatedAuthProvider) {\n provider.setDefaultLanguage(auth.languageCode);\n params.providerId = provider.providerId || '';\n if (!isEmpty(provider.getCustomParameters())) {\n params.customParameters = JSON.stringify(provider.getCustomParameters());\n }\n\n // TODO set additionalParams from the provider as well?\n for (const [key, value] of Object.entries(additionalParams || {})) {\n params[key] = value;\n }\n }\n\n if (provider instanceof BaseOAuthProvider) {\n const scopes = provider.getScopes().filter(scope => scope !== '');\n if (scopes.length > 0) {\n params.scopes = scopes.join(',');\n }\n }\n\n if (auth.tenantId) {\n params.tid = auth.tenantId;\n }\n\n // TODO: maybe set eid as endpointId\n // TODO: maybe set fw as Frameworks.join(\",\")\n\n const paramsDict = params as Record;\n for (const key of Object.keys(paramsDict)) {\n if (paramsDict[key] === undefined) {\n delete paramsDict[key];\n }\n }\n\n // Sets the App Check token to pass to the widget\n const appCheckToken = await auth._getAppCheckToken();\n const appCheckTokenFragment = appCheckToken\n ? `#${FIREBASE_APP_CHECK_FRAGMENT_ID}=${encodeURIComponent(appCheckToken)}`\n : '';\n\n // Start at index 1 to skip the leading '&' in the query string\n return `${getHandlerBase(auth)}?${querystring(paramsDict).slice(\n 1\n )}${appCheckTokenFragment}`;\n}\n\nfunction getHandlerBase({ config }: AuthInternal): string {\n if (!config.emulator) {\n return `https://${config.authDomain}/${WIDGET_PATH}`;\n }\n\n return _emulatorUrl(config, EMULATOR_WIDGET_PATH);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, PopupRedirectResolver } from '../model/public_types';\n\nimport { AuthEventManager } from '../core/auth/auth_event_manager';\nimport { AuthErrorCode } from '../core/errors';\nimport { _assert, debugAssert, _fail } from '../core/util/assert';\nimport { _generateEventId } from '../core/util/event_id';\nimport { _getCurrentUrl } from '../core/util/location';\nimport { _validateOrigin } from '../core/util/validate_origin';\nimport { AuthInternal } from '../model/auth';\nimport {\n AuthEventType,\n EventManager,\n GapiAuthEvent,\n GapiOutcome,\n PopupRedirectResolverInternal\n} from '../model/popup_redirect';\nimport { _setWindowLocation } from './auth_window';\nimport { _openIframe } from './iframe/iframe';\nimport { browserSessionPersistence } from './persistence/session_storage';\nimport { _open, AuthPopup } from './util/popup';\nimport { _getRedirectResult } from './strategies/redirect';\nimport { _getRedirectUrl } from '../core/util/handler';\nimport { _isIOS, _isMobileBrowser, _isSafari } from '../core/util/browser';\nimport { _overrideRedirectResult } from '../core/strategies/redirect';\n\n/**\n * The special web storage event\n *\n */\nconst WEB_STORAGE_SUPPORT_KEY = 'webStorageSupport';\n\ninterface WebStorageSupportMessage extends gapi.iframes.Message {\n [index: number]: Record;\n}\n\ninterface ManagerOrPromise {\n manager?: EventManager;\n promise?: Promise;\n}\n\nclass BrowserPopupRedirectResolver implements PopupRedirectResolverInternal {\n private readonly eventManagers: Record = {};\n private readonly iframes: Record = {};\n private readonly originValidationPromises: Record> = {};\n\n readonly _redirectPersistence = browserSessionPersistence;\n\n // Wrapping in async even though we don't await anywhere in order\n // to make sure errors are raised as promise rejections\n async _openPopup(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n debugAssert(\n this.eventManagers[auth._key()]?.manager,\n '_initialize() not called before _openPopup()'\n );\n\n const url = await _getRedirectUrl(\n auth,\n provider,\n authType,\n _getCurrentUrl(),\n eventId\n );\n return _open(auth, url, _generateEventId());\n }\n\n async _openRedirect(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n await this._originValidation(auth);\n const url = await _getRedirectUrl(\n auth,\n provider,\n authType,\n _getCurrentUrl(),\n eventId\n );\n _setWindowLocation(url);\n return new Promise(() => {});\n }\n\n _initialize(auth: AuthInternal): Promise {\n const key = auth._key();\n if (this.eventManagers[key]) {\n const { manager, promise } = this.eventManagers[key];\n if (manager) {\n return Promise.resolve(manager);\n } else {\n debugAssert(promise, 'If manager is not set, promise should be');\n return promise;\n }\n }\n\n const promise = this.initAndGetManager(auth);\n this.eventManagers[key] = { promise };\n\n // If the promise is rejected, the key should be removed so that the\n // operation can be retried later.\n promise.catch(() => {\n delete this.eventManagers[key];\n });\n\n return promise;\n }\n\n private async initAndGetManager(auth: AuthInternal): Promise {\n const iframe = await _openIframe(auth);\n const manager = new AuthEventManager(auth);\n iframe.register(\n 'authEvent',\n (iframeEvent: GapiAuthEvent | null) => {\n _assert(iframeEvent?.authEvent, auth, AuthErrorCode.INVALID_AUTH_EVENT);\n // TODO: Consider splitting redirect and popup events earlier on\n\n const handled = manager.onEvent(iframeEvent.authEvent);\n return { status: handled ? GapiOutcome.ACK : GapiOutcome.ERROR };\n },\n gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER\n );\n\n this.eventManagers[auth._key()] = { manager };\n this.iframes[auth._key()] = iframe;\n return manager;\n }\n\n _isIframeWebStorageSupported(\n auth: AuthInternal,\n cb: (supported: boolean) => unknown\n ): void {\n const iframe = this.iframes[auth._key()];\n iframe.send(\n WEB_STORAGE_SUPPORT_KEY,\n { type: WEB_STORAGE_SUPPORT_KEY },\n result => {\n const isSupported = result?.[0]?.[WEB_STORAGE_SUPPORT_KEY];\n if (isSupported !== undefined) {\n cb(!!isSupported);\n }\n\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n },\n gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER\n );\n }\n\n _originValidation(auth: AuthInternal): Promise {\n const key = auth._key();\n if (!this.originValidationPromises[key]) {\n this.originValidationPromises[key] = _validateOrigin(auth);\n }\n\n return this.originValidationPromises[key];\n }\n\n get _shouldInitProactively(): boolean {\n // Mobile browsers and Safari need to optimistically initialize\n return _isMobileBrowser() || _isSafari() || _isIOS();\n }\n\n _completeRedirectFn = _getRedirectResult;\n\n _overrideRedirectResult = _overrideRedirectResult;\n}\n\n/**\n * An implementation of {@link PopupRedirectResolver} suitable for browser\n * based applications.\n *\n * @remarks\n * This method does not work in a Node.js environment.\n *\n * @public\n */\nexport const browserPopupRedirectResolver: PopupRedirectResolver =\n BrowserPopupRedirectResolver;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Unsubscribe } from '@firebase/util';\nimport { FirebaseAuthInternal } from '@firebase/auth-interop-types';\n\nimport { AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { _assert } from '../util/assert';\nimport { AuthErrorCode } from '../errors';\n\ninterface TokenListener {\n (tok: string | null): unknown;\n}\n\nexport class AuthInterop implements FirebaseAuthInternal {\n private readonly internalListeners: Map =\n new Map();\n\n constructor(private readonly auth: AuthInternal) {}\n\n getUid(): string | null {\n this.assertAuthConfigured();\n return this.auth.currentUser?.uid || null;\n }\n\n async getToken(\n forceRefresh?: boolean\n ): Promise<{ accessToken: string } | null> {\n this.assertAuthConfigured();\n await this.auth._initializationPromise;\n if (!this.auth.currentUser) {\n return null;\n }\n\n const accessToken = await this.auth.currentUser.getIdToken(forceRefresh);\n return { accessToken };\n }\n\n addAuthTokenListener(listener: TokenListener): void {\n this.assertAuthConfigured();\n if (this.internalListeners.has(listener)) {\n return;\n }\n\n const unsubscribe = this.auth.onIdTokenChanged(user => {\n listener(\n (user as UserInternal | null)?.stsTokenManager.accessToken || null\n );\n });\n this.internalListeners.set(listener, unsubscribe);\n this.updateProactiveRefresh();\n }\n\n removeAuthTokenListener(listener: TokenListener): void {\n this.assertAuthConfigured();\n const unsubscribe = this.internalListeners.get(listener);\n if (!unsubscribe) {\n return;\n }\n\n this.internalListeners.delete(listener);\n unsubscribe();\n this.updateProactiveRefresh();\n }\n\n private assertAuthConfigured(): void {\n _assert(\n this.auth._initializationPromise,\n AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH\n );\n }\n\n private updateProactiveRefresh(): void {\n if (this.internalListeners.size > 0) {\n this.auth._startProactiveRefresh();\n } else {\n this.auth._stopProactiveRefresh();\n }\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp, getApp, _getProvider } from '@firebase/app';\n\nimport {\n initializeAuth,\n beforeAuthStateChanged,\n onIdTokenChanged,\n connectAuthEmulator\n} from '..';\nimport { registerAuth } from '../core/auth/register';\nimport { ClientPlatform } from '../core/util/version';\nimport { browserLocalPersistence } from './persistence/local_storage';\nimport { browserSessionPersistence } from './persistence/session_storage';\nimport { indexedDBLocalPersistence } from './persistence/indexed_db';\nimport { browserPopupRedirectResolver } from './popup_redirect';\nimport { Auth, User } from '../model/public_types';\nimport { getDefaultEmulatorHost, getExperimentalSetting } from '@firebase/util';\nimport { _setExternalJSProvider } from './load_js';\nimport { _createError } from '../core/util/assert';\nimport { AuthErrorCode } from '../core/errors';\n\nconst DEFAULT_ID_TOKEN_MAX_AGE = 5 * 60;\nconst authIdTokenMaxAge =\n getExperimentalSetting('authIdTokenMaxAge') || DEFAULT_ID_TOKEN_MAX_AGE;\n\nlet lastPostedIdToken: string | undefined | null = null;\n\nconst mintCookieFactory = (url: string) => async (user: User | null) => {\n const idTokenResult = user && (await user.getIdTokenResult());\n const idTokenAge =\n idTokenResult &&\n (new Date().getTime() - Date.parse(idTokenResult.issuedAtTime)) / 1_000;\n if (idTokenAge && idTokenAge > authIdTokenMaxAge) {\n return;\n }\n // Specifically trip null => undefined when logged out, to delete any existing cookie\n const idToken = idTokenResult?.token;\n if (lastPostedIdToken === idToken) {\n return;\n }\n lastPostedIdToken = idToken;\n await fetch(url, {\n method: idToken ? 'POST' : 'DELETE',\n headers: idToken\n ? {\n 'Authorization': `Bearer ${idToken}`\n }\n : {}\n });\n};\n\n/**\n * Returns the Auth instance associated with the provided {@link @firebase/app#FirebaseApp}.\n * If no instance exists, initializes an Auth instance with platform-specific default dependencies.\n *\n * @param app - The Firebase App.\n *\n * @public\n */\nexport function getAuth(app: FirebaseApp = getApp()): Auth {\n const provider = _getProvider(app, 'auth');\n\n if (provider.isInitialized()) {\n return provider.getImmediate();\n }\n\n const auth = initializeAuth(app, {\n popupRedirectResolver: browserPopupRedirectResolver,\n persistence: [\n indexedDBLocalPersistence,\n browserLocalPersistence,\n browserSessionPersistence\n ]\n });\n\n const authTokenSyncPath = getExperimentalSetting('authTokenSyncURL');\n // Only do the Cookie exchange in a secure context\n if (\n authTokenSyncPath &&\n typeof isSecureContext === 'boolean' &&\n isSecureContext\n ) {\n // Don't allow urls (XSS possibility), only paths on the same domain\n const authTokenSyncUrl = new URL(authTokenSyncPath, location.origin);\n if (location.origin === authTokenSyncUrl.origin) {\n const mintCookie = mintCookieFactory(authTokenSyncUrl.toString());\n beforeAuthStateChanged(auth, mintCookie, () =>\n mintCookie(auth.currentUser)\n );\n onIdTokenChanged(auth, user => mintCookie(user));\n }\n }\n\n const authEmulatorHost = getDefaultEmulatorHost('auth');\n if (authEmulatorHost) {\n connectAuthEmulator(auth, `http://${authEmulatorHost}`);\n }\n\n return auth;\n}\n\nfunction getScriptParentElement(): HTMLDocument | HTMLHeadElement {\n return document.getElementsByTagName('head')?.[0] ?? document;\n}\n\n_setExternalJSProvider({\n loadJS(url: string): Promise {\n // TODO: consider adding timeout support & cancellation\n return new Promise((resolve, reject) => {\n const el = document.createElement('script');\n el.setAttribute('src', url);\n el.onload = resolve;\n el.onerror = e => {\n const error = _createError(AuthErrorCode.INTERNAL_ERROR);\n error.customData = e as unknown as Record;\n reject(error);\n };\n el.type = 'text/javascript';\n el.charset = 'UTF-8';\n getScriptParentElement().appendChild(el);\n });\n },\n\n gapiScript: 'https://apis.google.com/js/api.js',\n recaptchaV2Script: 'https://www.google.com/recaptcha/api.js',\n recaptchaEnterpriseScript:\n 'https://www.google.com/recaptcha/enterprise.js?render='\n});\n\nregisterAuth(ClientPlatform.BROWSER);\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _getProvider, FirebaseApp } from '@firebase/app';\nimport { deepEqual } from '@firebase/util';\nimport { Auth, Dependencies } from '../../model/public_types';\n\nimport { AuthErrorCode } from '../errors';\nimport { PersistenceInternal } from '../persistence';\nimport { _fail } from '../util/assert';\nimport { _getInstance } from '../util/instantiator';\nimport { AuthImpl } from './auth_impl';\n\n/**\n * Initializes an {@link Auth} instance with fine-grained control over\n * {@link Dependencies}.\n *\n * @remarks\n *\n * This function allows more control over the {@link Auth} instance than\n * {@link getAuth}. `getAuth` uses platform-specific defaults to supply\n * the {@link Dependencies}. In general, `getAuth` is the easiest way to\n * initialize Auth and works for most use cases. Use `initializeAuth` if you\n * need control over which persistence layer is used, or to minimize bundle\n * size if you're not using either `signInWithPopup` or `signInWithRedirect`.\n *\n * For example, if your app only uses anonymous accounts and you only want\n * accounts saved for the current session, initialize `Auth` with:\n *\n * ```js\n * const auth = initializeAuth(app, {\n * persistence: browserSessionPersistence,\n * popupRedirectResolver: undefined,\n * });\n * ```\n *\n * @public\n */\nexport function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth {\n const provider = _getProvider(app, 'auth');\n\n if (provider.isInitialized()) {\n const auth = provider.getImmediate() as AuthImpl;\n const initialOptions = provider.getOptions() as Dependencies;\n if (deepEqual(initialOptions, deps ?? {})) {\n return auth;\n } else {\n _fail(auth, AuthErrorCode.ALREADY_INITIALIZED);\n }\n }\n\n const auth = provider.initialize({ options: deps }) as AuthImpl;\n\n return auth;\n}\n\nexport function _initializeAuthInstance(\n auth: AuthImpl,\n deps?: Dependencies\n): void {\n const persistence = deps?.persistence || [];\n const hierarchy = (\n Array.isArray(persistence) ? persistence : [persistence]\n ).map(_getInstance);\n if (deps?.errorMap) {\n auth._updateErrorMap(deps.errorMap);\n }\n\n // This promise is intended to float; auth initialization happens in the\n // background, meanwhile the auth object may be used by the app.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n auth._initializeWithPersistence(hierarchy, deps?.popupRedirectResolver);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getModularInstance } from '@firebase/util';\nimport {\n Auth,\n NextOrObserver,\n Persistence,\n User,\n CompleteFn,\n ErrorFn,\n Unsubscribe,\n PasswordValidationStatus\n} from '../model/public_types';\nimport { _initializeRecaptchaConfig } from '../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { _castAuth } from '../core/auth/auth_impl';\n\nexport {\n debugErrorMap,\n prodErrorMap,\n AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as AuthErrorCodes\n} from './errors';\n\n// Non-optional auth methods.\n/**\n * Changes the type of persistence on the {@link Auth} instance for the currently saved\n * `Auth` session and applies this type of persistence for future sign-in requests, including\n * sign-in with redirect requests.\n *\n * @remarks\n * This makes it easy for a user signing in to specify whether their session should be\n * remembered or not. It also makes it easier to never persist the `Auth` state for applications\n * that are shared by other users or have sensitive data.\n *\n * This method does not work in a Node.js environment or with {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * @example\n * ```javascript\n * setPersistence(auth, browserSessionPersistence);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param persistence - The {@link Persistence} to use.\n * @returns A `Promise` that resolves once the persistence change has completed\n *\n * @public\n */\nexport function setPersistence(\n auth: Auth,\n persistence: Persistence\n): Promise {\n return getModularInstance(auth).setPersistence(persistence);\n}\n\n/**\n * Loads the reCAPTCHA configuration into the `Auth` instance.\n *\n * @remarks\n * This will load the reCAPTCHA config, which indicates whether the reCAPTCHA\n * verification flow should be triggered for each auth provider, into the\n * current Auth session.\n *\n * If initializeRecaptchaConfig() is not invoked, the auth flow will always start\n * without reCAPTCHA verification. If the provider is configured to require reCAPTCHA\n * verification, the SDK will transparently load the reCAPTCHA config and restart the\n * auth flows.\n *\n * Thus, by calling this optional method, you will reduce the latency of future auth flows.\n * Loading the reCAPTCHA config early will also enhance the signal collected by reCAPTCHA.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * initializeRecaptchaConfig(auth);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function initializeRecaptchaConfig(auth: Auth): Promise {\n return _initializeRecaptchaConfig(auth);\n}\n\n/**\n * Validates the password against the password policy configured for the project or tenant.\n *\n * @remarks\n * If no tenant ID is set on the `Auth` instance, then this method will use the password\n * policy configured for the project. Otherwise, this method will use the policy configured\n * for the tenant. If a password policy has not been configured, then the default policy\n * configured for all projects will be used.\n *\n * If an auth flow fails because a submitted password does not meet the password policy\n * requirements and this method has previously been called, then this method will use the\n * most recent policy available when called again.\n *\n * @example\n * ```javascript\n * validatePassword(auth, 'some-password');\n * ```\n *\n * @param auth The {@link Auth} instance.\n * @param password The password to validate.\n *\n * @public\n */\nexport async function validatePassword(\n auth: Auth,\n password: string\n): Promise {\n const authInternal = _castAuth(auth);\n return authInternal.validatePassword(password);\n}\n\n/**\n * Adds an observer for changes to the signed-in user's ID token.\n *\n * @remarks\n * This includes sign-in, sign-out, and token refresh events.\n * This will not be triggered automatically upon ID token expiration. Use {@link User.getIdToken} to refresh the ID token.\n *\n * @param auth - The {@link Auth} instance.\n * @param nextOrObserver - callback triggered on change.\n * @param error - Deprecated. This callback is never triggered. Errors\n * on signing in/out can be caught in promises returned from\n * sign-in/sign-out functions.\n * @param completed - Deprecated. This callback is never triggered.\n *\n * @public\n */\nexport function onIdTokenChanged(\n auth: Auth,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n): Unsubscribe {\n return getModularInstance(auth).onIdTokenChanged(\n nextOrObserver,\n error,\n completed\n );\n}\n/**\n * Adds a blocking callback that runs before an auth state change\n * sets a new user.\n *\n * @param auth - The {@link Auth} instance.\n * @param callback - callback triggered before new user value is set.\n * If this throws, it blocks the user from being set.\n * @param onAbort - callback triggered if a later `beforeAuthStateChanged()`\n * callback throws, allowing you to undo any side effects.\n */\nexport function beforeAuthStateChanged(\n auth: Auth,\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n): Unsubscribe {\n return getModularInstance(auth).beforeAuthStateChanged(callback, onAbort);\n}\n/**\n * Adds an observer for changes to the user's sign-in state.\n *\n * @remarks\n * To keep the old behavior, see {@link onIdTokenChanged}.\n *\n * @param auth - The {@link Auth} instance.\n * @param nextOrObserver - callback triggered on change.\n * @param error - Deprecated. This callback is never triggered. Errors\n * on signing in/out can be caught in promises returned from\n * sign-in/sign-out functions.\n * @param completed - Deprecated. This callback is never triggered.\n *\n * @public\n */\nexport function onAuthStateChanged(\n auth: Auth,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n): Unsubscribe {\n return getModularInstance(auth).onAuthStateChanged(\n nextOrObserver,\n error,\n completed\n );\n}\n/**\n * Sets the current language to the default device/browser preference.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function useDeviceLanguage(auth: Auth): void {\n getModularInstance(auth).useDeviceLanguage();\n}\n/**\n * Asynchronously sets the provided user as {@link Auth.currentUser} on the\n * {@link Auth} instance.\n *\n * @remarks\n * A new instance copy of the user provided will be made and set as currentUser.\n *\n * This will trigger {@link onAuthStateChanged} and {@link onIdTokenChanged} listeners\n * like other sign in methods.\n *\n * The operation fails with an error if the user to be updated belongs to a different Firebase\n * project.\n *\n * This method is not supported by {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * @param auth - The {@link Auth} instance.\n * @param user - The new {@link User}.\n *\n * @public\n */\nexport function updateCurrentUser(\n auth: Auth,\n user: User | null\n): Promise {\n return getModularInstance(auth).updateCurrentUser(user);\n}\n/**\n * Signs out the current user.\n *\n * @remarks\n * This method is not supported by {@link Auth} instances created with a\n * {@link @firebase/app#FirebaseServerApp}.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function signOut(auth: Auth): Promise {\n return getModularInstance(auth).signOut();\n}\n\n/**\n * Revokes the given access token. Currently only supports Apple OAuth access tokens.\n *\n * @param auth - The {@link Auth} instance.\n * @param token - The Apple OAuth access token.\n *\n * @public\n */\nexport function revokeAccessToken(auth: Auth, token: string): Promise {\n const authInternal = _castAuth(auth);\n return authInternal.revokeAccessToken(token);\n}\n\nexport { initializeAuth } from './auth/initialize';\nexport { connectAuthEmulator } from './auth/emulator';\n\n// credentials\nexport { AuthCredential } from './credentials';\nexport { EmailAuthCredential } from './credentials/email';\nexport { OAuthCredential } from './credentials/oauth';\nexport { PhoneAuthCredential } from './credentials/phone';\n\n// persistence\nexport { inMemoryPersistence } from './persistence/in_memory';\n\n// providers\nexport { EmailAuthProvider } from './providers/email';\nexport { FacebookAuthProvider } from './providers/facebook';\nexport { CustomParameters } from './providers/federated';\nexport { GoogleAuthProvider } from './providers/google';\nexport { GithubAuthProvider } from './providers/github';\nexport { OAuthProvider, OAuthCredentialOptions } from './providers/oauth';\nexport { SAMLAuthProvider } from './providers/saml';\nexport { TwitterAuthProvider } from './providers/twitter';\n\n// strategies\nexport { signInAnonymously } from './strategies/anonymous';\nexport {\n signInWithCredential,\n linkWithCredential,\n reauthenticateWithCredential\n} from './strategies/credential';\nexport { signInWithCustomToken } from './strategies/custom_token';\nexport {\n sendPasswordResetEmail,\n confirmPasswordReset,\n applyActionCode,\n checkActionCode,\n verifyPasswordResetCode,\n createUserWithEmailAndPassword,\n signInWithEmailAndPassword\n} from './strategies/email_and_password';\nexport {\n sendSignInLinkToEmail,\n isSignInWithEmailLink,\n signInWithEmailLink\n} from './strategies/email_link';\nexport {\n fetchSignInMethodsForEmail,\n sendEmailVerification,\n verifyBeforeUpdateEmail\n} from './strategies/email';\n\n// core\nexport { ActionCodeURL, parseActionCodeURL } from './action_code_url';\n\n// user\nexport {\n updateProfile,\n updateEmail,\n updatePassword\n} from './user/account_info';\nexport { getIdToken, getIdTokenResult } from './user/id_token_result';\nexport { unlink } from './user/link_unlink';\nexport { getAdditionalUserInfo } from './user/additional_user_info';\n\n// Non-optional user methods.\nexport { reload } from './user/reload';\n/**\n * Deletes and signs out the user.\n *\n * @remarks\n * Important: this is a security-sensitive operation that requires the user to have recently\n * signed in. If this requirement isn't met, ask the user to authenticate again and then call\n * {@link reauthenticateWithCredential}.\n *\n * @param user - The user.\n *\n * @public\n */\nexport async function deleteUser(user: User): Promise {\n return getModularInstance(user).delete();\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _registerComponent, registerVersion } from '@firebase/app';\nimport {\n Component,\n ComponentType,\n InstantiationMode\n} from '@firebase/component';\n\nimport { name, version } from '../../../package.json';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _getClientVersion, ClientPlatform } from '../util/version';\nimport { _castAuth, AuthImpl, DefaultConfig } from './auth_impl';\nimport { AuthInterop } from './firebase_internal';\nimport { ConfigInternal } from '../../model/auth';\nimport { Dependencies } from '../../model/public_types';\nimport { _initializeAuthInstance } from './initialize';\n\nexport const enum _ComponentName {\n AUTH = 'auth',\n AUTH_INTERNAL = 'auth-internal'\n}\n\nfunction getVersionForPlatform(\n clientPlatform: ClientPlatform\n): string | undefined {\n switch (clientPlatform) {\n case ClientPlatform.NODE:\n return 'node';\n case ClientPlatform.REACT_NATIVE:\n return 'rn';\n case ClientPlatform.WORKER:\n return 'webworker';\n case ClientPlatform.CORDOVA:\n return 'cordova';\n case ClientPlatform.WEB_EXTENSION:\n return 'web-extension';\n default:\n return undefined;\n }\n}\n\n/** @internal */\nexport function registerAuth(clientPlatform: ClientPlatform): void {\n _registerComponent(\n new Component(\n _ComponentName.AUTH,\n (container, { options: deps }: { options?: Dependencies }) => {\n const app = container.getProvider('app').getImmediate()!;\n const heartbeatServiceProvider =\n container.getProvider<'heartbeat'>('heartbeat');\n const appCheckServiceProvider =\n container.getProvider<'app-check-internal'>('app-check-internal');\n const { apiKey, authDomain } = app.options;\n\n _assert(\n apiKey && !apiKey.includes(':'),\n AuthErrorCode.INVALID_API_KEY,\n { appName: app.name }\n );\n\n const config: ConfigInternal = {\n apiKey,\n authDomain,\n clientPlatform,\n apiHost: DefaultConfig.API_HOST,\n tokenApiHost: DefaultConfig.TOKEN_API_HOST,\n apiScheme: DefaultConfig.API_SCHEME,\n sdkClientVersion: _getClientVersion(clientPlatform)\n };\n\n const authInstance = new AuthImpl(\n app,\n heartbeatServiceProvider,\n appCheckServiceProvider,\n config\n );\n _initializeAuthInstance(authInstance, deps);\n\n return authInstance;\n },\n ComponentType.PUBLIC\n )\n /**\n * Auth can only be initialized by explicitly calling getAuth() or initializeAuth()\n * For why we do this, See go/firebase-next-auth-init\n */\n .setInstantiationMode(InstantiationMode.EXPLICIT)\n /**\n * Because all firebase products that depend on auth depend on auth-internal directly,\n * we need to initialize auth-internal after auth is initialized to make it available to other firebase products.\n */\n .setInstanceCreatedCallback(\n (container, _instanceIdentifier, _instance) => {\n const authInternalProvider = container.getProvider(\n _ComponentName.AUTH_INTERNAL\n );\n authInternalProvider.initialize();\n }\n )\n );\n\n _registerComponent(\n new Component(\n _ComponentName.AUTH_INTERNAL,\n container => {\n const auth = _castAuth(\n container.getProvider(_ComponentName.AUTH).getImmediate()!\n );\n return (auth => new AuthInterop(auth))(auth);\n },\n ComponentType.PRIVATE\n ).setInstantiationMode(InstantiationMode.EXPLICIT)\n );\n\n registerVersion(name, version, getVersionForPlatform(clientPlatform));\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n}\n","// firebase-config.js\nimport { initializeApp } from \"firebase/app\";\nimport { getAuth, GoogleAuthProvider, signInWithPopup, signOut } from \"firebase/auth\";\n\nconst firebaseConfig = {\n apiKey: \"AIzaSyDsqcE150NpruXo6RbhHWMSVyRH9dlyNRg\",\n authDomain: \"yahyawebsite-de18d.firebaseapp.com\",\n projectId: \"yahyawebsite-de18d\",\n storageBucket: \"yahyawebsite-de18d.appspot.com\",\n messagingSenderId: \"914226258679\",\n appId: \"1:914226258679:web:28431bf06affbbc142a9f2\",\n measurementId: \"G-MJF1K22KGY\"\n};\n\nconst app = initializeApp(firebaseConfig);\nconst auth = getAuth(app);\n\nconst provider = new GoogleAuthProvider();\n\nexport { auth, provider, signInWithPopup, signOut };\n","import React, { useState } from 'react';\nimport { auth } from \"../../../firebase-config\";\nimport { signOut } from 'firebase/auth';\nimport { useNavigate } from 'react-router-dom';\n\nexport function AdminMenu(){\n const navigate = useNavigate();\n const handleLogout = async () => {\n try {\n await signOut(auth);\n navigate('/login');\n } catch (error) {\n console.error('Error logging out: ', error);\n }\n };\n\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleMenu = () => {\n setIsOpen(!isOpen);\n };\n\n return (\n \n );\n};\n\n","import React, { useState, useEffect } from 'react';\nimport axios from \"axios\";\nimport { getAuth } from \"firebase/auth\";\nimport { v4 as uuidv4 } from 'uuid';\n\n\nfunction createPost(id, title, content, categorie) {\n const auth = getAuth();\n const post = {\n id,\n title,\n content,\n categorie,\n }\n auth.currentUser.getIdToken().then((token) => {\n axios.post(\"https://62wv1nusre.execute-api.us-east-1.amazonaws.com/default/createBlogPost\", post, {\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\"\n }\n })\n .then(response => {\n console.log('Post created:', response.data);\n })\n .catch(error => {\n console.error('Error creating post:', error);\n });\n });\n}\n\n\nfunction updatePost(id, title, content, categorie) {\n const auth = getAuth();\n const post = {\n id,\n title,\n content,\n categorie,\n }\n auth.currentUser.getIdToken().then((token) => {\n axios.post(\"https://62wv1nusre.execute-api.us-east-1.amazonaws.com/default/createBlogPost\", post, {\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\"\n }\n }).then(response => {\n console.log('Post updated:', response.data);\n }).catch(error => {\n console.error('Error updating post:', error);\n });\n });\n}\n\nfunction deletePost(id) {\n const auth = getAuth();\n auth.currentUser.getIdToken().then((token) => {\n axios.delete(`https://62wv1nusre.execute-api.us-east-1.amazonaws.com/default/createBlogPost`, {\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\"\n },\n data: {\n id\n }\n }).then(response => {\n console.log('Post deleted:', response.data);\n }).catch(error => {\n console.error('Error deleting post:', error);\n });\n });\n}\n\nexport function AdminBlogManager(){\n const serviceUrl = \"https://5zu8h1w5o9.execute-api.us-east-1.amazonaws.com/default/blog\";\n\n const [posts, setPosts] = useState([]);\n\n useEffect(() => {\n axios.get(serviceUrl)\n .then(response => {\n setPosts(response.data);\n })\n .catch(error => {\n console.error('Error retrieving posts:', error);\n });\n }, []);\n \n const [editingPost, setEditingPost] = useState(null); // Track the post being edited\n const [isCreating, setIsCreating] = useState(false); // Track if we are creating a new post\n const [newPost, setNewPost] = useState({\n title: '',\n content: '',\n categorie: '',\n updatedAt: new Date().toLocaleDateString(),\n });\n \n // Handle creating a new post\n const handleCreate = () => {\n const newPostWithId = {\n ...newPost,\n id: uuidv4(),\n };\n createPost(newPostWithId.id, newPostWithId.title, newPostWithId.content, newPostWithId.categorie);\n setPosts([...posts, newPostWithId]);\n clearForm(); // Clear the form after creation\n setIsCreating(false); // Go back to the table view after creating\n };\n \n // Handle editing an existing post\n const handleEdit = (post) => {\n setEditingPost(post);\n setNewPost({\n title: post.title,\n content: post.content,\n categorie: post.categorie,\n updatedAt: post.updatedAt,\n });\n };\n \n const handleSaveEdit = () => {\n updatePost(editingPost.id, newPost.title, newPost.content, newPost.categorie);\n setPosts(\n posts.map((post) => {\n \n return post.id === editingPost.id ? { ...post, ...newPost } : post;\n }\n )\n );\n setEditingPost(null);\n clearForm();\n };\n \n // Handle deleting a post\n const handleDelete = (id) => {\n deletePost(id);\n setPosts(posts.filter((post) => post.id !== id));\n };\n \n const clearForm = () => {\n setNewPost({\n title: '',\n content: '',\n categorie: '',\n updatedAt: new Date().toLocaleDateString(),\n });\n };\n \n return (\n
\n
\n {/* Show Table/Cards only if we are not editing or creating a post */}\n {!editingPost && !isCreating && (\n <>\n setIsCreating(true)}\n className=\"bg-indigo-500 text-white px-4 py-2 rounded-lg mb-4 hover:bg-indigo-700\"\n >\n Create New Post\n \n \n {/* Table for Large Screens */}\n
\n \n \n \n \n \n \n \n \n \n \n \n {posts.map((post) => (\n \n \n \n \n \n \n \n ))}\n \n
IDTitlecategorieCreated AtActions
{post.id}{post.title}{post.categorie}{post.updatedAt}\n handleEdit(post)}\n >\n Edit\n \n handleDelete(post.id)}\n >\n Delete\n \n
\n
\n \n {/* Cards for Mobile View */}\n
\n {posts.map((post) => (\n \n

{post.title}

\n

categorie: {post.categorie}

\n

Created At: {post.updatedAt}

\n
\n handleEdit(post)}\n >\n Edit\n \n handleDelete(post.id)}\n >\n Delete\n \n
\n
\n ))}\n
\n \n )}\n \n {/* Show Form only if we are editing or creating a post */}\n {(editingPost || isCreating) && (\n
\n

\n {editingPost ? 'Edit Post' : 'Create New Post'}\n

\n setNewPost({ ...newPost, title: e.target.value })}\n />\n setNewPost({ ...newPost, categorie: e.target.value })}\n />\n setNewPost({ ...newPost, content: e.target.value })}\n />\n {editingPost ? (\n \n Save Changes\n \n ) : (\n \n Create Post\n \n )}\n \n {\n setEditingPost(null);\n setIsCreating(false);\n }}\n className=\"ml-4 bg-gray-500 text-white px-4 py-2 rounded-lg hover:bg-gray-700\"\n >\n Cancel\n \n
\n )}\n
\n \n );\n };","import React, { useEffect, useState } from 'react';\nimport axios from \"axios\";\nimport { getAuth } from \"firebase/auth\";\n\n// Mock data for initial folders and files\nlet initialData = {\n root: {\n folders: [],\n files: [],\n },\n};\n\nasync function getDocumentList(setLoadingDocuments) {\n setLoadingDocuments(true); // Start loading\n const auth = getAuth();\n const token = await auth.currentUser.getIdToken();\n try {\n const response = await axios.get('https://ltgi076zwj.execute-api.us-east-1.amazonaws.com/default/manageFiles', {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n return response.data;\n } catch (error) {\n console.error('Error fetching documents: ', error);\n } finally {\n setLoadingDocuments(false); // End loading\n }\n}\n\n// Function to create a new folder\nasync function createFolder(folderName, setLoadingFolder) {\n setLoadingFolder(true); // Start loading\n const auth = getAuth();\n const token = await auth.currentUser.getIdToken();\n try {\n const response = await axios.post(\n 'https://ltgi076zwj.execute-api.us-east-1.amazonaws.com/default/manageFiles',\n {\n folder: folderName\n },\n {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n }\n );\n return response.data;\n } catch (error) {\n console.error('Error creating folder: ', error);\n } finally {\n setLoadingFolder(false); // End loading\n }\n}\n\nasync function downloadFile(folderName, fileName) {\n const auth = getAuth();\n const token = await auth.currentUser.getIdToken();\n const file = folderName.length > 0 ? `${folderName}/${fileName}` : fileName;\n\n try {\n const response = await axios.get(\n `https://ltgi076zwj.execute-api.us-east-1.amazonaws.com/default/manageFiles?fileName=${file}`,\n {\n headers: { Authorization: `Bearer ${token}` },\n responseType: 'blob', // Important to handle binary data\n }\n );\n\n // Create a URL for the blob\n const url = window.URL.createObjectURL(response.data);\n\n // Create a link element to trigger the download\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', fileName); // Set the file name\n\n // Append the link to the body and trigger the download\n document.body.appendChild(link);\n link.click();\n\n // Clean up by removing the link element\n link.parentNode.removeChild(link);\n } catch (error) {\n console.error('Error downloading file: ', error);\n }\n}\n\n\n\n// Function to upload a file\nasync function uploadFile(folderName, fileName, fileContent, setLoadingUpload) {\n setLoadingUpload(true); // Start loading\n const auth = getAuth();\n const token = await auth.currentUser.getIdToken();\n try {\n const response = await axios.post(\n 'https://ltgi076zwj.execute-api.us-east-1.amazonaws.com/default/manageFiles',\n {\n folder: folderName,\n fileName: fileName,\n fileContent: fileContent,\n },\n {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n }\n );\n return response.data;\n } catch (error) {\n console.error('Error uploading file: ', error);\n } finally {\n setLoadingUpload(false); // End loading\n }\n}\n\n// Function to delete a file or folder\nasync function deleteItem(folderName, fileName = null, setLoadingDelete) {\n setLoadingDelete(true); // Start loading\n const auth = getAuth();\n const token = await auth.currentUser.getIdToken();\n try {\n const response = await axios.delete(\n 'https://ltgi076zwj.execute-api.us-east-1.amazonaws.com/default/manageFiles',\n {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n data: {\n folder: folderName,\n fileName: fileName || undefined, // Send fileName if present, otherwise just delete the folder\n }\n }\n );\n return response.data;\n } catch (error) {\n console.error('Error deleting item: ', error);\n } finally {\n setLoadingDelete(false); // End loading\n }\n}\n\nexport function DocumentDrive() {\n const [data, setData] = useState(initialData);\n const [folderPath, setFolderPath] = useState(['root']); // Track the folder path\n const [newFolderName, setNewFolderName] = useState('');\n const [fileInput, setFileInput] = useState(null);\n const [selectedItems, setSelectedItems] = useState([]); // Track selected items\n const [showActions, setShowActions] = useState(false); // Control actions dropdown visibility\n\n // Loading states\n const [loadingDocuments, setLoadingDocuments] = useState(false);\n const [loadingFolder, setLoadingFolder] = useState(false);\n const [loadingUpload, setLoadingUpload] = useState(false);\n const [loadingDelete, setLoadingDelete] = useState(false);\n\n useEffect(() => {\n getDocumentList(setLoadingDocuments).then((data) => {\n setData(data);\n });\n }, []);\n \n const currentFolder = folderPath[folderPath.length - 1];\n\n // Handle folder creation\n const handleCreateFolder = async () => {\n if (newFolderName.trim()) {\n // Construct the full folder path based on the current folder\n const fullFolderPath = folderPath.join('/') === 'root' ? newFolderName : `${folderPath.join('/')}/${newFolderName}`.replace('root/', '');\n \n // Call API to create folder in Lambda with full folder path\n await createFolder(fullFolderPath + '/', setLoadingFolder);\n \n // Update the UI\n const updatedFolders = [...data[currentFolder].folders, newFolderName];\n setData({\n ...data,\n [currentFolder]: {\n ...data[currentFolder],\n folders: updatedFolders,\n },\n [newFolderName]: { folders: [], files: [] }, // Initialize the new folder\n });\n setNewFolderName(''); // Reset folder name input\n }\n };\n\n // Handle file upload\n const handleFileUpload = async (event) => {\n const files = event.target.files;\n if (files.length) {\n const file = files[0];\n const reader = new FileReader();\n reader.onload = async function () {\n const base64Content = reader.result.split(',')[1]; // Base64 content of the file\n const fullFolderPath = folderPath.join('/') === 'root' ? '' : folderPath.join('/').replace('root/', '');; \n await uploadFile(fullFolderPath, file.name, base64Content, setLoadingUpload);\n\n const updatedFiles = [...data[currentFolder].files, { name: file.name }];\n setData({\n ...data,\n [currentFolder]: {\n ...data[currentFolder],\n files: updatedFiles,\n },\n });\n setFileInput(null); // Reset the file input\n };\n reader.readAsDataURL(file);\n }\n };\n\n const handleDownload = async () => {\n const fileName = selectedItems[0];\n const fullFolderPath = folderPath.join('/') === 'root' ? '' : folderPath.join('/').replace('root/', '');\n const fileBlob = await downloadFile(fullFolderPath, fileName);\n\n const url = window.URL.createObjectURL(new Blob([fileBlob]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', fileName);\n document.body.appendChild(link);\n link.click();\n link.parentNode.removeChild(link);\n };\n\n\n const handleOpenFolder = (folderName) => {\n setFolderPath([...folderPath, folderName]);\n };\n\n // Handle going back to the previous folder\n const handleGoBack = () => {\n if (folderPath.length > 1) {\n setFolderPath(folderPath.slice(0, folderPath.length - 1));\n }\n };\n\n // Handle right-click to select items\n const handleSelectItem = (event, item) => {\n event.preventDefault(); // Prevent default right-click behavior (context menu)\n \n if (event.ctrlKey || event.metaKey) {\n if (selectedItems.includes(item)) {\n setSelectedItems(selectedItems.filter((i) => i !== item)); // Deselect\n } else {\n setSelectedItems([...selectedItems, item]); // Select multiple\n }\n } else {\n // Single selection\n setSelectedItems([item]);\n }\n };\n\n // Handle delete action\n const handleDelete = async () => {\n for (const item of selectedItems) {\n if (data[currentFolder].folders.includes(item)) {\n // If it's a folder, delete the folder and its contents\n await deleteItem(item, null, setLoadingDelete);\n } else if (data[currentFolder].files.some(file => file.name === item)) {\n // If it's a file, delete the specific file\n await deleteItem(currentFolder, item, setLoadingDelete);\n }\n }\n\n // Update the UI after deletion\n const updatedFiles = data[currentFolder].files.filter((file) => !selectedItems.includes(file.name));\n const updatedFolders = data[currentFolder].folders.filter((folder) => !selectedItems.includes(folder));\n\n setData({\n ...data,\n [currentFolder]: {\n ...data[currentFolder],\n files: updatedFiles,\n folders: updatedFolders,\n },\n });\n setSelectedItems([]); // Reset selection after action\n setShowActions(false); // Close actions dropdown after the action\n };\n\n return (\n
\n
\n

Document Drive

\n\n {/* Breadcrumb */}\n
\n {folderPath.map((folder, index) => (\n \n setFolderPath(folderPath.slice(0, index + 1))}\n className=\"text-blue-600 hover:underline\"\n >\n {folder}\n \n {index < folderPath.length - 1 && ' / '}\n \n ))}\n
\n\n {/* Back Button and Create Folder/Upload File Buttons */}\n
\n {/* Back Button */}\n \n \n \n \n \n\n {/* Create Folder, Upload File, and Action Dropdown */}\n
\n {/* Create Folder Section */}\n
\n setNewFolderName(e.target.value)}\n placeholder=\"Folder Name\"\n className=\"px-2 sm:px-4 py-1 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500\"\n />\n \n {loadingFolder ? 'Creating...' : 'Create Folder'}\n \n
\n\n {/* Custom File Upload Button */}\n
\n setFileInput(input)}\n />\n fileInput.click()}\n >\n {loadingUpload ? 'Uploading...' : 'Upload Files'}\n \n
\n\n {/* Action Dropdown */}\n
\n setShowActions(!showActions)}\n disabled={selectedItems.length === 0}\n className={`bg-gray-500 text-white px-3 sm:px-4 py-1 sm:py-2 rounded-lg hover:bg-gray-600 transition ${\n selectedItems.length === 0 ? 'cursor-not-allowed opacity-50' : ''\n }`}\n >\n Actions\n \n {showActions && selectedItems.length > 0 && (\n
\n \n {loadingDelete ? 'Deleting...' : 'Delete'}\n \n {selectedItems.length === 1 && !data[currentFolder].folders.includes(selectedItems[0]) && (\n \n Download\n \n )}\n
\n )}\n
\n
\n
\n\n {/* List View */}\n
\n {data[currentFolder].folders.length === 0 && data[currentFolder].files.length === 0 ? (\n

\n {loadingDocuments &&

Loading documents...

}\n {!loadingDocuments &&

Folder empty

}\n

\n ) : (\n <>\n {data[currentFolder].folders.map((folder, index) => (\n handleOpenFolder(folder)}\n onContextMenu={(event) => handleSelectItem(event, folder)}\n >\n
\n \n \n \n {folder}\n
\n
\n ))}\n {data[currentFolder].files.map((file, index) => (\n handleSelectItem(event, file.name)}\n >\n
\n \n \n \n \n {file.name}\n
\n
\n ))}\n \n )}\n
\n \n \n );\n}\n\n","import { MainMenu } from \"../../menu/menu\";\nimport { AdminMenu } from \"../menu/admin-menu\";\nimport { useLocation } from \"react-router-dom\";\nimport { AdminBlogManager } from \"../blog-manager/admin-blog-manager\";\nimport { DocumentDrive } from \"../document-manager/admin-document-manager\";\n\nexport function AdminMain(props) {\n const location = useLocation();\n const path = location.pathname.replace(\"/\", \"\").split(\"/\");\n const currentPage = path.length > 1 ? path[1] : \"admin\";\n return (\n
\n \n \n {currentPage === \"blog\" && }\n {currentPage === \"documents\" && }\n
\n )\n}","import React, { useState } from 'react';\nimport { signInWithEmailAndPassword } from 'firebase/auth';\nimport { auth } from '../../../firebase-config';\nimport { LightHeader } from \"../../headers/light-header/light-header\";\nimport { MainMenu } from \"../../menu/menu\";\n\n\nexport function AdminLogin(){\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [error, setError] = useState('');\n\n const handleLogin = async (e) => {\n e.preventDefault();\n try {\n await signInWithEmailAndPassword(auth, email, password);\n window.location.href = '/admin';\n } catch (err) {\n setError('Failed to log in: ' + err.message);\n }\n };\n\n return (\n
\n \n \n
\n
\n
\n
\n \n setEmail(e.target.value)}\n required\n className=\"w-full px-3 py-2 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm\"\n />\n
\n
\n \n setPassword(e.target.value)}\n required\n className=\"w-full px-3 py-2 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm\"\n />\n
\n {error &&

{error}

}\n
\n \n Login\n \n
\n
\n
\n
\n
\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { onAuthStateChanged } from 'firebase/auth';\nimport { auth } from '../../../firebase-config';\nimport { Navigate } from 'react-router-dom';\n\nexport function ProtectedRoute({ children }){\n const [user, setUser] = useState(null);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n const unsubscribe = onAuthStateChanged(auth, (user) => {\n setUser(user);\n setLoading(false);\n });\n return () => unsubscribe();\n }, []);\n\n if (loading) return

Loading...

;\n \n return user ? children : ;\n};\n","import React from \"react\";\nimport { MainMenu } from \"../../menu/menu\";\n\nexport default function FriendsgivingPage() {\n\n return (\n
\n \n
\n
\n

🍂 Friendsgiving 2024 🍂

\n

Friendsgiving 2024 is over, We will prepare for 2025

\n
\n
\n
\n );\n}\n","import \"./App.css\";\nimport React, { Suspense } from \"react\";\nimport { Component } from \"react\";\nimport { BrowserRouter as Router, Routes, Route } from \"react-router-dom\";\nimport { Home } from \"./components/home/home\";\nimport { About } from \"./components/about/about\";\nimport { Blog } from \"./components/blog/blog\";\nimport { Docs } from \"./components/docs/docs\";\nimport { QueryDisplayContent } from \"./components/querycontent/querycontent\";\nimport { Tools } from \"./components/tools/tools\";\nimport { Courses } from \"./components/courses/courses\";\nimport { CourseDisplay } from \"./components/courses/course-display\";\nimport { AdminMain } from \"./components/admin/main/admin-main\";\nimport { AdminLogin } from \"./components/admin/login/admin-login\";\nimport { ProtectedRoute } from \"./components/admin/login/protected-route\";\nimport FriendsgivingPage from \"./components/fun/friendsgiving/friends-giving\";\n\nclass App extends Component {\n render() {\n return (\n \n Loading...}>\n \n } />\n } />\n } />\n } />\n } />\n } />\n }/>\n }/>\n }/>\n }/>\n }/>\n } />\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n );\n }\n}\n\nexport default App;\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { Component } from \"react\";\nimport { footerHtml } from \"./footer.html\";\n\nexport class Footer extends Component {\n render() {\n var current_year = new Date().getFullYear();\n return footerHtml(current_year);\n }\n}\n","import \"./footer\";\n\nexport const footerHtml = (year) => {\n const linkListRandomizer = () => {\n const linkList = [\n '/blog', \n '/about', \n '/tools', \n '/', \n '/blog/446ae84e-5483-4641-b803-e3d1d104aef6',\n '/blog/e9ad89bc-3154-4a7b-b1e6-442ec94db1d3',\n '/tools/color-picker',\n '/tools/json-formatter',\n ];\n return linkList[Math.floor(Math.random() * linkList.length)];\n }\n\n return (\n
\n
\n
\n
    \n
  • \n \n Blog\n \n
  • \n
  • \n \n Feeling lucky\n \n
  • \n
  • \n \n Software Tools\n \n
  • \n
  • \n \n Resume\n \n
  • \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n Yahya Akli © {year}\n
\n
\n
\n
\n );\n};\n","import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { Footer } from \"./components/footer/footer\";\n\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\nroot.render(\n \n
\n \n
\n