{"version":3,"file":"static/js/main.8dae0967.js","mappings":"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,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,GAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,GAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,GAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,GAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,aACA,YACA,aACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGAnpB,UCxiBF,IAAIopB,GAAgB,kBAChBC,GAAO,OAAH,OAAUD,GAAV,KACJE,GAAY,8BACZC,GAAU,CACZ7nF,UAAW,SACXwJ,SAAU,CAGR,CAAEtH,MAAO,eAAQwlF,GAAR,cAA2BC,GAA3B,oBAA2CA,GAA3C,0BACMD,GADN,gBAGT,CAAExlF,MAAO,OAAF,OAASwlF,GAAT,cAA4BC,GAA5B,iCACP,CAAEzlF,MAAO,IAAF,OAAMylF,GAAN,gBACP,CAAEzlF,MAAO,OAAF,OAASwlF,GAAT,eAGP,CAAExlF,MAAO,oBAAa0lF,GAAb,kBAAgCA,GAAhC,iBAAkDA,GAAlD,0BACMF,GADN,gBAIT,CAAExlF,MAAO,kCAGT,CAAEA,MAAO,YAAF,OAAc0lF,GAAd,cAGP,CAAE1lF,MAAO,0BAGT,CAAEA,MAAO,kCAEXC,UAAW,GAqBb,SAAS2lF,GAAWt8H,EAAIu8H,EAAc9qB,GACpC,OAAe,IAAXA,EAAqB,GAElBzxG,EAAGxI,QAAQ+kI,GAAc,SAAAj8B,GAC9B,OAAOg8B,GAAWt8H,EAAIu8H,EAAc9qB,EAAQ,MCzDhD,IAAMr7D,GAAW,2BACXomF,GAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIC,GAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAIIC,GAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAGIC,GAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAGIC,GAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGIC,GAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UAGIC,GAAY,GAAGhlI,OACnB8kI,GACAF,GACAC,ICzJF,IAAIT,GAAgB,kBAChBC,GAAO,OAAH,OAAUD,GAAV,KACJE,GAAY,8BACZC,GAAU,CACZ7nF,UAAW,SACXwJ,SAAU,CAGR,CAAEtH,MAAO,eAAQwlF,GAAR,cAA2BC,GAA3B,oBAA2CA,GAA3C,0BACMD,GADN,gBAGT,CAAExlF,MAAO,OAAF,OAASwlF,GAAT,cAA4BC,GAA5B,iCACP,CAAEzlF,MAAO,IAAF,OAAMylF,GAAN,gBACP,CAAEzlF,MAAO,OAAF,OAASwlF,GAAT,eAGP,CAAExlF,MAAO,oBAAa0lF,GAAb,kBAAgCA,GAAhC,iBAAkDA,GAAlD,0BACMF,GADN,gBAIT,CAAExlF,MAAO,kCAGT,CAAEA,MAAO,YAAF,OAAc0lF,GAAd,cAGP,CAAE1lF,MAAO,0BAGT,CAAEA,MAAO,kCAEXC,UAAW,GChCb,IA6CMklF,GAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,GAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,GAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,GAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,GAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,aACA,YACA,aACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGAnpB,UAGIiqB,GAAmBhB,GAAejkI,OAAOkkI,IC5iB/C,IA6CMH,GAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,GAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,GAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,GAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,GAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,aACA,YACA,aACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,wBACA,eACA,gBACA,QACA,WACA,MACA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGAnpB,UChiBF,SAASxzG,GAAOU,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGV,OAHM,KAUlB,SAASg2C,GAAUt1C,GACjB,OAAOlI,GAAO,MAAOkI,EAAI,KAO3B,SAASlI,KAAgB,2BAANrB,EAAM,yBAANA,EAAM,gBACvB,IAAM++C,EAAS/+C,EAAK2L,KAAI,SAACzG,GAAD,OAAO2D,GAAO3D,MAAIvH,KAAK,IAC/C,OAAOohD,EAOT,SAASC,GAAqBh/C,GAC5B,IAAM4zC,EAAO5zC,EAAKA,EAAKlD,OAAS,GAEhC,MAAoB,kBAAT82C,GAAqBA,EAAKp1C,cAAgBjB,QACnDyC,EAAK+1C,OAAO/1C,EAAKlD,OAAS,EAAG,GACtB82C,GAEA,GAaX,SAASqL,KAAgB,2BAANj/C,EAAM,yBAANA,EAAM,gBAEvB,IAAM4zC,EAAOoL,GAAqBh/C,GAC5B++C,EAAS,KACVnL,EAAK5iB,QAAU,GAAK,MACrBhxB,EAAK2L,KAAI,SAACzG,GAAD,OAAO2D,GAAO3D,MAAIvH,KAAK,KAAO,IAC3C,OAAOohD,EAGT,IAAMwnF,GAAiB,SAAA/iF,GAAO,OAAIniD,GAChC,KACAmiD,EACA,MAAM/iD,KAAK+iD,GAAW,KAAO,OAIzBgjF,GAAc,CAClB,WACA,QACA76H,IAAI46H,IAGAE,GAAsB,CAC1B,OACA,QACA96H,IAAI46H,IAGAG,GAAe,CACnB,MACA,QAIIpkF,GAAW,CAIf,QACA,iBACA,QACA,QACA,OACA,MACA,KACA,QACA,OACA,QACA,QACA,WACA,cACA,UACA,QACA,SACA,SACA,KACA,UACA,OACA,OACA,YACA,cACA,qBACA,cACA,QACA,MACA,OACA,MACA,QACA,KACA,SACA,WACA,QACA,SACA,QACA,QACA,kBACA,WACA,KACA,KACA,WACA,cACA,OACA,MACA,WACA,cACA,cACA,OACA,WACA,WACA,WACA,UACA,kBACA,SACA,iBACA,UACA,WACA,gBACA,SACA,SACA,WACA,WACA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,WAOIqkF,GAAW,CACf,QACA,MACA,QAIIC,GAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,SAKIC,GAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,2BACA,YAIIC,GAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,OAIIC,GAAe9nF,GACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,YAII+nF,GAAoB/nF,GACxB8nF,GACA,kBACA,kBACA,kBACA,kBACA,mBAMI5J,GAAW97H,GAAO0lI,GAAcC,GAAmB,KAGnDC,GAAiBhoF,GACrB,YACA,uDACA,yDACA,yDACA,kBACA,+DACA,yDACA,+BACA,yDACA,yDACA,gCASIioF,GAAsBjoF,GAC1BgoF,GACA,KACA,0DAII75B,GAAa/rG,GAAO4lI,GAAgBC,GAAqB,KAGzDC,GAAiB9lI,GAAO,QAAS6lI,GAAqB,KAItDE,GAAoB,CACxB,cACA/lI,GAAO,eAAgB49C,GAAO,QAAS,QAAS,KAAM,MACtD,oBACA,kBACA,sBACA,WACA,SACA,gBACA,WACA,eACA,gBACA,WACA,gBACA,YACA,OACA,UACA,oBACA,YACA,YACA59C,GAAO,SAAU+rG,GAAY,MAC7B,OACA,cACA,kBACA,iCACA,gBACA,WACA,oBACA,UACA,oBAIIi6B,GAAuB,CAC3B,MACA,0BACA,QACA,4BACA,cACA,kCACA,UACA,8BACA,OACA,2BACA,SC9XF,IAAM1nF,GAAW,2BACXomF,GAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIC,GAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAIIC,GAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAGIC,GAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAGIC,GAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGIC,GAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UAGIC,GAAY,GAAGhlI,OACnB8kI,GACAF,GACAC,QCvJF,qBCAaoB,GAAQ/pI,OAAOiO,OAAOq1B,GAAO13B,OAAQ,CAChDo+H,KAAM1mG,GAAO2mG,WACbr7G,MAAO0U,GAAO4mG,YACdljE,UAAW1jC,GAAO6Y,gBAClBguF,OAAQ7mG,GAAO8mG,aACfrlI,KAAMu+B,GAAO/4B,WACbq9H,IAAKtkG,GAAO0xB,YAUP,SAAS1xB,GAAO8Y,GAKrB,OAFAiuF,EAAe5lI,YAAc23C,EAAY33C,aAAe23C,EAAY/6C,KAE7DgpI,EAWP,SAASA,EAAeloI,GAAmB,2BAAR67D,EAAQ,iCAARA,EAAQ,kBAEzC,IAAMnyD,EAAS1J,EAASmoI,GAAAA,WAAA,GAAUnoI,GAAV,OAAqB67D,IAAU77D,EACvD,OAAO,IAAIi6C,EAAYvwC,ICb3B,IAAMoyF,GAAM,GAAG/+F,eAETqrI,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mJ,GAMhB,IAAI7wD,EALN,GAAwB,kBAAb0nD,EAETojE,GAAAA,gBAAqBj6D,EAAO,CAAClF,aAAcjE,SAK3C,IAAK1nD,KAAO0nD,EACNq2C,GAAI99F,KAAKynD,EAAU1nD,IACrB8qH,GAAAA,gBAAqBpjE,EAAS1nD,GAAM,CAAC2rD,aAAc3rD,MCpI/DuqI,GAASl5E,iBAAiB,WC+iB1B,SAAiBzG,GACf,IAAMggF,EACE,CACJ,UACA,OACA,OACA,UALEA,EAOM,CACR,qBACA,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MA9DEA,EAgEI,CACN,QACA,OACA,gCACA,wBACA,wBACA,uBACA,uBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAtVEA,EAwVK,CACP,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,WACA,WACA,UACA,SACA,QACA,OACA,OAIEC,EA77BR,SAAmBjgF,GACjB,IAAM7I,EAAQ6I,EAAK7I,MAIbkB,EAAsB2H,EAAK/H,QAAQ,KAAM,IAAK,CAClD5xB,SAAU,CACR,CACEuxB,MAAO,WAIPsoF,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,iCAEvBjpF,EAAMpM,SAASo1F,GACf,gBAAkBhpF,EAAMpM,SAJG,YAK7B,IAEMs1F,EAAsB,CAC1B3qF,UAAW,OACXkC,MAAO,sBAMH0oF,EAAU,CACd5qF,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAO,cACPr3C,IAAK,IACLw3C,QAAS,MACT1xB,SAAU,CAAE25B,EAAKrI,mBAEnB,CACEC,MAAO,sEACPr3C,IAAK,IACLw3C,QAAS,KAEXiI,EAAKxG,kBAAkB,CACrB5B,MAAO,mCACPr3C,IAAK,0BAKLggI,EAAU,CACd7qF,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXC,UAAW,GAGP2oF,EAAe,CACnB9qF,UAAW,OACXkC,MAAO,eACPr3C,IAAK,IACL05C,SAAU,CACRkB,QACE,0FAGJ90B,SAAU,CACR,CACEuxB,MAAO,OACPC,UAAW,GAEbmI,EAAKH,QAAQygF,EAAS,CACpB5qF,UAAW,WAEb,CACEA,UAAW,SACXkC,MAAO,SAETS,EACA2H,EAAK1H,uBAIHM,EAAa,CACjBlD,UAAW,QACXkC,MAAOT,EAAMpM,SAASo1F,GAAgBngF,EAAK1I,SAC3CO,UAAW,GAGP4oF,EAAiBtpF,EAAMpM,SAASo1F,GAAgBngF,EAAK1I,SAAW,UA+RhEopF,EAAe,CACnBzmI,KAlMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,UAmLAkhD,QA9RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,UAwMAwlF,QAhBe,CACf,OACA,QACA,UACA,UACA,QAYAC,SARe,CACf,WAQAC,YAnLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,iBA+HIC,EAAoB,CACxBprF,UAAW,oBACXmC,UAAW,EACXoC,SAAU,CAER8mF,MAjImB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,aA+BAnpF,MAAOT,EAAMn+C,OACX,KACA,eACA,SACA,UACA,aACA,YACAgnD,EAAK1I,SACLH,EAAMX,UAAU,sBAGdwqF,EAAsB,CAC1BF,EACAN,EACAH,EACAhoF,EACA2H,EAAK1H,qBACLioF,EACAD,GAGIW,EAAqB,CAIzB/hF,SAAU,CACR,CACEtH,MAAO,IACPr3C,IAAK,KAEP,CACEq3C,MAAO,KACPr3C,IAAK,MAEP,CACEu5C,cAAe,wBACfv5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,EAAKpH,WAAY,CAAChB,MAAO,gBACjDC,UAAW,GA4Pb,MAAO,CACLthD,KAAM,OACN2pD,QAAS,CAAC,MACVjG,SAAU,CACR0E,SAAU,gBACVxD,QA9Pa,CACf,KACA,OACA,OACA,OACA,KACA,MACA,QACA,KACA,KACA,OACA,OACA,OACA,YAkPEwlF,QA/Oa,CACf,OACA,SA8OEC,SAAQ,UArOY,CACtB,QACA,KACA,WACA,OACA,OACA,OACA,SACA,UACA,OACA,MACA,WACA,SACA,QACA,OACA,QACA,OACA,QACA,SAGqB,CACrB,QACA,OACA,UACA,SACA,UACA,UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,UACA,SACA,WA2LU,CAIN,MACA,SA7LgB,CACpB,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,QAGqB,CACrB,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,SAoBAv6G,SAAU,CACRu7G,EACA5hF,EAAK9G,UACL2oF,EACAF,EACA3hF,EAAKzH,kBACLkpF,EA1Pc,CAChB3hI,MAAO,kBA2PL4hI,EA3TkB,CACpBhsF,UAAW,GACXkC,MAAO,OAGW,CAClBlC,UAAW,SACXkC,MAAO,IAAKr3C,IAAK,KAuTf+gI,OFpVN3B,GAASl5E,iBAAiB,KGhC1B,SAAWzG,GACT,IAAM7I,EAAQ6I,EAAK7I,MAIbkB,EAAsB2H,EAAK/H,QAAQ,KAAM,IAAK,CAClD5xB,SAAU,CACR,CACEuxB,MAAO,WAIPsoF,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,uBAEvBjpF,EAAMpM,SAASo1F,GACf,gBAAkBhpF,EAAMpM,SAJG,YAK7B,IAGM6yF,EAAQ,CACZloF,UAAW,OACXwJ,SAAU,CACR,CAAEtH,MAAO,sBACT,CAAE93C,MAAO,2BAQPwgI,EAAU,CACd5qF,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAO,cACPr3C,IAAK,IACLw3C,QAAS,MACT1xB,SAAU,CAAE25B,EAAKrI,mBAEnB,CACEC,MAAO,sEACPr3C,IAAK,IACLw3C,QAAS,KAEXiI,EAAKxG,kBAAkB,CACrB5B,MAAO,mCACPr3C,IAAK,0BAKLggI,EAAU,CACd7qF,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXC,UAAW,GAGP2oF,EAAe,CACnB9qF,UAAW,OACXkC,MAAO,eACPr3C,IAAK,IACL05C,SAAU,CACRkB,QACE,0FAGJ90B,SAAU,CACR,CACEuxB,MAAO,OACPC,UAAW,GAEbmI,EAAKH,QAAQygF,EAAS,CACpB5qF,UAAW,WAEb,CACEA,UAAW,SACXkC,MAAO,SAETS,EACA2H,EAAK1H,uBAIHM,EAAa,CACjBlD,UAAW,QACXkC,MAAOT,EAAMpM,SAASo1F,GAAgBngF,EAAK1I,SAC3CO,UAAW,GAGP4oF,EAAiBtpF,EAAMpM,SAASo1F,GAAgBngF,EAAK1I,SAAW,UAsEhEomF,EAAW,CACfviF,QArEiB,CACjB,MACA,OACA,QACA,OACA,WACA,UACA,KACA,OACA,OACA,SACA,MACA,UACA,OACA,KACA,SACA,WACA,WACA,SACA,SACA,SACA,SACA,UACA,QACA,WACA,QACA,WACA,WACA,UACA,WACA,YACA,iBACA,gBAEA,UACA,UACA,WACA,gBACA,eAEA,WA8BAlhD,KA3Bc,CACd,QACA,SACA,SACA,WACA,MACA,QACA,OACA,OACA,OACA,QACA,WACA,aACA,aACA,aACA,cAEA,QACA,SAEA,UACA,OACA,aAMA0mI,QAAS,kBAETC,SAAU,ozBAWNI,EAAsB,CAC1BR,EACA5C,EACAvlF,EACA2H,EAAK1H,qBACLioF,EACAD,GAGIW,EAAqB,CAIzB/hF,SAAU,CACR,CACEtH,MAAO,IACPr3C,IAAK,KAEP,CACEq3C,MAAO,KACPr3C,IAAK,MAEP,CACEu5C,cAAe,wBACfv5C,IAAK,MAGT05C,SAAUyjF,EACVr3G,SAAU26G,EAAoBhoI,OAAO,CACnC,CACE4+C,MAAO,KACPr3C,IAAK,KACL05C,SAAUyjF,EACVr3G,SAAU26G,EAAoBhoI,OAAO,CAAE,SACvC6+C,UAAW,KAGfA,UAAW,GAGPqpF,EAAuB,CAC3BtpF,MAAO,IAAMwoF,EAAmB,eAAiBK,EACjDjkF,aAAa,EACbj8C,IAAK,QACLm8C,YAAY,EACZzC,SAAUyjF,EACV3lF,QAAS,iBACT1xB,SAAU,CACR,CACEuxB,MAAOsoF,EACPjmF,SAAUyjF,EACV7lF,UAAW,GAEb,CACED,MAAO6oF,EACPjkF,aAAa,EACbn2B,SAAU,CACR25B,EAAKH,QAAQjH,EAAY,CAAElD,UAAW,oBAExCmC,UAAW,GAIb,CACEA,UAAW,EACX/3C,MAAO,KAET,CACE41C,UAAW,SACXkC,MAAO,KACPr3C,IAAK,KACL05C,SAAUyjF,EACV7lF,UAAW,EACXxxB,SAAU,CACRgyB,EACA2H,EAAK1H,qBACLgoF,EACAC,EACA3C,EAEA,CACEhmF,MAAO,KACPr3C,IAAK,KACL05C,SAAUyjF,EACV7lF,UAAW,EACXxxB,SAAU,CACR,OACAgyB,EACA2H,EAAK1H,qBACLgoF,EACAC,EACA3C,MAKRA,EACAvlF,EACA2H,EAAK1H,qBACLkoF,IAIJ,MAAO,CACLjqI,KAAM,IACN2pD,QAAS,CACP,KAEFjG,SAAUyjF,EAGVn9E,mBAAmB,EACnBxI,QAAS,KACT1xB,SAAU,GAAGrtB,OACXioI,EACAC,EACAF,EACA,CACER,EACA,CACE5oF,MAAOoI,EAAK1I,SAAW,KACvB2C,SAAUyjF,GAEZ,CACEhoF,UAAW,QACXoE,cAAe,0BACfv5C,IAAK,WACL8lB,SAAU,CACR,CACEyzB,cAAe,sBAEjBkG,EAAKpH,eAIbpjD,QAAS,CACPssI,aAActB,EACduB,QAASzB,EACTrmF,SAAUyjF,OHtShBiC,GAASl5E,iBAAiB,OIjC1B,SAAazG,GACX,IAAM7I,EAAQ6I,EAAK7I,MAIbkB,EAAsB2H,EAAK/H,QAAQ,KAAM,IAAK,CAClD5xB,SAAU,CACR,CACEuxB,MAAO,WAIPsoF,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,iCAEvBjpF,EAAMpM,SAASo1F,GACf,gBAAkBhpF,EAAMpM,SAJG,YAK7B,IAEMs1F,EAAsB,CAC1B3qF,UAAW,OACXkC,MAAO,sBAMH0oF,EAAU,CACd5qF,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAO,cACPr3C,IAAK,IACLw3C,QAAS,MACT1xB,SAAU,CAAE25B,EAAKrI,mBAEnB,CACEC,MAAO,sEACPr3C,IAAK,IACLw3C,QAAS,KAEXiI,EAAKxG,kBAAkB,CACrB5B,MAAO,mCACPr3C,IAAK,0BAKLggI,EAAU,CACd7qF,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXC,UAAW,GAGP2oF,EAAe,CACnB9qF,UAAW,OACXkC,MAAO,eACPr3C,IAAK,IACL05C,SAAU,CACRkB,QACE,0FAGJ90B,SAAU,CACR,CACEuxB,MAAO,OACPC,UAAW,GAEbmI,EAAKH,QAAQygF,EAAS,CACpB5qF,UAAW,WAEb,CACEA,UAAW,SACXkC,MAAO,SAETS,EACA2H,EAAK1H,uBAIHM,EAAa,CACjBlD,UAAW,QACXkC,MAAOT,EAAMpM,SAASo1F,GAAgBngF,EAAK1I,SAC3CO,UAAW,GAGP4oF,EAAiBtpF,EAAMpM,SAASo1F,GAAgBngF,EAAK1I,SAAW,UA+RhEopF,EAAe,CACnBzmI,KAlMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,UAmLAkhD,QA9RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,UAwMAwlF,QAhBe,CACf,OACA,QACA,UACA,UACA,QAYAC,SARe,CACf,WAQAC,YAnLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,iBA+HIC,EAAoB,CACxBprF,UAAW,oBACXmC,UAAW,EACXoC,SAAU,CAER8mF,MAjImB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,aA+BAnpF,MAAOT,EAAMn+C,OACX,KACA,eACA,SACA,UACA,aACA,YACAgnD,EAAK1I,SACLH,EAAMX,UAAU,sBAGdwqF,EAAsB,CAC1BF,EACAN,EACAH,EACAhoF,EACA2H,EAAK1H,qBACLioF,EACAD,GAGIW,EAAqB,CAIzB/hF,SAAU,CACR,CACEtH,MAAO,IACPr3C,IAAK,KAEP,CACEq3C,MAAO,KACPr3C,IAAK,MAEP,CACEu5C,cAAe,wBACfv5C,IAAK,MAGT05C,SAAUymF,EACVr6G,SAAU26G,EAAoBhoI,OAAO,CACnC,CACE4+C,MAAO,KACPr3C,IAAK,KACL05C,SAAUymF,EACVr6G,SAAU26G,EAAoBhoI,OAAO,CAAE,SACvC6+C,UAAW,KAGfA,UAAW,GAGPqpF,EAAuB,CAC3BxrF,UAAW,WACXkC,MAAO,IAAMwoF,EAAmB,eAAiBK,EACjDjkF,aAAa,EACbj8C,IAAK,QACLm8C,YAAY,EACZzC,SAAUymF,EACV3oF,QAAS,iBACT1xB,SAAU,CACR,CACEuxB,MAAOsoF,EACPjmF,SAAUymF,EACV7oF,UAAW,GAEb,CACED,MAAO6oF,EACPjkF,aAAa,EACbn2B,SAAU,CAAEuyB,GACZf,UAAW,GAIb,CACED,MAAO,KACPC,UAAW,GAGb,CACED,MAAO,IACPkH,gBAAgB,EAChBz4B,SAAU,CACRi6G,EACAC,IAKJ,CACE1oF,UAAW,EACX/3C,MAAO,KAET,CACE41C,UAAW,SACXkC,MAAO,KACPr3C,IAAK,KACL05C,SAAUymF,EACV7oF,UAAW,EACXxxB,SAAU,CACRgyB,EACA2H,EAAK1H,qBACLgoF,EACAC,EACAF,EAEA,CACEzoF,MAAO,KACPr3C,IAAK,KACL05C,SAAUymF,EACV7oF,UAAW,EACXxxB,SAAU,CACR,OACAgyB,EACA2H,EAAK1H,qBACLgoF,EACAC,EACAF,MAKRA,EACAhoF,EACA2H,EAAK1H,qBACLkoF,IAIJ,MAAO,CACLjqI,KAAM,MACN2pD,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,OAEFjG,SAAUymF,EACV3oF,QAAS,KACTsG,iBAAkB,CAChB,oBAAqB,YAEvBh4B,SAAU,GAAGrtB,OACXioI,EACAC,EACAJ,EACAE,EACA,CACER,EACA,CACE5oF,MAAO,4MACPr3C,IAAK,IACL05C,SAAUymF,EACVr6G,SAAU,CACR,OACAg6G,IAGJ,CACEzoF,MAAOoI,EAAK1I,SAAW,KACvB2C,SAAUymF,GAEZ,CACE5gI,MAAO,CAEL,wDACA,MACA,OAEF41C,UAAW,CACT,EAAG,UACH,EAAG,sBJ5hBfiqF,GAASl5E,iBAAiB,UKhC1B,SAAgBzG,GACd,IA4IM09E,EAAW,CACfviF,QAhGsB,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,SAwCyBniD,OAtCC,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,UAKA4nI,SA9IwB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,UA2HAD,QAxGuB,CACvB,UACA,QACA,OACA,SAsGI/nF,EAAaoH,EAAKH,QAAQG,EAAKpH,WAAY,CAC/ChB,MAAO,uBAEH2oF,EAAU,CACd7qF,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAO,iBAET,CACEA,MAAO,mEAET,CACEA,MAAO,wFAGXC,UAAW,GAEPmqF,EAAkB,CACtBtsF,UAAW,SACXkC,MAAO,KACPr3C,IAAK,IACL8lB,SAAU,CACR,CACEuxB,MAAO,QAIPqqF,EAAwBjiF,EAAKH,QAAQmiF,EAAiB,CAC1DjqF,QAAS,OAELypF,EAAQ,CACZ9rF,UAAW,QACXkC,MAAO,KACPr3C,IAAK,KACL05C,SAAUyjF,GAENwE,EAAcliF,EAAKH,QAAQ2hF,EAAO,CACtCzpF,QAAS,OAELoqF,EAAsB,CAC1BzsF,UAAW,SACXkC,MAAO,MACPr3C,IAAK,IACLw3C,QAAS,KACT1xB,SAAU,CACR,CACEuxB,MAAO,QAET,CACEA,MAAO,QAEToI,EAAKrI,iBACLuqF,IAGEE,EAA+B,CACnC1sF,UAAW,SACXkC,MAAO,OACPr3C,IAAK,IACL8lB,SAAU,CACR,CACEuxB,MAAO,QAET,CACEA,MAAO,QAET,CACEA,MAAO,MAET4pF,IAGEa,EAAqCriF,EAAKH,QAAQuiF,EAA8B,CACpFrqF,QAAS,KACT1xB,SAAU,CACR,CACEuxB,MAAO,QAET,CACEA,MAAO,QAET,CACEA,MAAO,MAETsqF,KAGJV,EAAMn7G,SAAW,CACf+7G,EACAD,EACAH,EACAhiF,EAAKlI,iBACLkI,EAAKhI,kBACLuoF,EACAvgF,EAAK1H,sBAEP4pF,EAAY77G,SAAW,CACrBg8G,EACAF,EACAF,EACAjiF,EAAKlI,iBACLkI,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CXwJ,SAAU,CACR,CACEtH,MAAOT,EAAMP,OACX,UACA,SACA,QACA,QACA,UACA,SACA,eAEFr2C,IAAK,KAEP,CACET,MAAO,cAIb,CACE41C,UAAW,WACXkC,MAAO,MACPr3C,IAAK,KAEP,CACEm1C,UAAW,WACXkC,MAAO,KACPr3C,IAAK,KAEP,CACEm1C,UAAW,WACXkC,MAAO,KACPr3C,IAAK,UNbbo/H,GAASl5E,iBAAiB,MOnC1B,SAAYzG,GACV,IAwEM09E,EAAW,CACfviF,QA5BU,CACV,QACA,OACA,OACA,QACA,WACA,UACA,QACA,OACA,cACA,MACA,OACA,KACA,OACA,KACA,SACA,YACA,MACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,OAIAlhD,KAnDY,CACZ,OACA,OACA,YACA,aACA,QACA,UACA,UACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,UACA,QAgCA0mI,QA3Ee,CACf,OACA,QACA,OACA,OAwEAC,SAtEgB,CAChB,SACA,MACA,QACA,UACA,OACA,OACA,MACA,OACA,MACA,QACA,QACA,UACA,OACA,UACA,WAyDF,MAAO,CACLrqI,KAAM,KACN2pD,QAAS,CAAC,UACVjG,SAAUyjF,EACV3lF,QAAS,KACT1xB,SAAU,CACR25B,EAAK3H,oBACL2H,EAAK1H,qBACL,CACE5C,UAAW,SACXwJ,SAAU,CACRc,EAAKhI,kBACLgI,EAAKlI,iBACL,CACEF,MAAO,IACPr3C,IAAK,OAIX,CACEm1C,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAOoI,EAAKvI,YAAc,MAC1BI,UAAW,GAEbmI,EAAKvH,gBAGT,CACEb,MAAO,MAET,CACElC,UAAW,WACXoE,cAAe,OACfv5C,IAAK,cACLm8C,YAAY,EACZr2B,SAAU,CACR25B,EAAKpH,WACL,CACElD,UAAW,SACXkC,MAAO,KACPr3C,IAAK,KACLk6C,YAAY,EACZR,SAAUyjF,EACV3lF,QAAS,ePxFrB4nF,GAASl5E,iBAAiB,OQrC1B,SAAazG,GACX,IAAM7I,EAAQ6I,EAAK7I,MACbopF,EAAU,CACd7qF,UAAW,SACXmC,UAAW,EACXqH,SAAU,CACR,CACEtH,MAAO,wBAET,CACEA,MAAOoI,EAAKxI,aAIZ0rF,EAAWljF,EAAK/H,UACtBirF,EAAShkF,SAAW,CAClB,CACEtH,MAAO,IACPr3C,IAAK,KAEP,CACEq3C,MAAO,IACPr3C,IAAK,MAGT,IAAM4iI,EAAY,CAChBztF,UAAW,WACXwJ,SAAU,CACR,CACEtH,MAAO,qBAET,CACEA,MAAO,iBAIP+lF,EAAW,CACfjoF,UAAW,UACXkC,MAAO,gCAEH0oF,EAAU,CACd5qF,UAAW,SACXrvB,SAAU,CAAC25B,EAAKrI,kBAChBuH,SAAU,CACR,CACEtH,MAAO,MACPr3C,IAAK,MACLs3C,UAAW,IAEb,CACED,MAAO,MACPr3C,IAAK,MACLs3C,UAAW,IAEb,CACED,MAAO,IACPr3C,IAAK,KAEP,CACEq3C,MAAO,IACPr3C,IAAK,OAIL6iI,EAAQ,CACZxrF,MAAO,KACPr3C,IAAK,KACL8lB,SAAU,CACR68G,EACAvF,EACAwF,EACA7C,EACAC,EACA,QAEF1oF,UAAW,GAMPwrF,EAAUlsF,EAAMP,OAHL,iBACe,gBACA,WAShC,MAAO,CACLrgD,KAAM,iBACN2pD,QAAS,CAAC,QACVjD,kBAAkB,EAClBlF,QAAS,KACT1xB,SAAU,CACR68G,EACA,CACExtF,UAAW,UACXkC,MAAO,MACPr3C,IAAK,OAEP,CACEq3C,MAlBaT,EAAMn+C,OACvBqqI,EAAS,eAAgBA,EAAS,KAClClsF,EAAMX,UAAU,kBAiBZd,UAAW,OACX6E,OAAQ,CACNh6C,IAAK,IACL8lB,SAAU,CACR68G,EACAE,EACAzF,EACAwF,EACA7C,EACAC,UR1EZZ,GAASl5E,iBAAiB,QVgB1B,SAAczG,GACZA,EAAK7I,MACL,IAAMmsF,EAAgB,iDAChBC,EAAmBD,EACvB9F,GAAW,OAAS8F,EAAgB,kBAAoBA,EAAgB,WAAY,OAAQ,GAkExF5F,EAAW,CACfviF,QAlEoB,CACpB,eACA,WACA,UACA,MACA,SACA,KACA,SACA,MACA,QACA,WACA,UACA,YACA,SACA,SACA,QACA,OACA,OACA,OACA,QACA,YACA,QACA,aACA,WACA,OACA,SACA,UACA,UACA,SACA,MACA,SACA,WACA,SACA,YACA,SACA,UACA,SACA,WACA,UACA,KACA,UA2BAwlF,QAnBe,CACf,QACA,OACA,QAiBA1mI,KAdY,CACZ,OACA,UACA,OACA,QACA,MACA,OACA,QACA,UAOA2mI,SA1BgB,CAChB,QACA,SA2BI4C,EAAa,CACjB9tF,UAAW,OACXkC,MAAO,IAAM0rF,EACbj9G,SAAU,CACR,CACEuxB,MAAO,KACPr3C,IAAK,KACL8lB,SAAU,CAAE,WAIZo9G,EAAS,CACb/tF,UAAW,SACXkC,MAAO,KACPr3C,IAAK,KACL05C,SAAUyjF,EACV7lF,UAAW,EACXxxB,SAAU,CACR25B,EAAK1H,sBAEPmC,YAAY,GAGd,MAAO,CACLlkD,KAAM,OACN2pD,QAAS,CAAE,OACXjG,SAAUyjF,EACV3lF,QAAS,QACT1xB,SAAU,CACR25B,EAAK/H,QACH,UACA,OACA,CACEJ,UAAW,EACXxxB,SAAU,CACR,CAEEuxB,MAAO,OACPC,UAAW,GAEb,CACEnC,UAAW,SACXkC,MAAO,iBAMf,CACEA,MAAO,wBACPqC,SAAU,SACVpC,UAAW,GAEbmI,EAAK3H,oBACL2H,EAAK1H,qBACL,CACEV,MAAO,MACPr3C,IAAK,MACLm1C,UAAW,SACXrvB,SAAU,CAAC25B,EAAKrI,mBAElBqI,EAAKlI,iBACLkI,EAAKhI,kBACL,CACEl4C,MAAO,CACL,oDACA,MACAwjI,GAEF5tF,UAAW,CACT,EAAG,UACH,EAAG,gBAGP,CAEE51C,MAAO,aACPs1C,MAAO,WAET,CACEwC,MAAO,CACL0rF,EACA,MACAA,EACA,MACA,KAEF5tF,UAAW,CACT,EAAG,OACH,EAAG,WACH,EAAG,aAGP,CACEkC,MAAO,CACL,SACA,MACA0rF,GAEF5tF,UAAW,CACT,EAAG,UACH,EAAG,eAELrvB,SAAU,CACRo9G,EACAzjF,EAAK3H,oBACL2H,EAAK1H,uBAGT,CAGEwB,cAAe,wBACfjC,UAAW,GAEb,CACED,MAAO,C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OAuBhBJ,EAxKS,CACXrxF,UAAW,SACXkC,MAAO,mCACPr3C,IAAK,OACLm8C,YAAY,GAsKVuqF,EACAC,EAnBe,CACjBxxF,UAAW,QACXkC,MAAO,SACPvxB,SAAU8gH,EACV5mI,IAAK,KAhMM,CACXm1C,UAAW,OACXwJ,SAAU,CAER,CACEtH,MAAO,iCAET,CACEA,MAAO,iCAGT,CACEA,MAAO,MACPr3C,IAAK,aAEP,CACEq3C,MAAO,MACPr3C,IAAK,aAEP,CACEq3C,MAAO,SAET,CACEA,MAAO,kBAGPvxB,SAAU,CACR,CACEuxB,MAAO,cACPr3C,IAAK,WAGTs3C,UAAW,KApCO,CACtBD,MAAO,cACPr3C,IAAK,KAqNHymI,EAzKmB,CACrBpvF,MAAO,eACP4E,aAAa,EACbn2B,SAAU,CACR,CACEqvB,UAAW,SACXkC,MAAO,KACPr3C,IAAK,KACL43C,cAAc,EACduE,YAAY,GAEd,CACEhH,UAAW,OACXkC,MAAO,OACPr3C,IAAK,IACL43C,cAAc,UZvBtBwnF,GAASl5E,iBAAiB,ca9C1B,SAAoBzG,GAClB,IAIMonF,EAAgB,yBA2JhBC,EAAiB,CACrB1oF,SAAUyoF,EACVjsF,QAAS,CACP,aACA,SACA,YACA,oBAGJ,MAAO,CACL5kD,KAAM,cACN2pD,QAAS,CACP,KACA,OACA,QACA,UACA,iBAEFjG,SAxBe,CACf0E,SAAUyoF,EACVjsF,QAtJU,CACV,MACA,QACA,QACA,OACA,SACA,SACA,UACA,QACA,SACA,MACA,QACA,WACA,OACA,WACA,SACA,OACA,UACA,KACA,KACA,SACA,OACA,OACA,OACA,OACA,QACA,SACA,MACA,OACA,QACA,UACA,SACA,WACA,WACA,SACA,WACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,YACA,OACA,gBACA,KACA,SACA,YACA,QACA,UACA,WACA,WACA,SACA,OACA,OACA,KACA,MACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,kBACA,WACA,aACA,UACA,OACA,YACA,OACA,SACA,SACA,WACA,mBACA,cACA,WACA,YACA,YACA,YACA,UACA,WACA,UACA,QACA,uBACA,WACA,oBACA,oBACA,kBACA,cACA,kBACA,WACA,WACA,YACA,oBACA,eACA,sBACA,gBACA,SACA,SACA,SACA,oBACA,UACA,WACA,mBACA,kBACA,QACA,eACA,4BACA,iBACA,oBACA,2BACA,YACA,eACA,gBACA,UACA,aACA,uBACA,0BACA,wBACA,uBACA,gBACA,mBACA,YACA,aACA,gBACA,iBACA,iBAuBAwlF,QArBe,CACf,QACA,OACA,QACA,OACA,MACA,MACA,KACA,QAcAC,SAZgB,CAChB,OACA,kBACA,mBACA,gBACA,iBACA,kBA2BA7oF,QAAS,KACT1xB,SAAU,CAnLM,CAChBqvB,UAAW,WACXkC,MAAO,wEAmLLoI,EAAK3H,oBACL2H,EAAK1H,qBACL0H,EAAKvH,cACLuH,EAAKhI,kBACLgI,EAAKlI,iBACL,CACEpC,UAAW,SACXwJ,SAAU,CACR,CACEtH,MAAO,KACPr3C,IAAK,IACLw3C,QAAS,MACT1xB,SAAU,CAAE25B,EAAKrI,qBAIvB,CACEjC,UAAW,OACXkC,MAAO,eACPr3C,IAAK,IACL05C,SAAU,CACRkB,QACE,kFAGJ90B,SAAU,CACR,CACEuxB,MAAO,OACPC,UAAW,GAEbmI,EAAKH,QAAQG,EAAKhI,kBAAmB,CACnCtC,UAAW,WAEb,CACEA,UAAW,SACXkC,MAAO,QACPr3C,IAAK,IACLw3C,QAAS,OAEXiI,EAAK3H,oBACL2H,EAAK1H,uBAGT,CACE5C,UAAW,QACXkC,MAAO,IAAMyvF,EAAelsF,QAAQ7lD,KAAK,KAAO,OAChDiL,IAAK,SACLm8C,YAAY,EACZzC,SAAUotF,EACVhhH,SAAU,CAAE25B,EAAKnH,wBAEnB,CACEjB,MAAO,MAAQoI,EAAKzI,oBACpBM,UAAW,Qb5LnB8nF,GAASl5E,iBAAiB,Qc/C1B,SAAczG,GACZ,IAAM7I,EAAQ6I,EAAK7I,MA2ObmwF,EAAkB,uBAClBC,EAAgB,CACpB5oF,SAAU,SACVxD,QA7Oe,CACf,MACA,SACA,QACA,MACA,QACA,OACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,UACA,WACA,MACA,QACA,WACA,UACA,UACA,SACA,MACA,KACA,OACA,OACA,OACA,QACA,WACA,aACA,YACA,cACA,WACA,aACA,MACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,MACA,UACA,OACA,SACA,WACA,OACA,WACA,WACA,WACA,gBACA,gBACA,aACA,WACA,eACA,eACA,YACA,cACA,UACA,cACA,iBACA,mBACA,cACA,WACA,WACA,WACA,gBACA,gBACA,aACA,cACA,aACA,QACA,OACA,SACA,OACA,OACA,KACA,MACA,KACA,QACA,MACA,QACA,OACA,OACA,OACA,OACA,KACA,UACA,SACA,OACA,SACA,QACA,YACA,MACA,QACA,KACA,KACA,MACA,QACA,SACA,SACA,SACA,SACA,KACA,KACA,OACA,KACA,MACA,MACA,OACA,UACA,KACA,MACA,MACA,OACA,UACA,OACA,MACA,MACA,QACA,SACA,YACA,OACA,MACA,KACA,YACA,KACA,KACA,OACA,OACA,UACA,WACA,WACA,WACA,OACA,OACA,MACA,SACA,UACA,QACA,SACA,UACA,YACA,SACA,QACA,MACA,SACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,WACA,aACA,YACA,UACA,cACA,cACA,WACA,aACA,aACA,QACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,SACA,aACA,OACA,SACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,OACA,UACA,MACA,OACA,OACA,QACA,KACA,WACA,KACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,QACA,MACA,QACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,QACA,QACA,MACA,MACA,OAOkB7lD,KAAK,MAEnBksI,EAAQ,CACZ9rF,UAAW,QACXkC,MAAO,UACPr3C,IAAK,MACL05C,SAAUstF,GAENC,EAAS,CACb5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MAAO,QACP8J,SAAU,CACR,CAAEtH,MAAO,SACT,CAAEA,MAAO,OAAQr3C,IAAK,QAGpBynI,EAAgBhoF,EAAKH,QAAQG,EAAKlI,iBAAkB,CACxDC,QAAS,OAYLkwF,EAAa,UACb3F,EAAS,CACbltF,MAAO,SACP8J,SAAU,CAbUc,EAAKH,QAAQG,EAAKhI,kBAAmB,CACzDD,QAAS,KACT1xB,SAAU25B,EAAKhI,kBAAkB3xB,SAASrtB,OAAOwoI,KAa/CwG,EAXYhoF,EAAKxG,kBAAkB,CACrC5B,MAAO,mBACPr3C,IAAK,gBACL8lB,SAAU25B,EAAKhI,kBAAkB3xB,SAASrtB,OAAOwoI,OAY7C2C,EAAS,CACb/uF,MAAO,SACP8J,SAAU,CACR,CAAEtH,MAAO,+BACT,CAAEA,MAAO,iCACT,CAAEA,MAAO,6CAET,CAAEA,MAAO,+EAEXC,UAAW,GAOPqwF,EAAM,CAGV,YACA,UACA,WACA,eACA,2BACA,WACA,aACA,gBACA,YAGA,MACA,OACA,OACA,UACA,eACA,QACA,UACA,eAMA,QACA,WACA,MACA,KACA,SACA,OACA,UACA,QACA,WACA,OACA,QACA,QACA,QACA,QACA,WACA,UACA,UACA,KACA,SACA,OACA,SACA,QACA,aACA,SACA,aACA,QACA,YACA,WACA,OACA,OACA,UACA,QACA,UACA,QACA,MACA,UACA,OACA,SACA,OACA,KACA,aACA,aACA,YACA,MACA,UACA,YACA,QACA,WACA,OACA,UACA,QACA,MACA,QACA,SACA,KACA,UACA,YACA,SACA,WACA,OACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,MACA,OACA,QACA,MACA,SAGIlK,EAAY,CAGhB,UACA,iBACA,qBACA,kBACA,gBACA,cACA,iBACA,2BACA,yBACA,kBACA,yBACA,eACA,YACA,oBACA,sBACA,kBACA,gBACA,iBACA,YACA,qBACA,iBACA,eACA,mBACA,2BACA,mBACA,kBACA,gBACA,iBACA,mBACA,mBACA,uBACA,sBACA,gBACA,oBACA,iBACA,aACA,iBACA,yBACA,2BACA,kCA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AAU,CACR,CAACyzB,cAAe,sBAChBkG,EAAKnH,wBAMT,CACEiB,cAAe,YACfjC,UAAW,EACXt3C,IAAK,IACLw3C,QAAS,OACT1xB,SAAU,CACR25B,EAAKH,QAAQG,EAAKnH,sBAAuB,CAAEzD,MAAO,kBAGtD,CACE0E,cAAe,MACfjC,UAAW,EACXt3C,IAAK,IACL8lB,SAAU,CAER,CACEvmB,MAAO,0BACPs1C,MAAO,WAGT4K,EAAKnH,wBAGTypF,EACA6B,OfjdNxE,GAASl5E,iBAAiB,gBgBjD1B,SAAqBzG,GACnB,MAAO,CACLzpD,KAAM,eACN2rD,YAAa,MACb77B,SAAU,CACR,CACEuxB,MAAO,cACPr3C,IAAK,MACL2hD,YAAa,MACb77B,SAAU,CAGR,CACEuxB,MAAO,OACPr3C,IAAK,OACLg8C,MAAM,GAER,CACE3E,MAAO,KACPr3C,IAAK,IACLg8C,MAAM,GAER,CACE3E,MAAO,KACPr3C,IAAK,IACLg8C,MAAM,GAERyD,EAAKH,QAAQG,EAAKlI,iBAAkB,CAClCC,QAAS,KACTrC,UAAW,KACXrvB,SAAU,KACVk2B,MAAM,IAERyD,EAAKH,QAAQG,EAAKhI,kBAAmB,CACnCD,QAAS,KACTrC,UAAW,KACXrvB,SAAU,KACVk2B,MAAM,WhBalBojF,GAASl5E,iBAAiB,aiBnD1B,SAAmBzG,GACjB,MAAO,CACLzpD,KAAM,aACN2pD,QAAS,CACP,OACA,OAEFK,mBAAmB,MjB6CvBo/E,GAASl5E,iBAAiB,UkBpD1B,SAAgBzG,GACd,IAAM7I,EAAQ6I,EAAK7I,MACbG,EAAW,s/hBACXmxF,EAAiB,CACrB,MACA,KACA,SACA,QACA,QACA,QACA,QACA,WACA,MACA,MACA,OACA,OACA,SACA,UACA,MACA,OACA,SACA,KACA,SACA,KACA,KACA,SACA,cACA,MACA,KACA,OACA,QACA,SACA,MACA,QACA,OACA,SAuGI/K,EAAW,CACf/+E,SAAU,sBACVxD,QAASstF,EACT7H,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,OAmCAD,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,QA2BA1mI,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,UAWIyuI,EAAS,CACbhzF,UAAW,OACXkC,MAAO,kBAGH4pF,EAAQ,CACZ9rF,UAAW,QACXkC,MAAO,KACPr3C,IAAK,KACL05C,SAAUyjF,EACV3lF,QAAS,KAGL4wF,EAAkB,CACtB/wF,MAAO,OACPC,UAAW,GAGPyqF,EAAS,CACb5sF,UAAW,SACXrvB,SAAU,CAAE25B,EAAKrI,kBACjBuH,SAAU,CACR,CACEtH,MAAO,yCACPr3C,IAAK,MACL8lB,SAAU,CACR25B,EAAKrI,iBACL+wF,GAEF7wF,UAAW,IAEb,CACED,MAAO,yCACPr3C,IAAK,MACL8lB,SAAU,CACR25B,EAAKrI,iBACL+wF,GAEF7wF,UAAW,IAEb,CACED,MAAO,8BACPr3C,IAAK,MACL8lB,SAAU,CACR25B,EAAKrI,iBACL+wF,EACAC,EACAnH,IAGJ,CACE5pF,MAAO,8BACPr3C,IAAK,MACL8lB,SAAU,CACR25B,EAAKrI,iBACL+wF,EACAC,EACAnH,IAGJ,CACE5pF,MAAO,eACPr3C,IAAK,IACLs3C,UAAW,IAEb,CACED,MAAO,eACPr3C,IAAK,IACLs3C,UAAW,IAEb,CACED,MAAO,4BACPr3C,IAAK,KAEP,CACEq3C,MAAO,4BACPr3C,IAAK,KAEP,CACEq3C,MAAO,4BACPr3C,IAAK,IACL8lB,SAAU,CACR25B,EAAKrI,iBACLgxF,EACAnH,IAGJ,CACE5pF,MAAO,4BACPr3C,I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Ef,CACL9yI,KAAM,OACN2pD,QAAS,CACP,KACA,UACA,UACA,OACA,OAEFjG,SAAUkvF,EACVpxF,QAAS,OACT1xB,SAAU,CACR25B,EAAK9G,QAAQ,CACXE,OAAQ,UAGTpgD,OAAOwwI,GACPxwI,OAAOswI,GACPtwI,OAAOuwI,OrBjSd5J,GAASl5E,iBAAiB,QsBtD1B,SAAczG,GACZ,IAAM7I,EAAQ6I,EAAK7I,MACbmxF,EAAkB,CACtB5yF,UAAW,wBACXmC,UAAW,EACXD,MAAOT,EAAMn+C,OACX,KACA,YACAgnD,EAAK1I,SACLH,EAAMX,UAAU,WAEdizF,EAAgB,wCA8DhBC,EAAW,CAEf,QAEA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,SACA,UACA,QACA,QACA,YACA,aACA,KACA,MACA,QACA,QACA,OACA,OACA,UACA,WACA,SACA,eACA,sBACA,oBACA,iBACA,WAEA,UACA,aACA,YACA,SACA,OACA,OACA,UACA,iBACA,gBACA,mBACA,OACA,SACA,QACA,UACA,eACA,eACA,eACA,QACA,kBACA,eACA,cACA,SACA,WACA,UACA,aACA,OACA,iBACA,eACA,OACA,SACA,WACA,eACA,aACA,oBA0BF,MAAO,CACLnzI,KAAM,OACN2pD,QAAS,CAAE,MACXjG,SAAU,CACR0E,SAAUqB,EAAK1I,SAAW,KAC1Br9C,KA7BU,CACZ,KACA,MACA,MACA,MACA,OACA,QACA,KACA,MACA,MACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,SACA,SACA,SACA,OAQEkhD,QA9Ja,CACf,WACA,KACA,QACA,QACA,SACA,MACA,QACA,QACA,WACA,QACA,KACA,MACA,OACA,OACA,SACA,QACA,QACA,KACA,MACA,KACA,OACA,KACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,WACA,OACA,MACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,QACA,OACA,MACA,OACA,SACA,SACA,UACA,MACA,UACA,QACA,QACA,SA4GEwlF,QA1Ga,CACf,OACA,QACA,OACA,OA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,kBAsFb0uB,UAAWmzD,GAAe1nI,KAAK,MAEjC+wB,SAAU,CACR,CACEuxB,MAAO6qF,EACP/sF,UAAW,WAEb,CACEkC,MAAO,eACPlC,UAAW,aAEb0vF,EACAplF,EAAKhI,kBACLgI,EAAKlI,iBACL4qF,EAAMG,SACNH,EAAMK,kBAGVL,EAAM5B,uBMjmBZnB,GAASl5E,iBAAiB,SuBxD1B,SAAezG,GACb,MAAO,CACLzpD,KAAM,gBACN2pD,QAAS,CAAE,UAAW,gBACtB75B,SAAU,CACR,CACEqvB,UAAW,OAIXkC,MAAO,qCACP2C,OAAQ,CACNh6C,IAAK,gBACL2hD,YAAa,cvB4CvBy9E,GAASl5E,iBAAiB,OwB5C1B,SAAazG,GACX,IAAM7I,EAAQ6I,EAAK7I,MACb0yF,EAAe7pF,EAAK/H,QAAQ,KAAM,KAmBlC0lF,EAAW,CACf,OACA,QAGA,WAUIC,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,aAmYIkM,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,gBAwBIC,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,iBAGIC,EAAYF,EAEZpM,EAAW,UAtfM,CACrB,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,QA1XyB,CACzB,MACA,MACA,YACA,OACA,QACA,QACA,OACA,SA0f0D94E,QAAO,SAACzJ,GAClE,OAAQ2uF,EAAmBx0F,SAAS6F,MAchC0pF,EAAgB,CACpBjtF,MAAOT,EAAMn+C,OAAO,KAAMm+C,EAAMP,OAAN,MAAAO,EAAgB6yF,GAAY,SACtDnyF,UAAW,EACXoC,SAAU,CACR2mF,SAAUoJ,IAmBd,MAAO,CACLzzI,KAAM,MACN0mD,kBAAkB,EAElBlF,QAAS,WACTkC,SAAU,CACR0E,SAAU,YACVxD,QArBJ,SAAyB2I,GAA+B,6DAAJ,GAApBmmF,EAAwB,EAAxBA,WAAYC,EAAY,EAAZA,KACpCC,EAAYD,EAElB,OADAD,EAAaA,GAAc,GACpBnmF,EAAKxgD,KAAI,SAACygD,GACf,OAAIA,EAAKjkD,MAAM,WAAamqI,EAAW30F,SAASyO,GACvCA,EACEomF,EAAUpmF,GACnB,UAAUA,EAAV,MAEOA,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","sources":["../node_modules/classnames/index.js","../node_modules/extend/index.js","../node_modules/format/format.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/inline-style-parser/index.js","../node_modules/mdurl/encode.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-router-dom/node_modules/isarray/index.js","../node_modules/react-router-dom/node_modules/path-to-regexp/index.js","../node_modules/react-router-dom/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router-dom/node_modules/react-is/index.js","../node_modules/react-side-effect/lib/index.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/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","../node_modules/unified/node_modules/is-buffer/index.js","../node_modules/vfile/node_modules/is-buffer/index.js","../node_modules/warning/warning.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/construct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeFunction.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../node_modules/highlight.js/lib/core.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/history/esm/history.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router-dom/node_modules/react-router/modules/createNameContext.js","../node_modules/react-router-dom/node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router-dom/node_modules/react-router/modules/RouterContext.js","../node_modules/react-router-dom/node_modules/react-router/modules/Router.js","../node_modules/react-router-dom/node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router-dom/node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router-dom/node_modules/react-router/modules/matchPath.js","../node_modules/react-router-dom/node_modules/react-router/modules/Route.js","../node_modules/react-router-dom/node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router-dom/node_modules/react-router/modules/Switch.js","../node_modules/react-router-dom/node_modules/react-router/modules/hooks.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/reactstrap/src/utils.js","../node_modules/reactstrap/src/Container.js","../node_modules/reactstrap/src/Row.js","../node_modules/reactstrap/src/Col.js","../node_modules/reactstrap/src/Navbar.js","../node_modules/reactstrap/src/NavbarBrand.js","../node_modules/reactstrap/src/NavbarText.js","../node_modules/reactstrap/src/NavbarToggler.js","../node_modules/reactstrap/src/Nav.js","../node_modules/reactstrap/src/NavItem.js","../node_modules/reactstrap/src/NavLink.js","../node_modules/reactstrap/src/Breadcrumb.js","../node_modules/reactstrap/src/BreadcrumbItem.js","../node_modules/reactstrap/src/Button.js","../node_modules/reactstrap/src/ButtonToggle.js","../node_modules/reactstrap/src/DropdownContext.js","../node_modules/reactstrap/src/Dropdown.js","../node_modules/reactstrap/src/ButtonDropdown.js","../node_modules/reactstrap/src/ButtonGroup.js","../node_modules/reactstrap/src/ButtonToolbar.js","../node_modules/reactstrap/src/DropdownItem.js","../node_modules/reactstrap/src/DropdownMenu.js","../node_modules/reactstrap/src/DropdownToggle.js","../node_modules/reactstrap/src/Fade.js","../node_modules/reactstrap/src/AccordionContext.js","../node_modules/reactstrap/src/Accordion.js","../node_modules/reactstrap/src/UncontrolledAccordion.js","../node_modules/reactstrap/src/AccordionHeader.js","../node_modules/reactstrap/src/AccordionItem.js","../node_modules/reactstrap/src/Collapse.js","../node_modules/reactstrap/src/AccordionBody.js","../node_modules/reactstrap/src/Badge.js","../node_modules/reactstrap/src/Card.js","../node_modules/reactstrap/src/CardGroup.js","../node_modules/reactstrap/src/CardDeck.js","../node_modules/reactstrap/src/CardColumns.js","../node_modules/reactstrap/src/CardBody.js","../node_modules/reactstrap/src/CardLink.js","../node_modules/reactstrap/src/CardFooter.js","../node_modules/reactstrap/src/CardHeader.js","../node_modules/reactstrap/src/CardImg.js","../node_modules/reactstrap/src/CardImgOverlay.js","../node_modules/reactstrap/src/CarouselItem.js","../node_modules/reactstrap/src/CarouselContext.js","../node_modules/reactstrap/src/Carousel.js","../node_modules/reactstrap/src/CarouselControl.js","../node_modules/reactstrap/src/CarouselIndicators.js","../node_modules/reactstrap/src/CarouselCaption.js","../node_modules/reactstrap/src/UncontrolledCarousel.js","../node_modules/reactstrap/src/CardSubtitle.js","../node_modules/reactstrap/src/CardText.js","../node_modules/reactstrap/src/CardTitle.js","../node_modules/reactstrap/src/PopperContent.js","../node_modules/reactstrap/src/PopperTargetHelper.js","../node_modules/reactstrap/src/TooltipPopoverWrapper.js","../node_modules/reactstrap/src/Popover.js","../node_modules/reactstrap/src/UncontrolledPopover.js","../node_modules/reactstrap/src/PopoverHeader.js","../node_modules/reactstrap/src/PopoverBody.js","../node_modules/reactstrap/src/Progress.js","../node_modules/reactstrap/src/Portal.js","../node_modules/reactstrap/src/Modal.js","../node_modules/reactstrap/src/ModalHeader.js","../node_modules/reactstrap/src/ModalBody.js","../node_modules/reactstrap/src/ModalFooter.js","../node_modules/reactstrap/src/Tooltip.js","../node_modules/reactstrap/src/Table.js","../node_modules/reactstrap/src/ListGroup.js","../node_modules/reactstrap/src/Form.js","../node_modules/reactstrap/src/FormFeedback.js","../node_modules/reactstrap/src/FormGroup.js","../node_modules/reactstrap/src/FormText.js","../node_modules/reactstrap/src/Input.js","../node_modules/reactstrap/src/InputGroup.js","../node_modules/reactstrap/src/InputGroupText.js","../node_modules/reactstrap/src/Label.js","../node_modules/reactstrap/src/Media.js","../node_modules/reactstrap/src/Offcanvas.js","../node_modules/reactstrap/src/OffcanvasBody.js","../node_modules/reactstrap/src/OffcanvasHeader.js","../node_modules/reactstrap/src/Pagination.js","../node_modules/reactstrap/src/PaginationItem.js","../node_modules/reactstrap/src/PaginationLink.js","../node_modules/reactstrap/src/TabContext.js","../node_modules/reactstrap/src/TabContent.js","../node_modules/reactstrap/src/TabPane.js","../node_modules/reactstrap/src/Alert.js","../node_modules/reactstrap/src/Toast.js","../node_modules/reactstrap/src/ToastBody.js","../node_modules/reactstrap/src/ToastHeader.js","../node_modules/reactstrap/src/ListGroupItem.js","../node_modules/reactstrap/src/ListGroupItemHeading.js","../node_modules/reactstrap/src/ListGroupItemText.js","../node_modules/reactstrap/src/List.js","../node_modules/reactstrap/src/ListInlineItem.js","../node_modules/reactstrap/src/UncontrolledAlert.js","../node_modules/reactstrap/src/UncontrolledButtonDropdown.js","../node_modules/reactstrap/src/UncontrolledCollapse.js","../node_modules/reactstrap/src/UncontrolledDropdown.js","../node_modules/reactstrap/src/UncontrolledTooltip.js","../node_modules/reactstrap/src/Spinner.js","../node_modules/reactstrap/src/Placeholder.js","../node_modules/reactstrap/src/PlaceholderButton.js","../node_modules/reactstrap/src/polyfill.js","components/Footer.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","components/NavMenu.tsx","components/Layout.tsx","blogPosts/One.tsx","blogPosts/Two.tsx","blogPosts/Five.tsx","blogPosts/Four.tsx","blogPosts/Seven.tsx","blogPosts/Eight.tsx","blogPosts/Post.tsx","blogPosts/Nine.tsx","blogPosts/Six.tsx","blogPosts/Three.tsx","components/Home.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/unist-util-stringify-position/index.js","../node_modules/vfile-message/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/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.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-util-subtokenize/index.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/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/unist-builder/index.js","../node_modules/unist-util-is/index.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/unist-util-visit/index.js","../node_modules/unist-util-position/index.js","../node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents/index.js","../node_modules/mdast-util-definitions/node_modules/unist-util-visit/index.js","../node_modules/mdast-util-definitions/index.js","../node_modules/mdast-util-to-hast/lib/traverse.js","../node_modules/micromark-util-encode/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/wrap.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.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.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/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/unist-util-generated/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/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/react-markdown/lib/rehype-filter.js","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/highlight.js/es/languages/css.js","../node_modules/highlight.js/es/languages/java.js","../node_modules/highlight.js/es/languages/javascript.js","../node_modules/highlight.js/es/languages/kotlin.js","../node_modules/highlight.js/es/languages/less.js","../node_modules/highlight.js/es/languages/scss.js","../node_modules/highlight.js/es/languages/swift.js","../node_modules/highlight.js/es/languages/typescript.js","../node_modules/highlight.js/es/core.js","../node_modules/fault/index.js","../node_modules/lowlight/lib/core.js","../node_modules/lowlight/lib/common.js","../node_modules/highlight.js/es/languages/arduino.js","../node_modules/highlight.js/es/languages/bash.js","../node_modules/highlight.js/es/languages/c.js","../node_modules/highlight.js/es/languages/cpp.js","../node_modules/highlight.js/es/languages/csharp.js","../node_modules/highlight.js/es/languages/diff.js","../node_modules/highlight.js/es/languages/go.js","../node_modules/highlight.js/es/languages/ini.js","../node_modules/highlight.js/es/languages/json.js","../node_modules/highlight.js/es/languages/lua.js","../node_modules/highlight.js/es/languages/makefile.js","../node_modules/highlight.js/es/languages/markdown.js","../node_modules/highlight.js/es/languages/objectivec.js","../node_modules/highlight.js/es/languages/perl.js","../node_modules/highlight.js/es/languages/php.js","../node_modules/highlight.js/es/languages/php-template.js","../node_modules/highlight.js/es/languages/plaintext.js","../node_modules/highlight.js/es/languages/python.js","../node_modules/highlight.js/es/languages/python-repl.js","../node_modules/highlight.js/es/languages/r.js","../node_modules/highlight.js/es/languages/ruby.js","../node_modules/highlight.js/es/languages/rust.js","../node_modules/highlight.js/es/languages/shell.js","../node_modules/highlight.js/es/languages/sql.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/highlight.js/es/languages/vbnet.js","../node_modules/highlight.js/es/languages/xml.js","../node_modules/highlight.js/es/languages/yaml.js","../node_modules/hast-util-is-element/index.js","../node_modules/unist-util-find-after/index.js","../node_modules/hast-util-to-text/index.js","../node_modules/rehype-highlight/lib/index.js","../node_modules/react-helmet/es/Helmet.js","components/BlogPost.tsx","components/NotFound.tsx","App.tsx","registerServiceWorker.js","index.tsx"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","//\n// format - printf-like string formatting for JavaScript\n// github.com/samsonjs/format\n// @_sjs\n//\n// Copyright 2010 - 2013 Sami Samhuri \n//\n// MIT License\n// http://sjs.mit-license.org\n//\n\n;(function() {\n\n //// Export the API\n var namespace;\n\n // CommonJS / Node module\n if (typeof module !== 'undefined') {\n namespace = module.exports = format;\n }\n\n // Browsers and other environments\n else {\n // Get the global object. Works in ES3, ES5, and ES5 strict mode.\n namespace = (function(){ return this || (1,eval)('this') }());\n }\n\n namespace.format = format;\n namespace.vsprintf = vsprintf;\n\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n namespace.printf = printf;\n }\n\n function printf(/* ... */) {\n console.log(format.apply(null, arguments));\n }\n\n function vsprintf(fmt, replacements) {\n return format.apply(null, [fmt].concat(replacements));\n }\n\n function format(fmt) {\n var argIndex = 1 // skip initial format argument\n , args = [].slice.call(arguments)\n , i = 0\n , n = fmt.length\n , result = ''\n , c\n , escaped = false\n , arg\n , tmp\n , leadingZero = false\n , precision\n , nextArg = function() { return args[argIndex++]; }\n , slurpNumber = function() {\n var digits = '';\n while (/\\d/.test(fmt[i])) {\n digits += fmt[i++];\n c = fmt[i];\n }\n return digits.length > 0 ? parseInt(digits) : null;\n }\n ;\n for (; i < n; ++i) {\n c = fmt[i];\n if (escaped) {\n escaped = false;\n if (c == '.') {\n leadingZero = false;\n c = fmt[++i];\n }\n else if (c == '0' && fmt[i + 1] == '.') {\n leadingZero = true;\n i += 2;\n c = fmt[i];\n }\n else {\n leadingZero = true;\n }\n precision = slurpNumber();\n switch (c) {\n case 'b': // number in binary\n result += parseInt(nextArg(), 10).toString(2);\n break;\n case 'c': // character\n arg = nextArg();\n if (typeof arg === 'string' || arg instanceof String)\n result += arg;\n else\n result += String.fromCharCode(parseInt(arg, 10));\n break;\n case 'd': // number in decimal\n result += parseInt(nextArg(), 10);\n break;\n case 'f': // floating point number\n tmp = String(parseFloat(nextArg()).toFixed(precision || 6));\n result += leadingZero ? tmp : tmp.replace(/^0/, '');\n break;\n case 'j': // JSON\n result += JSON.stringify(nextArg());\n break;\n case 'o': // number in octal\n result += '0' + parseInt(nextArg(), 10).toString(8);\n break;\n case 's': // string\n result += nextArg();\n break;\n case 'x': // lowercase hexadecimal\n result += '0x' + parseInt(nextArg(), 10).toString(16);\n break;\n case 'X': // uppercase hexadecimal\n result += '0x' + parseInt(nextArg(), 10).toString(16).toUpperCase();\n break;\n default:\n result += c;\n break;\n }\n } else if (c === '%') {\n escaped = true;\n } else {\n result += c;\n }\n }\n return result;\n }\n\n}());\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.4.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n // eslint-disable-next-line no-undefined\n while (match[i] !== undefined) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\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}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\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}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\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}","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}","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 _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}","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import * as React from 'react';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n });\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import PropTypes from 'prop-types';\n\n// https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\nexport function getScrollbarWidth() {\n let scrollDiv = document.createElement('div');\n // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\n\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? `${padding}px` : null;\n}\n\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\n\nexport function getOriginalBodyPadding() {\n const style = window.getComputedStyle(document.body, null);\n\n return parseInt((style && style.getPropertyValue('padding-right')) || 0, 10);\n}\n\nexport function conditionallyUpdateScrollbar() {\n const scrollbarWidth = getScrollbarWidth();\n // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n const fixedContent = document.querySelectorAll(\n '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\n )[0];\n const bodyPadding = fixedContent\n ? parseInt(fixedContent.style.paddingRight || 0, 10)\n : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\n\nlet globalCssModule;\n\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\n\nexport function mapToCssModules(className = '', cssModule = globalCssModule) {\n if (!cssModule) return className;\n return className\n .split(' ')\n .map(c => cssModule[c] || c)\n .join(' ');\n}\n\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\nexport function omit(obj, omitKeys) {\n const result = {};\n Object.keys(obj).forEach(key => {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\nexport function pick(obj, keys) {\n const pickKeys = Array.isArray(keys) ? keys : [keys];\n let length = pickKeys.length;\n let key;\n const result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n return result;\n}\n\nlet warned = {};\n\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n warned[message] = true;\n }\n}\n\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName, ...rest) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\n `\"${propName}\" property of \"${componentName}\" has been deprecated.\\n${explanation}`\n );\n }\n\n return propType(props, propName, componentName, ...rest);\n };\n}\n\n// Shim Element if needed (e.g. in Node environment)\nconst Element = (typeof window === 'object' && window.Element) || function() {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error(\n 'Invalid prop `' +\n propName +\n '` supplied to `' +\n componentName +\n '`. Expected prop to be an instance of Element. Validation failed.'\n );\n }\n}\n\nexport const targetPropType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n DOMElement,\n PropTypes.shape({ current: PropTypes.any }),\n]);\n\nexport const tagPropType = PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.shape({ $$typeof: PropTypes.symbol, render: PropTypes.func }),\n PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.shape({ $$typeof: PropTypes.symbol, render: PropTypes.func }),\n ]))\n]);\n\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\nexport const TransitionTimeouts = {\n Fade: 150, // $transition-fade\n Collapse: 350, // $transition-collapse\n Modal: 300, // $modal-transition\n Carousel: 600, // $carousel-transition\n Offcanvas: 300, // $offcanvas-transition\n};\n\n// Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\nexport const TransitionPropTypeKeys = [\n 'in',\n 'mountOnEnter',\n 'unmountOnExit',\n 'appear',\n 'enter',\n 'exit',\n 'timeout',\n 'onEnter',\n 'onEntering',\n 'onEntered',\n 'onExit',\n 'onExiting',\n 'onExited',\n];\n\nexport const TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited',\n};\n\nexport const keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80,\n};\n\nexport const PopperPlacements = [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]'\n }\n return Object.prototype.toString.call(value)\n}\n\nexport function toNumber(value) {\n const type = typeof value;\n const NAN = 0 / 0;\n if (type === 'number') {\n return value\n }\n if (type === 'symbol' || (type === 'object' && getTag(value) === '[object Symbol]')) {\n return NAN\n }\n if (isObject(value)) {\n const other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? `${other}` : other\n }\n if (type !== 'string') {\n return value === 0 ? value : +value\n }\n value = value.replace(/^\\s+|\\s+$/g, '');\n const isBinary = /^0b[01]+$/i.test(value);\n return (isBinary || /^0o[0-7]+$/i.test(value))\n ? parseInt(value.slice(2), isBinary ? 2 : 8)\n : (/^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value)\n}\n\nexport function isObject(value) {\n const type = typeof value;\n return value != null && (type === 'object' || type === 'function')\n}\n\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false\n }\n\n const tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' ||\n tag === '[object GeneratorFunction]' || tag === '[object Proxy]'\n}\n\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n if (isFunction(target)) {\n return target();\n }\n if (typeof target === 'string' && canUseDOM) {\n let selection = document.querySelectorAll(target);\n if (!selection.length) {\n selection = document.querySelectorAll(`#${target}`);\n }\n if (!selection.length) {\n throw new Error(\n `The target '${target}' could not be identified in the dom, tip: check spelling`\n );\n }\n return selection;\n }\n return target;\n}\n\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n return Array.isArray(els) || (canUseDOM && typeof els.length === 'number');\n}\n\nexport function getTarget(target, allElements) {\n const els = findDOMElements(target);\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n if (els === null) {\n return [];\n }\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n return els;\n }\n}\n\nexport const defaultToggleEvents = ['touchstart', 'click'];\n\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n let els = _els;\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n let events = _events;\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (\n !isArrayOrNodeList(els) ||\n typeof handler !== 'function' ||\n !Array.isArray(events)\n ) {\n throw new Error(`\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\n The second must be a function.\n The third is a string or an array of strings that represents DOM events\n `);\n }\n\n Array.prototype.forEach.call(events, event => {\n Array.prototype.forEach.call(els, el => {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, event => {\n Array.prototype.forEach.call(els, el => {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\n\nexport const focusableElements = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'object',\n 'embed',\n '[tabindex]:not(.modal)',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n fluid: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst Container = (props) => {\n const {\n className,\n cssModule,\n fluid,\n tag: Tag,\n ...attributes\n } = props;\n\n let containerClass = 'container';\n if (fluid === true) {\n containerClass = 'container-fluid';\n }\n else if (fluid) {\n containerClass = `container-${fluid}`;\n }\n\n const classes = mapToCssModules(classNames(\n className,\n containerClass\n ), cssModule);\n\n return (\n \n );\n};\n\nContainer.propTypes = propTypes;\nContainer.defaultProps = defaultProps;\n\nexport default Container;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, deprecated } from './utils';\n\nconst rowColWidths = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst rowColsPropType = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\n\nconst propTypes = {\n tag: tagPropType,\n noGutters: deprecated(PropTypes.bool, \"Please use Bootstrap 5 gutter utility classes. https://getbootstrap.com/docs/5.0/layout/gutters/\"),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n form: PropTypes.bool,\n xs: rowColsPropType,\n sm: rowColsPropType,\n md: rowColsPropType,\n lg: rowColsPropType,\n xl: rowColsPropType,\n xxl: rowColsPropType\n};\n\nconst defaultProps = {\n tag: 'div',\n widths: rowColWidths\n};\n\nconst Row = (props) => {\n const {\n className,\n cssModule,\n noGutters,\n tag: Tag,\n form,\n widths,\n ...attributes\n } = props;\n\n const colClasses = [];\n\n widths.forEach((colWidth, i) => {\n let colSize = props[colWidth];\n\n delete attributes[colWidth];\n\n if (!colSize) {\n return;\n }\n\n const isXs = !i;\n colClasses.push(isXs ? `row-cols-${colSize}` : `row-cols-${colWidth}-${colSize}`);\n });\n\n const classes = mapToCssModules(classNames(\n className,\n noGutters ? 'gx-0' : null,\n form ? 'form-row' : 'row',\n colClasses\n ), cssModule);\n\n return (\n \n );\n};\n\nRow.propTypes = propTypes;\nRow.defaultProps = defaultProps;\n\nexport default Row;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, isObject } from './utils';\n\nconst colWidths = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst stringOrNumberProp = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\n\nconst columnProps = PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.number,\n PropTypes.string,\n PropTypes.shape({\n size: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string]),\n order: stringOrNumberProp,\n offset: stringOrNumberProp\n })\n]);\n\nconst propTypes = {\n tag: tagPropType,\n xs: columnProps,\n sm: columnProps,\n md: columnProps,\n lg: columnProps,\n xl: columnProps,\n xxl: columnProps,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n widths: PropTypes.array,\n};\n\nconst defaultProps = {\n tag: 'div',\n widths: colWidths,\n};\n\nconst getColumnSizeClass = (isXs, colWidth, colSize) => {\n if (colSize === true || colSize === '') {\n return isXs ? 'col' : `col-${colWidth}`;\n } else if (colSize === 'auto') {\n return isXs ? 'col-auto' : `col-${colWidth}-auto`;\n }\n\n return isXs ? `col-${colSize}` : `col-${colWidth}-${colSize}`;\n};\n\n\nexport const getColumnClasses = (attributes, cssModule, widths=colWidths) => {\n const colClasses = [];\n \n widths.forEach((colWidth, i) => {\n let columnProp = attributes[colWidth];\n\n delete attributes[colWidth];\n\n if (!columnProp && columnProp !== '') {\n return;\n }\n\n const isXs = !i;\n\n if (isObject(columnProp)) {\n const colSizeInterfix = isXs ? '-' : `-${colWidth}-`;\n const colClass = getColumnSizeClass(isXs, colWidth, columnProp.size);\n\n colClasses.push(mapToCssModules(classNames({\n [colClass]: columnProp.size || columnProp.size === '',\n [`order${colSizeInterfix}${columnProp.order}`]: columnProp.order || columnProp.order === 0,\n [`offset${colSizeInterfix}${columnProp.offset}`]: columnProp.offset || columnProp.offset === 0\n }), cssModule));\n } else {\n const colClass = getColumnSizeClass(isXs, colWidth, columnProp);\n colClasses.push(colClass);\n }\n });\n\n return {\n colClasses,\n attributes\n }\n}\n\n\nconst Col = (props) => {\n const {\n className,\n cssModule,\n widths,\n tag: Tag,\n ...attributes\n } = props;\n \n let { attributes : modifiedAttributes, colClasses } = getColumnClasses(attributes, cssModule, widths)\n\n if (!colClasses.length) {\n colClasses.push('col');\n }\n\n const classes = mapToCssModules(classNames(\n className,\n colClasses\n ), cssModule);\n\n return (\n \n );\n};\n\nCol.propTypes = propTypes;\nCol.defaultProps = defaultProps;\n\nexport default Col;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n light: PropTypes.bool,\n dark: PropTypes.bool,\n full: PropTypes.bool,\n fixed: PropTypes.string,\n sticky: PropTypes.string,\n color: PropTypes.string,\n role: PropTypes.string,\n tag: tagPropType,\n container: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n expand: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n tag: 'nav',\n expand: false,\n container: 'fluid',\n};\n\nconst getExpandClass = (expand) => {\n if (expand === false) {\n return false;\n } else if (expand === true || expand === 'xs') {\n return 'navbar-expand';\n }\n\n return `navbar-expand-${expand}`;\n};\n\nconst Navbar = (props) => {\n const {\n expand,\n className,\n cssModule,\n light,\n dark,\n fixed,\n sticky,\n color,\n container,\n tag: Tag,\n children,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar',\n getExpandClass(expand),\n {\n 'navbar-light': light,\n 'navbar-dark': dark,\n [`bg-${color}`]: color,\n [`fixed-${fixed}`]: fixed,\n [`sticky-${sticky}`]: sticky,\n }\n ), cssModule);\n\n const containerClass = container && (container === true) ? 'container' : `container-${container}`;\n\n return (\n \n { container ?\n
\n {children}\n
:\n children\n }\n
\n );\n};\n\nNavbar.propTypes = propTypes;\nNavbar.defaultProps = defaultProps;\n\nexport default Navbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'a'\n};\n\nconst NavbarBrand = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar-brand'\n ), cssModule);\n\n return (\n \n );\n};\n\nNavbarBrand.propTypes = propTypes;\nNavbarBrand.defaultProps = defaultProps;\n\nexport default NavbarBrand;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\n\nconst defaultProps = {\n tag: 'span'\n};\n\nconst NavbarText = (props) => {\n const {\n className,\n cssModule,\n active,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar-text'\n ), cssModule);\n\n return (\n \n );\n};\n\nNavbarText.propTypes = propTypes;\nNavbarText.defaultProps = defaultProps;\n\nexport default NavbarText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n type: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n tag: 'button',\n type: 'button'\n};\n\nconst NavbarToggler = (props) => {\n const {\n className,\n cssModule,\n children,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'navbar-toggler'\n ), cssModule);\n\n return (\n \n {children || }\n \n );\n};\n\nNavbarToggler.propTypes = propTypes;\nNavbarToggler.defaultProps = defaultProps;\n\nexport default NavbarToggler;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tabs: PropTypes.bool,\n pills: PropTypes.bool,\n vertical: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n horizontal: PropTypes.string,\n justified: PropTypes.bool,\n fill: PropTypes.bool,\n navbar: PropTypes.bool,\n card: PropTypes.bool,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'ul',\n vertical: false,\n};\n\nconst getVerticalClass = (vertical) => {\n if (vertical === false) {\n return false;\n } else if (vertical === true || vertical === 'xs') {\n return 'flex-column';\n }\n\n return `flex-${vertical}-column`;\n};\n\nconst Nav = (props) => {\n const {\n className,\n cssModule,\n tabs,\n pills,\n vertical,\n horizontal,\n justified,\n fill,\n navbar,\n card,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n navbar ? 'navbar-nav' : 'nav',\n horizontal ? `justify-content-${horizontal}` : false,\n getVerticalClass(vertical),\n {\n 'nav-tabs': tabs,\n 'card-header-tabs': card && tabs,\n 'nav-pills': pills,\n 'card-header-pills': card && pills,\n 'nav-justified': justified,\n 'nav-fill': fill,\n }\n ), cssModule);\n\n return (\n \n );\n};\n\nNav.propTypes = propTypes;\nNav.defaultProps = defaultProps;\n\nexport default Nav;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'li'\n};\n\nconst NavItem = (props) => {\n const {\n className,\n cssModule,\n active,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'nav-item',\n active ? 'active' : false\n ), cssModule);\n\n return (\n \n );\n};\n\nNavItem.propTypes = propTypes;\nNavItem.defaultProps = defaultProps;\n\nexport default NavItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n onClick: PropTypes.func,\n href: PropTypes.any,\n};\n\nconst defaultProps = {\n tag: 'a',\n};\n\nclass NavLink extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.href === '#') {\n e.preventDefault();\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n }\n\n render() {\n let {\n className,\n cssModule,\n active,\n tag: Tag,\n innerRef,\n ...attributes\n } = this.props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'nav-link',\n {\n disabled: attributes.disabled,\n active: active\n }\n ), cssModule);\n\n return (\n \n );\n }\n}\n\nNavLink.propTypes = propTypes;\nNavLink.defaultProps = defaultProps;\n\nexport default NavLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n listTag: tagPropType,\n className: PropTypes.string,\n listClassName: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n 'aria-label': PropTypes.string\n};\n\nconst defaultProps = {\n tag: 'nav',\n listTag: 'ol',\n 'aria-label': 'breadcrumb'\n};\n\nconst Breadcrumb = (props) => {\n const {\n className,\n listClassName,\n cssModule,\n children,\n tag: Tag,\n listTag: ListTag,\n 'aria-label': label,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className\n ), cssModule);\n\n const listClasses = mapToCssModules(classNames(\n 'breadcrumb',\n listClassName\n ), cssModule);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nBreadcrumb.propTypes = propTypes;\nBreadcrumb.defaultProps = defaultProps;\n\nexport default Breadcrumb;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n active: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'li'\n};\n\nconst BreadcrumbItem = (props) => {\n const {\n className,\n cssModule,\n active,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n active ? 'active' : false,\n 'breadcrumb-item'\n ), cssModule);\n\n return (\n \n );\n};\n\nBreadcrumbItem.propTypes = propTypes;\nBreadcrumbItem.defaultProps = defaultProps;\n\nexport default BreadcrumbItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n active: PropTypes.bool,\n 'aria-label': PropTypes.string,\n block: PropTypes.bool,\n color: PropTypes.string,\n disabled: PropTypes.bool,\n outline: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n onClick: PropTypes.func,\n size: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n close: PropTypes.bool,\n};\n\nconst defaultProps = {\n color: 'secondary',\n tag: 'button',\n};\n\nclass Button extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n return this.props.onClick(e);\n }\n }\n\n render() {\n let {\n active,\n 'aria-label': ariaLabel,\n block,\n className,\n close,\n cssModule,\n color,\n outline,\n size,\n tag: Tag,\n innerRef,\n ...attributes\n } = this.props;\n\n const btnOutlineColor = `btn${outline ? '-outline' : ''}-${color}`;\n\n const classes = mapToCssModules(classNames(\n className,\n close && 'btn-close',\n close || 'btn',\n close || btnOutlineColor,\n size ? `btn-${size}` : false,\n block ? 'd-block w-100' : false,\n { active, disabled: this.props.disabled }\n ), cssModule);\n\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n\n const defaultAriaLabel = close ? 'Close' : null;\n\n return (\n \n );\n }\n}\n\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\n\nexport default Button;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\nimport Button from \"./Button\";\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst propTypes = {\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n defaultValue: PropTypes.bool,\n};\n\nconst defaultProps = {\n defaultValue: false,\n};\n\nclass ButtonToggle extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n toggled: props.defaultValue,\n focus: false,\n }\n\n this.onBlur = this.onBlur.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onClick = this.onClick.bind(this);\n }\n\n onBlur(e) {\n if(this.props.onBlur) {\n this.props.onBlur(e);\n }\n\n this.setState({\n focus: false,\n });\n }\n\n onFocus(e) {\n if(this.props.onFocus) {\n this.props.onFocus(e);\n }\n\n this.setState({\n focus: true,\n });\n }\n\n onClick(e) {\n if(this.props.onClick) {\n this.props.onClick(e);\n }\n\n this.setState(({ toggled }) => ({\n toggled: !toggled,\n }));\n }\n\n render() {\n const {\n className,\n ...attributes\n } = this.props;\n\n const classes = mapToCssModules(classNames(\n className, \n { \n focus: this.state.focus, \n }\n ), this.props.cssModule);\n\n return ;\n }\n}\n\nButtonToggle.propTypes = propTypes;\nButtonToggle.defaultProps = defaultProps;\n\nexport default ButtonToggle;\n","import React from 'react';\n\n/**\n * DropdownContext\n * {\n * toggle: PropTypes.func.isRequired,\n * isOpen: PropTypes.bool.isRequired,\n * direction: PropTypes.oneOf(['up', 'down', 'start', 'end']).isRequired,\n * inNavbar: PropTypes.bool.isRequired,\n * disabled: PropTypes.bool\n * }\n */\nexport const DropdownContext = React.createContext({});","/* eslint react/no-find-dom-node: 0 */\n// https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Manager } from 'react-popper';\nimport classNames from 'classnames';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, omit, keyCodes, tagPropType } from './utils';\n\nconst propTypes = {\n a11y: PropTypes.bool,\n disabled: PropTypes.bool,\n direction: PropTypes.oneOf(['up', 'down', 'start', 'end', 'left', 'right']),\n group: PropTypes.bool,\n isOpen: PropTypes.bool,\n nav: PropTypes.bool,\n active: PropTypes.bool,\n size: PropTypes.string,\n tag: tagPropType,\n toggle: PropTypes.func,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n inNavbar: PropTypes.bool,\n setActiveFromChild: PropTypes.bool,\n menuRole: PropTypes.oneOf(['listbox', 'menu'])\n};\n\nconst defaultProps = {\n a11y: true,\n isOpen: false,\n direction: 'down',\n nav: false,\n active: false,\n inNavbar: false,\n setActiveFromChild: false\n};\n\nconst preventDefaultKeys = [\n keyCodes.space,\n keyCodes.enter,\n keyCodes.up,\n keyCodes.down,\n keyCodes.end,\n keyCodes.home\n]\n\nclass Dropdown extends React.Component {\n constructor(props) {\n super(props);\n\n this.addEvents = this.addEvents.bind(this);\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.removeEvents = this.removeEvents.bind(this);\n this.toggle = this.toggle.bind(this);\n this.handleMenuRef = this.handleMenuRef.bind(this);\n\n this.containerRef = React.createRef();\n this.menuRef = React.createRef();\n }\n\n handleMenuRef(menuRef) {\n this.menuRef.current = menuRef;\n }\n\n getContextValue() {\n return {\n toggle: this.toggle,\n isOpen: this.props.isOpen,\n direction: (this.props.direction === 'down' && this.props.dropup) ? 'up' : this.props.direction,\n inNavbar: this.props.inNavbar,\n disabled: this.props.disabled,\n // Callback that should be called by DropdownMenu to provide a ref to\n // a HTML tag that's used for the DropdownMenu\n onMenuRef: this.handleMenuRef,\n menuRole: this.props.menuRole\n };\n }\n\n componentDidMount() {\n this.handleProps();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.isOpen !== prevProps.isOpen) {\n this.handleProps();\n }\n }\n\n componentWillUnmount() {\n this.removeEvents();\n }\n\n getContainer() {\n return this.containerRef.current;\n }\n\n getMenu() {\n return this.menuRef.current;\n }\n\n getMenuCtrl() {\n if (this._$menuCtrl) return this._$menuCtrl;\n this._$menuCtrl = this.getContainer().querySelector('[aria-expanded]');\n return this._$menuCtrl;\n }\n\n getItemType() {\n if(this.context.menuRole === 'listbox') {\n return 'option'\n }\n return 'menuitem'\n }\n\n getMenuItems() {\n // In a real menu with a child DropdownMenu, `this.getMenu()` should never\n // be null, but it is sometimes null in tests. To mitigate that, we just\n // use `this.getContainer()` as the fallback `menuContainer`.\n const menuContainer = this.getMenu() || this.getContainer();\n return [].slice.call(menuContainer.querySelectorAll(`[role=\"${this.getItemType()}\"]`));\n }\n\n addEvents() {\n ['click', 'touchstart', 'keyup'].forEach(event =>\n document.addEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n removeEvents() {\n ['click', 'touchstart', 'keyup'].forEach(event =>\n document.removeEventListener(event, this.handleDocumentClick, true)\n );\n }\n\n handleDocumentClick(e) {\n if (e && (e.which === 3 || (e.type === 'keyup' && e.which !== keyCodes.tab))) return;\n const container = this.getContainer();\n const menu = this.getMenu();\n const clickIsInContainer = container.contains(e.target) && container !== e.target;\n const clickIsInInput = container.classList.contains('input-group') && container.classList.contains('dropdown') && e.target.tagName === 'INPUT';\n const clickIsInMenu = menu && menu.contains(e.target) && menu !== e.target;\n if (((clickIsInContainer && !clickIsInInput) || clickIsInMenu) && (e.type !== 'keyup' || e.which === keyCodes.tab)) {\n return;\n }\n\n this.toggle(e);\n }\n\n handleKeyDown(e) {\n const isTargetMenuItem = e.target.getAttribute('role') === 'menuitem' || e.target.getAttribute('role') === 'option';\n const isTargetMenuCtrl = this.getMenuCtrl() === e.target;\n const isTab = keyCodes.tab === e.which;\n\n if (\n /input|textarea/i.test(e.target.tagName)\n || (isTab && !this.props.a11y)\n || (isTab && !(isTargetMenuItem || isTargetMenuCtrl))\n ) {\n return;\n }\n\n if (preventDefaultKeys.indexOf(e.which) !== -1 || ((e.which >= 48) && (e.which <= 90))) {\n e.preventDefault();\n }\n\n if (this.props.disabled) return;\n\n if (isTargetMenuCtrl) {\n if ([keyCodes.space, keyCodes.enter, keyCodes.up, keyCodes.down].indexOf(e.which) > -1) {\n // Open the menu (if not open) and focus the first menu item\n if (!this.props.isOpen) {\n this.toggle(e);\n }\n setTimeout(() => this.getMenuItems()[0].focus());\n } else if (this.props.isOpen && isTab) {\n // Focus the first menu item if tabbing from an open menu. We need this\n // for cases where the DropdownMenu sets a custom container, which may\n // not be the natural next item to tab to from the DropdownToggle.\n e.preventDefault();\n this.getMenuItems()[0].focus();\n } else if (this.props.isOpen && e.which === keyCodes.esc) {\n this.toggle(e);\n }\n }\n\n if (this.props.isOpen && isTargetMenuItem) {\n if ([keyCodes.tab, keyCodes.esc].indexOf(e.which) > -1) {\n this.toggle(e);\n this.getMenuCtrl().focus();\n } else if ([keyCodes.space, keyCodes.enter].indexOf(e.which) > -1) {\n e.target.click();\n this.getMenuCtrl().focus();\n } else if (\n [keyCodes.down, keyCodes.up].indexOf(e.which) > -1\n || ([keyCodes.n, keyCodes.p].indexOf(e.which) > -1 && e.ctrlKey)\n ) {\n const $menuitems = this.getMenuItems();\n let index = $menuitems.indexOf(e.target);\n if (keyCodes.up === e.which || (keyCodes.p === e.which && e.ctrlKey)) {\n index = index !== 0 ? index - 1 : $menuitems.length - 1;\n } else if (keyCodes.down === e.which || (keyCodes.n === e.which && e.ctrlKey)) {\n index = index === $menuitems.length - 1 ? 0 : index + 1;\n }\n $menuitems[index].focus();\n } else if (keyCodes.end === e.which) {\n const $menuitems = this.getMenuItems();\n $menuitems[$menuitems.length - 1].focus();\n } else if (keyCodes.home === e.which) {\n const $menuitems = this.getMenuItems();\n $menuitems[0].focus();\n } else if ((e.which >= 48) && (e.which <= 90)) {\n const $menuitems = this.getMenuItems();\n const charPressed = String.fromCharCode(e.which).toLowerCase();\n for (let i = 0; i < $menuitems.length; i += 1) {\n const firstLetter = $menuitems[i].textContent && $menuitems[i].textContent[0].toLowerCase();\n if (firstLetter === charPressed) {\n $menuitems[i].focus();\n break;\n }\n }\n }\n }\n }\n\n handleProps() {\n if (this.props.isOpen) {\n this.addEvents();\n } else {\n this.removeEvents();\n }\n }\n\n toggle(e) {\n if (this.props.disabled) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n }\n\n render() {\n const {\n className,\n cssModule,\n direction,\n isOpen,\n group,\n size,\n nav,\n setActiveFromChild,\n active,\n tag,\n menuRole,\n ...attrs\n } = omit(this.props, ['toggle', 'disabled', 'inNavbar', 'a11y']);\n\n const Tag = tag || (nav ? 'li' : 'div');\n\n let subItemIsActive = false;\n if (setActiveFromChild) {\n React.Children.map(this.props.children[1].props.children,\n (dropdownItem) => {\n if (dropdownItem && dropdownItem.props.active) subItemIsActive = true;\n }\n );\n }\n\n const classes = mapToCssModules(classNames(\n className,\n nav && active ? 'active' : false,\n setActiveFromChild && subItemIsActive ? 'active' : false,\n {\n 'btn-group': group,\n [`btn-group-${size}`]: !!size,\n dropdown: !group,\n dropup: direction === 'up',\n dropstart: direction === 'start' || direction === 'left',\n dropend: direction === 'end' || direction === 'right',\n show: isOpen,\n 'nav-item': nav\n }\n ), cssModule);\n\n return (\n \n \n \n \n \n );\n }\n}\n\nDropdown.propTypes = propTypes;\nDropdown.defaultProps = defaultProps;\n\nexport default Dropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Dropdown from './Dropdown';\n\nconst propTypes = {\n children: PropTypes.node,\n};\n\nconst ButtonDropdown = (props) => {\n return (\n \n );\n};\n\nButtonDropdown.propTypes = propTypes;\n\nexport default ButtonDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n 'aria-label': PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n role: PropTypes.string,\n size: PropTypes.string,\n vertical: PropTypes.bool,\n};\n\nconst defaultProps = {\n tag: 'div',\n role: 'group',\n};\n\nconst ButtonGroup = (props) => {\n const {\n className,\n cssModule,\n size,\n vertical,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n size ? 'btn-group-' + size : false,\n vertical ? 'btn-group-vertical' : 'btn-group'\n ), cssModule);\n\n return (\n \n );\n};\n\nButtonGroup.propTypes = propTypes;\nButtonGroup.defaultProps = defaultProps;\n\nexport default ButtonGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n 'aria-label': PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n role: PropTypes.string,\n};\n\nconst defaultProps = {\n tag: 'div',\n role: 'toolbar',\n};\n\nconst ButtonToolbar = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'btn-toolbar'\n ), cssModule);\n\n return (\n \n );\n};\n\nButtonToolbar.propTypes = propTypes;\nButtonToolbar.defaultProps = defaultProps;\n\nexport default ButtonToolbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, omit, tagPropType } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n divider: PropTypes.bool,\n tag: tagPropType,\n header: PropTypes.bool,\n onClick: PropTypes.func,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n toggle: PropTypes.bool,\n text: PropTypes.bool\n};\n\nconst defaultProps = {\n tag: 'button',\n toggle: true\n};\n\nclass DropdownItem extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n this.getTabIndex = this.getTabIndex.bind(this);\n }\n\n getRole() {\n if(this.context.menuRole === 'listbox') {\n return 'option'\n }\n return 'menuitem'\n }\n\n onClick(e) {\n const { disabled, header, divider, text } = this.props;\n if (disabled || header || divider || text) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n\n if (this.props.toggle) {\n this.context.toggle(e);\n }\n }\n\n getTabIndex() {\n const { disabled, header, divider, text } = this.props;\n if (disabled || header || divider || text) {\n return '-1';\n }\n\n return '0';\n }\n\n render() {\n const tabIndex = this.getTabIndex();\n const role = tabIndex > -1 ? this.getRole() : undefined;\n let {\n className,\n cssModule,\n divider,\n tag: Tag,\n header,\n active,\n text,\n ...props } = omit(this.props, ['toggle']);\n\n const classes = mapToCssModules(classNames(\n className,\n {\n disabled: props.disabled,\n 'dropdown-item': !divider && !header && !text,\n active: active,\n 'dropdown-header': header,\n 'dropdown-divider': divider,\n 'dropdown-item-text': text\n }\n ), cssModule);\n\n if (Tag === 'button') {\n if (header) {\n Tag = 'h6';\n } else if (divider) {\n Tag = 'div';\n } else if (props.href) {\n Tag = 'a';\n } else if (text) {\n Tag = 'span';\n }\n }\n\n return (\n \n );\n }\n}\n\nDropdownItem.propTypes = propTypes;\nDropdownItem.defaultProps = defaultProps;\nDropdownItem.contextType = DropdownContext;\n\nexport default DropdownItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { Popper } from 'react-popper';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, tagPropType, targetPropType, getTarget, deprecated } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n children: PropTypes.node.isRequired,\n dark: PropTypes.bool,\n end: PropTypes.bool,\n flip: PropTypes.bool,\n modifiers: PropTypes.array,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n persist: PropTypes.bool,\n strategy: PropTypes.string,\n container: targetPropType,\n right: deprecated(PropTypes.bool, 'Please use \"end\" instead.'),\n};\n\nconst defaultProps = {\n tag: 'div',\n flip: true,\n modifiers: [],\n};\n\nconst directionPositionMap = {\n up: 'top',\n left: 'left',\n right: 'right',\n start: 'left',\n end: 'right',\n down: 'bottom',\n};\n\nclass DropdownMenu extends React.Component {\n\n getRole() {\n if(this.context.menuRole === 'listbox') {\n return 'listbox'\n }\n return 'menu'\n }\n\n render() {\n const {\n className,\n cssModule,\n dark,\n end,\n right,\n tag,\n flip,\n modifiers,\n persist,\n strategy,\n container,\n ...attrs\n } = this.props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'dropdown-menu',\n {\n 'dropdown-menu-dark': dark,\n 'dropdown-menu-end': end || right,\n show: this.context.isOpen,\n }\n ), cssModule);\n\n const Tag = tag;\n\n if (persist || (this.context.isOpen && !this.context.inNavbar)) {\n\n const position1 = directionPositionMap[this.context.direction] || 'bottom';\n const position2 = (end || right) ? 'end' : 'start';\n const poperPlacement = `${position1}-${position2}`;\n const poperModifiers = [\n ...modifiers,\n {\n name: 'flip',\n enabled: !!flip,\n },\n ];\n\n const popper = (\n \n {({ ref, style, placement }) => {\n let combinedStyle = { ...this.props.style, ...style };\n\n const handleRef = (tagRef) => {\n // Send the ref to `react-popper`\n ref(tagRef);\n // Send the ref to the parent Dropdown so that clicks outside\n // it will cause it to close\n const { onMenuRef } = this.context;\n if (onMenuRef) onMenuRef(tagRef);\n };\n\n return (\n \n );\n }}\n \n );\n\n if (container) {\n return ReactDOM.createPortal(popper, getTarget(container));\n } else {\n return popper;\n }\n }\n\n return (\n \n );\n }\n};\n\nDropdownMenu.propTypes = propTypes;\nDropdownMenu.defaultProps = defaultProps;\nDropdownMenu.contextType = DropdownContext;\n\nexport default DropdownMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Reference } from 'react-popper';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, tagPropType } from './utils';\nimport Button from './Button';\n\nconst propTypes = {\n caret: PropTypes.bool,\n color: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n 'aria-haspopup': PropTypes.bool,\n split: PropTypes.bool,\n tag: tagPropType,\n nav: PropTypes.bool,\n};\n\nconst defaultProps = {\n color: 'secondary',\n 'aria-haspopup': true\n};\n\nclass DropdownToggle extends React.Component {\n constructor(props) {\n super(props);\n\n this.onClick = this.onClick.bind(this);\n }\n\n onClick(e) {\n if (this.props.disabled || this.context.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.nav && !this.props.tag) {\n e.preventDefault();\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n\n this.context.toggle(e);\n }\n\n getRole() {\n return this.context.menuRole || this.props['aria-haspopup'];\n }\n\n render() {\n const { className, color, cssModule, caret, split, nav, tag, innerRef, ...props } = this.props;\n const ariaLabel = props['aria-label'] || 'Toggle Dropdown';\n const classes = mapToCssModules(classNames(\n className,\n {\n 'dropdown-toggle': caret || split,\n 'dropdown-toggle-split': split,\n 'nav-link': nav\n }\n ), cssModule);\n const children =\n typeof props.children !== 'undefined' ? (\n props.children\n ) : (\n {ariaLabel}\n );\n\n let Tag;\n\n if (nav && !tag) {\n Tag = 'a';\n props.href = '#';\n } else if (!tag) {\n Tag = Button;\n props.color = color;\n props.cssModule = cssModule;\n } else {\n Tag = tag;\n }\n\n if (this.context.inNavbar) {\n return (\n \n );\n }\n\n return (\n \n {({ ref }) => (\n \n )}\n \n );\n }\n}\n\nDropdownToggle.propTypes = propTypes;\nDropdownToggle.defaultProps = defaultProps;\nDropdownToggle.contextType = DropdownContext;\n\nexport default DropdownToggle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionPropTypeKeys, TransitionTimeouts, tagPropType } from './utils';\n\nconst propTypes = {\n ...Transition.propTypes,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n tag: tagPropType,\n baseClass: PropTypes.string,\n baseClassActive: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst defaultProps = {\n ...Transition.defaultProps,\n tag: 'div',\n baseClass: 'fade',\n baseClassActive: 'show',\n timeout: TransitionTimeouts.Fade,\n appear: true,\n enter: true,\n exit: true,\n in: true,\n};\n\nfunction Fade(props) {\n const {\n tag: Tag,\n baseClass,\n baseClassActive,\n className,\n cssModule,\n children,\n innerRef,\n ...otherProps\n } = props;\n\n const transitionProps = pick(otherProps, TransitionPropTypeKeys);\n const childProps = omit(otherProps, TransitionPropTypeKeys);\n\n return (\n \n {(status) => {\n const isActive = status === 'entered';\n const classes = mapToCssModules(classNames(\n className,\n baseClass,\n isActive && baseClassActive\n ), cssModule);\n return (\n \n {children}\n \n );\n }}\n \n );\n}\n\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\n\nexport default Fade;\n","import React from 'react';\n\n/**\n * AccordionContext\n * {\n * toggle: PropTypes.func.isRequired,\n * openId: PropTypes.string, \n * }\n */\nexport const AccordionContext = React.createContext({});\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport { AccordionContext } from './AccordionContext';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n flush: PropTypes.bool,\n open: PropTypes.oneOfType([PropTypes.array, PropTypes.string]).isRequired,\n toggle: PropTypes.func.isRequired,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst Accordion = (props) => {\n const {\n flush,\n open,\n toggle,\n className,\n cssModule,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'accordion',\n {\n 'accordion-flush': flush\n }\n ), cssModule);\n\n const accordionContext = useMemo(() => ({\n open,\n toggle,\n }));\n\n return (\n \n \n \n );\n};\n\nAccordion.propTypes = propTypes;\nAccordion.defaultProps = defaultProps;\n\nexport default Accordion;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { tagPropType } from './utils';\nimport Accordion from './Accordion';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n defaultOpen: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n stayOpen: PropTypes.bool,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst UncontrolledAccordion = ({ defaultOpen, stayOpen, ...props }) => {\n const [open, setOpen] = useState(defaultOpen || (stayOpen ? [] : undefined));\n const toggle = (id) => {\n if (stayOpen) {\n open.includes(id) ? setOpen(open.filter(accordionId => accordionId !== id)) : setOpen([...open, id]);\n } else {\n open === id ? setOpen(undefined) : setOpen(id);\n }\n };\n\n return ;\n};\n\nAccordion.propTypes = propTypes;\nAccordion.defaultProps = defaultProps;\n\nexport default UncontrolledAccordion;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport { AccordionContext } from './AccordionContext';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n targetId: PropTypes.string.isRequired,\n};\n\nconst defaultProps = {\n tag: 'h2'\n};\n\nconst AccordionHeader = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n children,\n targetId,\n ...attributes\n } = props;\n const { open, toggle } = useContext(AccordionContext);\n\n const classes = mapToCssModules(classNames(\n className,\n 'accordion-header',\n ), cssModule);\n\n const buttonClasses = mapToCssModules(classNames(\n 'accordion-button',\n {\n collapsed: !(Array.isArray(open) ? open.includes(targetId) : open === targetId)\n },\n ), cssModule);\n\n return (\n \n \n \n );\n};\n\nAccordionHeader.propTypes = propTypes;\nAccordionHeader.defaultProps = defaultProps;\n\nexport default AccordionHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst AccordionItem = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'accordion-item',\n ), cssModule);\n\n return (\n \n );\n};\n\nAccordionItem.propTypes = propTypes;\nAccordionItem.defaultProps = defaultProps;\n\nexport default AccordionItem;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionTimeouts, TransitionPropTypeKeys, TransitionStatuses, tagPropType } from './utils';\n\nconst propTypes = {\n ...Transition.propTypes,\n horizontal: PropTypes.bool,\n isOpen: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n tag: tagPropType,\n className: PropTypes.node,\n navbar: PropTypes.bool,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.object\n ]),\n};\n\nconst defaultProps = {\n ...Transition.defaultProps,\n horizontal: false,\n isOpen: false,\n appear: false,\n enter: true,\n exit: true,\n tag: 'div',\n timeout: TransitionTimeouts.Collapse,\n};\n\nconst transitionStatusToClassHash = {\n [TransitionStatuses.ENTERING]: 'collapsing',\n [TransitionStatuses.ENTERED]: 'collapse show',\n [TransitionStatuses.EXITING]: 'collapsing',\n [TransitionStatuses.EXITED]: 'collapse',\n};\n\nfunction getTransitionClass(status) {\n return transitionStatusToClassHash[status] || 'collapse';\n}\n\nclass Collapse extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n dimension: null\n };\n\n ['onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].forEach((name) => {\n this[name] = this[name].bind(this);\n });\n }\n\n getDimension(node) {\n return this.props.horizontal ? node.scrollWidth : node.scrollHeight;\n }\n\n onEntering(node, isAppearing) {\n this.setState({ dimension: this.getDimension(node) });\n this.props.onEntering(node, isAppearing);\n }\n\n onEntered(node, isAppearing) {\n this.setState({ dimension: null });\n this.props.onEntered(node, isAppearing);\n }\n\n onExit(node) {\n this.setState({ dimension: this.getDimension(node) });\n this.props.onExit(node);\n }\n\n onExiting(node) {\n // getting this variable triggers a reflow\n const _unused = this.getDimension(node); // eslint-disable-line no-unused-vars\n this.setState({ dimension: 0 });\n this.props.onExiting(node);\n }\n\n onExited(node) {\n this.setState({ dimension: null });\n this.props.onExited(node);\n }\n\n render() {\n const {\n tag: Tag,\n horizontal,\n isOpen,\n className,\n navbar,\n cssModule,\n children,\n innerRef,\n ...otherProps\n } = this.props;\n\n const { dimension } = this.state;\n\n const transitionProps = pick(otherProps, TransitionPropTypeKeys);\n const childProps = omit(otherProps, TransitionPropTypeKeys);\n return (\n \n {(status) => {\n let collapseClass = getTransitionClass(status);\n const classes = mapToCssModules(classNames(\n className,\n horizontal && 'collapse-horizontal',\n collapseClass,\n navbar && 'navbar-collapse'\n ), cssModule);\n const style = dimension === null ? null : { [horizontal ? 'width' : 'height']: dimension };\n return (\n \n {children}\n \n );\n }}\n \n );\n }\n}\n\nCollapse.propTypes = propTypes;\nCollapse.defaultProps = defaultProps;\nexport default Collapse;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport Collapse from './Collapse';\nimport { AccordionContext } from './AccordionContext';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n children: PropTypes.node,\n accordionId: PropTypes.string.isRequired,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst AccordionItem = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n children,\n accordionId,\n ...attributes\n } = props;\n\n const { open } = useContext(AccordionContext);\n\n const classes = mapToCssModules(classNames(\n className,\n 'accordion-collapse',\n ), cssModule);\n\n return (\n \n {children}\n \n );\n};\n\nAccordionItem.propTypes = propTypes;\nAccordionItem.defaultProps = defaultProps;\n\nexport default AccordionItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n color: PropTypes.string,\n pill: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n children: PropTypes.node,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n color: 'secondary',\n pill: false,\n tag: 'span'\n};\n\nconst Badge = (props) => {\n let {\n className,\n cssModule,\n color,\n innerRef,\n pill,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'badge',\n 'bg-' + color,\n pill ? 'rounded-pill' : false\n ), cssModule);\n\n if (attributes.href && Tag === 'span') {\n Tag = 'a';\n }\n\n return (\n \n );\n};\n\nBadge.propTypes = propTypes;\nBadge.defaultProps = defaultProps;\n\nexport default Badge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n inverse: PropTypes.bool,\n color: PropTypes.string,\n body: PropTypes.bool,\n outline: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst Card = (props) => {\n const {\n className,\n cssModule,\n color,\n body,\n inverse,\n outline,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card',\n inverse ? 'text-white' : false,\n body ? 'card-body' : false,\n color ? `${outline ? 'border' : 'bg'}-${color}` : false\n ), cssModule);\n\n return (\n \n );\n};\n\nCard.propTypes = propTypes;\nCard.defaultProps = defaultProps;\n\nexport default Card;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardGroup = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-group'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardGroup.propTypes = propTypes;\nCardGroup.defaultProps = defaultProps;\n\nexport default CardGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div',\n};\n\nconst CardDeck = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-deck'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardDeck.propTypes = propTypes;\nCardDeck.defaultProps = defaultProps;\n\nexport default CardDeck;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardColumns = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-columns'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardColumns.propTypes = propTypes;\nCardColumns.defaultProps = defaultProps;\n\nexport default CardColumns;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardBody = (props) => {\n const {\n className,\n cssModule,\n innerRef,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-body'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardBody.propTypes = propTypes;\nCardBody.defaultProps = defaultProps;\n\nexport default CardBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'a'\n};\n\nconst CardLink = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n innerRef,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-link'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardLink.propTypes = propTypes;\nCardLink.defaultProps = defaultProps;\n\nexport default CardLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardFooter = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-footer'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardFooter.propTypes = propTypes;\nCardFooter.defaultProps = defaultProps;\n\nexport default CardFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardHeader = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-header'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardHeader.propTypes = propTypes;\nCardHeader.defaultProps = defaultProps;\n\nexport default CardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n top: PropTypes.bool,\n bottom: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'img'\n};\n\nconst CardImg = (props) => {\n const {\n className,\n cssModule,\n top,\n bottom,\n tag: Tag,\n ...attributes\n } = props;\n\n let cardImgClassName = 'card-img';\n if (top) {\n cardImgClassName = 'card-img-top';\n }\n if (bottom) {\n cardImgClassName = 'card-img-bottom';\n }\n\n const classes = mapToCssModules(classNames(\n className,\n cardImgClassName\n ), cssModule);\n\n return (\n \n );\n};\n\nCardImg.propTypes = propTypes;\nCardImg.defaultProps = defaultProps;\n\nexport default CardImg;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardImgOverlay = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-img-overlay'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardImgOverlay.propTypes = propTypes;\nCardImgOverlay.defaultProps = defaultProps;\n\nexport default CardImgOverlay;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, TransitionTimeouts, TransitionStatuses, tagPropType } from './utils';\n\nclass CarouselItem extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n startAnimation: false,\n };\n\n this.onEnter = this.onEnter.bind(this);\n this.onEntering = this.onEntering.bind(this);\n this.onExit = this.onExit.bind(this);\n this.onExiting = this.onExiting.bind(this);\n this.onExited = this.onExited.bind(this);\n }\n\n onEnter(node, isAppearing) {\n this.setState({ startAnimation: false });\n this.props.onEnter(node, isAppearing);\n }\n\n onEntering(node, isAppearing) {\n // getting this variable triggers a reflow\n const offsetHeight = node.offsetHeight;\n this.setState({ startAnimation: true });\n this.props.onEntering(node, isAppearing);\n return offsetHeight;\n }\n\n onExit(node) {\n this.setState({ startAnimation: false });\n this.props.onExit(node);\n }\n\n onExiting(node) {\n this.setState({ startAnimation: true });\n node.dispatchEvent(new CustomEvent('slide.bs.carousel'));\n this.props.onExiting(node);\n }\n\n onExited(node) {\n node.dispatchEvent(new CustomEvent('slid.bs.carousel'));\n this.props.onExited(node);\n }\n\n render() {\n const { in: isIn, children, cssModule, slide, tag: Tag, className, ...transitionProps } = this.props;\n\n return (\n \n {(status) => {\n const { direction } = this.context;\n const isActive = (status === TransitionStatuses.ENTERED) || (status === TransitionStatuses.EXITING);\n const directionClassName = (status === TransitionStatuses.ENTERING || status === TransitionStatuses.EXITING) &&\n this.state.startAnimation &&\n (direction === 'end' ? 'carousel-item-start' : 'carousel-item-end');\n const orderClassName = (status === TransitionStatuses.ENTERING) &&\n (direction === 'end' ? 'carousel-item-next' : 'carousel-item-prev');\n const itemClasses = mapToCssModules(classNames(\n className,\n 'carousel-item',\n isActive && 'active',\n directionClassName,\n orderClassName,\n ), cssModule);\n\n return (\n \n {children}\n \n );\n }}\n \n );\n }\n}\n\nCarouselItem.propTypes = {\n ...Transition.propTypes,\n tag: tagPropType,\n in: PropTypes.bool,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n slide: PropTypes.bool,\n className: PropTypes.string,\n};\n\nCarouselItem.defaultProps = {\n ...Transition.defaultProps,\n tag: 'div',\n timeout: TransitionTimeouts.Carousel,\n slide: true,\n};\n\nCarouselItem.contextTypes = {\n direction: PropTypes.string\n};\n\nexport default CarouselItem;\n","import React from 'react';\n\n/**\n * CarouselContext\n * {\n * direction: PropTypes.oneOf(['start', 'end']).isRequired,\n * }\n */\nexport const CarouselContext = React.createContext({});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport CarouselItem from './CarouselItem';\nimport { CarouselContext } from './CarouselContext';\nimport { mapToCssModules } from './utils';\n \nconst SWIPE_THRESHOLD = 40;\n\nclass Carousel extends React.Component {\n constructor(props) {\n super(props);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.renderItems = this.renderItems.bind(this);\n this.hoverStart = this.hoverStart.bind(this);\n this.hoverEnd = this.hoverEnd.bind(this);\n this.handleTouchStart = this.handleTouchStart.bind(this);\n this.handleTouchEnd = this.handleTouchEnd.bind(this);\n this.touchStartX = 0;\n this.touchStartY = 0;\n this.state = {\n activeIndex: this.props.activeIndex,\n direction: 'end',\n indicatorClicked: false,\n };\n }\n\n getContextValue() {\n return { direction: this.state.direction };\n }\n\n componentDidMount() {\n // Set up the cycle\n if (this.props.ride === 'carousel') {\n this.setInterval();\n }\n\n // TODO: move this to the specific carousel like bootstrap. Currently it will trigger ALL carousels on the page.\n document.addEventListener('keyup', this.handleKeyPress);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let newState = null;\n let { activeIndex, direction, indicatorClicked } = prevState;\n\n if (nextProps.activeIndex !== activeIndex) {\n // Calculate the direction to turn\n if (nextProps.activeIndex === activeIndex + 1) {\n direction = 'end';\n } else if (nextProps.activeIndex === activeIndex -1) {\n direction = 'start';\n } else if (nextProps.activeIndex < activeIndex) {\n direction = indicatorClicked ? 'start' : 'end';\n } else if (nextProps.activeIndex !== activeIndex) {\n direction = indicatorClicked ? 'end' : 'start';\n }\n\n newState = {\n activeIndex: nextProps.activeIndex,\n direction,\n indicatorClicked: false,\n }\n }\n\n return newState;\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.activeIndex === this.state.activeIndex) return;\n this.setInterval(this.props);\n }\n\n componentWillUnmount() {\n this.clearInterval();\n document.removeEventListener('keyup', this.handleKeyPress);\n }\n\n setInterval(props = this.props) {\n // make sure not to have multiple intervals going...\n this.clearInterval();\n if (props.interval) {\n this.cycleInterval = setInterval(() => {\n props.next();\n }, parseInt(props.interval, 10));\n }\n }\n\n clearInterval() {\n clearInterval(this.cycleInterval);\n }\n\n hoverStart(...args) {\n if (this.props.pause === 'hover') {\n this.clearInterval();\n }\n if (this.props.mouseEnter) {\n this.props.mouseEnter(...args);\n }\n }\n\n hoverEnd(...args) {\n if (this.props.pause === 'hover') {\n this.setInterval();\n }\n if (this.props.mouseLeave) {\n this.props.mouseLeave(...args);\n }\n }\n\n handleKeyPress(evt) {\n if (this.props.keyboard) {\n if (evt.keyCode === 37) {\n this.props.previous();\n } else if (evt.keyCode === 39) {\n this.props.next();\n }\n }\n }\n\n handleTouchStart(e) {\n if(!this.props.enableTouch) {\n return;\n }\n this.touchStartX = e.changedTouches[0].screenX;\n this.touchStartY = e.changedTouches[0].screenY;\n }\n\n handleTouchEnd(e) {\n if(!this.props.enableTouch) {\n return;\n }\n\n const currentX = e.changedTouches[0].screenX;\n const currentY = e.changedTouches[0].screenY;\n const diffX = Math.abs(this.touchStartX - currentX);\n const diffY = Math.abs(this.touchStartY - currentY);\n\n // Don't swipe if Y-movement is bigger than X-movement\n if(diffX < diffY) {\n return;\n }\n\n if(diffX < SWIPE_THRESHOLD) {\n return;\n }\n\n if(currentX < this.touchStartX) {\n this.props.next();\n } else {\n this.props.previous();\n }\n }\n\n renderItems(carouselItems, className) {\n const { slide } = this.props;\n return (\n
\n {carouselItems.map((item, index) => {\n const isIn = (index === this.state.activeIndex);\n return React.cloneElement(item, {\n in: isIn,\n slide: slide,\n });\n })}\n
\n );\n }\n\n render() {\n const { cssModule, slide, className, dark, fade } = this.props;\n const outerClasses = mapToCssModules(classNames(\n className,\n 'carousel',\n 'carousel-fade' && fade,\n slide && 'slide',\n dark && 'carousel-dark'\n ), cssModule);\n\n const innerClasses = mapToCssModules(classNames(\n 'carousel-inner'\n ), cssModule);\n\n // filter out booleans, null, or undefined\n const children = this.props.children.filter(child => child !== null && child !== undefined && typeof child !== 'boolean');\n\n const slidesOnly = children.every(child => child.type === CarouselItem);\n\n // Rendering only slides\n if (slidesOnly) {\n return (\n
\n \n {this.renderItems(children, innerClasses)}\n \n
\n );\n }\n\n // Rendering slides and controls\n if (children[0] instanceof Array) {\n const carouselItems = children[0];\n const controlLeft = children[1];\n const controlRight = children[2];\n\n return (\n
\n \n {this.renderItems(carouselItems, innerClasses)}\n {controlLeft}\n {controlRight}\n \n
\n );\n }\n\n // Rendering indicators, slides and controls\n const indicators = children[0];\n const wrappedOnClick = (e) => {\n if (typeof indicators.props.onClickHandler === 'function') {\n this.setState({ indicatorClicked: true }, () => indicators.props.onClickHandler(e));\n }\n };\n const wrappedIndicators = React.cloneElement(indicators, { onClickHandler: wrappedOnClick });\n const carouselItems = children[1];\n const controlLeft = children[2];\n const controlRight = children[3];\n\n return (\n
\n \n {wrappedIndicators}\n {this.renderItems(carouselItems, innerClasses)}\n {controlLeft}\n {controlRight}\n \n
\n );\n }\n}\n\nCarousel.propTypes = {\n // the current active slide of the carousel\n activeIndex: PropTypes.number,\n // a function which should advance the carousel to the next slide (via activeIndex)\n next: PropTypes.func.isRequired,\n // a function which should advance the carousel to the previous slide (via activeIndex)\n previous: PropTypes.func.isRequired,\n // controls if the left and right arrow keys should control the carousel\n keyboard: PropTypes.bool,\n /* If set to \"hover\", pauses the cycling of the carousel on mouseenter and resumes the cycling of the carousel on\n * mouseleave. If set to false, hovering over the carousel won't pause it. (default: \"hover\")\n */\n pause: PropTypes.oneOf(['hover', false]),\n // Autoplays the carousel after the user manually cycles the first item. If \"carousel\", autoplays the carousel on load.\n // This is how bootstrap defines it... I would prefer a bool named autoplay or something...\n ride: PropTypes.oneOf(['carousel']),\n // the interval at which the carousel automatically cycles (default: 5000)\n // eslint-disable-next-line react/no-unused-prop-types\n interval: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool,\n ]),\n children: PropTypes.array,\n // called when the mouse enters the Carousel\n mouseEnter: PropTypes.func,\n // called when the mouse exits the Carousel\n mouseLeave: PropTypes.func,\n // controls whether the slide animation on the Carousel works or not\n slide: PropTypes.bool,\n // make the controls, indicators and captions dark on the Carousel\n dark: PropTypes.bool,\n cssModule: PropTypes.object,\n className: PropTypes.string,\n enableTouch: PropTypes.bool,\n};\n\nCarousel.defaultProps = {\n interval: 5000,\n pause: 'hover',\n keyboard: true,\n slide: true,\n enableTouch: true,\n fade: false,\n};\n\nCarousel.childContextTypes = {\n direction: PropTypes.string\n};\n\nexport default Carousel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst CarouselControl = (props) => {\n const { direction, onClickHandler, cssModule, directionText, className } = props;\n\n const anchorClasses = mapToCssModules(classNames(\n className,\n `carousel-control-${direction}`\n ), cssModule);\n\n const iconClasses = mapToCssModules(classNames(\n `carousel-control-${direction}-icon`\n ), cssModule);\n\n const screenReaderClasses = mapToCssModules(classNames(\n 'visually-hidden'\n ), cssModule);\n\n\n return (\n // We need to disable this linting rule to use an `
` instead of\n // `);\n });\n\n return (\n
\n {indicators}\n
\n );\n};\n\nCarouselIndicators.propTypes = {\n items: PropTypes.array.isRequired,\n activeIndex: PropTypes.number.isRequired,\n cssModule: PropTypes.object,\n onClickHandler: PropTypes.func.isRequired,\n className: PropTypes.string,\n};\n\nexport default CarouselIndicators;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\n\nconst CarouselCaption = (props) => {\n const { captionHeader, captionText, cssModule, className } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'carousel-caption',\n 'd-none',\n 'd-md-block'\n ), cssModule);\n\n return (\n
\n

{captionHeader}

\n

{captionText}

\n
\n );\n};\n\nCarouselCaption.propTypes = {\n captionHeader: PropTypes.node,\n captionText: PropTypes.node.isRequired,\n cssModule: PropTypes.object,\n className: PropTypes.string,\n};\n\nexport default CarouselCaption;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Carousel from './Carousel';\nimport CarouselItem from './CarouselItem';\nimport CarouselControl from './CarouselControl';\nimport CarouselIndicators from './CarouselIndicators';\nimport CarouselCaption from './CarouselCaption';\n\nconst propTypes = {\n items: PropTypes.array.isRequired,\n indicators: PropTypes.bool,\n controls: PropTypes.bool,\n autoPlay: PropTypes.bool,\n defaultActiveIndex: PropTypes.number,\n activeIndex: PropTypes.number,\n next: PropTypes.func,\n previous: PropTypes.func,\n goToIndex: PropTypes.func,\n};\n\nclass UncontrolledCarousel extends Component {\n constructor(props) {\n super(props);\n this.animating = false;\n this.state = { activeIndex: props.defaultActiveIndex || 0 };\n this.next = this.next.bind(this);\n this.previous = this.previous.bind(this);\n this.goToIndex = this.goToIndex.bind(this);\n this.onExiting = this.onExiting.bind(this);\n this.onExited = this.onExited.bind(this);\n }\n\n onExiting() {\n this.animating = true;\n }\n\n onExited() {\n this.animating = false;\n }\n\n next() {\n if (this.animating) return;\n const nextIndex = this.state.activeIndex === this.props.items.length - 1 ? 0 : this.state.activeIndex + 1;\n this.setState({ activeIndex: nextIndex });\n }\n\n previous() {\n if (this.animating) return;\n const nextIndex = this.state.activeIndex === 0 ? this.props.items.length - 1 : this.state.activeIndex - 1;\n this.setState({ activeIndex: nextIndex });\n }\n\n goToIndex(newIndex) {\n if (this.animating) return;\n this.setState({ activeIndex: newIndex });\n }\n\n render() {\n const { defaultActiveIndex, autoPlay, indicators, controls, items, goToIndex, ...props } = this.props;\n const { activeIndex } = this.state;\n\n const slides = items.map((item) => {\n const key = item.key || item.src;\n return (\n \n {item.altText}\n \n \n );\n });\n\n return (\n \n {indicators && }\n {slides}\n {controls && }\n {controls && }\n \n );\n }\n}\n\nUncontrolledCarousel.propTypes = propTypes;\nUncontrolledCarousel.defaultProps = {\n controls: true,\n indicators: true,\n autoPlay: true,\n};\n\nexport default UncontrolledCarousel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardSubtitle = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-subtitle'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardSubtitle.propTypes = propTypes;\nCardSubtitle.defaultProps = defaultProps;\n\nexport default CardSubtitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'p'\n};\n\nconst CardText = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-text'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardText.propTypes = propTypes;\nCardText.defaultProps = defaultProps;\n\nexport default CardText;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst CardTitle = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n const classes = mapToCssModules(classNames(\n className,\n 'card-title'\n ), cssModule);\n\n return (\n \n );\n};\n\nCardTitle.propTypes = propTypes;\nCardTitle.defaultProps = defaultProps;\n\nexport default CardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { Popper as ReactPopper } from 'react-popper';\nimport { getTarget, targetPropType, mapToCssModules, DOMElement, tagPropType } from './utils';\nimport Fade from './Fade';\n\nfunction noop() { }\n\nconst propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n popperClassName: PropTypes.string,\n placement: PropTypes.string,\n placementPrefix: PropTypes.string,\n arrowClassName: PropTypes.string,\n hideArrow: PropTypes.bool,\n tag: tagPropType,\n isOpen: PropTypes.bool.isRequired,\n cssModule: PropTypes.object,\n offset: PropTypes.arrayOf(PropTypes.number),\n fallbackPlacements: PropTypes.array,\n flip: PropTypes.bool,\n container: targetPropType,\n target: targetPropType.isRequired,\n modifiers: PropTypes.array,\n strategy: PropTypes.string,\n boundariesElement: PropTypes.oneOfType([PropTypes.string, DOMElement]),\n onClosed: PropTypes.func,\n fade: PropTypes.bool,\n transition: PropTypes.shape(Fade.propTypes),\n};\n\nconst defaultProps = {\n boundariesElement: 'scrollParent',\n placement: 'auto',\n hideArrow: false,\n isOpen: false,\n offset: [0, 0],\n flip: true,\n container: 'body',\n modifiers: [],\n onClosed: noop,\n fade: true,\n transition: {\n ...Fade.defaultProps,\n }\n};\n\nclass PopperContent extends React.Component {\n constructor(props) {\n super(props);\n\n this.setTargetNode = this.setTargetNode.bind(this);\n this.getTargetNode = this.getTargetNode.bind(this);\n this.getRef = this.getRef.bind(this);\n this.onClosed = this.onClosed.bind(this);\n this.state = { isOpen: props.isOpen };\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.isOpen && !state.isOpen) {\n return { isOpen: props.isOpen };\n }\n else return null;\n }\n\n componentDidUpdate() {\n if (this._element && this._element.childNodes && this._element.childNodes[0] && this._element.childNodes[0].focus) {\n this._element.childNodes[0].focus();\n }\n }\n\n setTargetNode(node) {\n this.targetNode = typeof node === 'string' ? getTarget(node) : node;\n }\n\n getTargetNode() {\n return this.targetNode;\n }\n\n getContainerNode() {\n return getTarget(this.props.container);\n }\n\n getRef(ref) {\n this._element = ref;\n }\n\n onClosed() {\n this.props.onClosed();\n this.setState({ isOpen: false });\n }\n\n renderChildren() {\n const {\n cssModule,\n children,\n isOpen,\n flip,\n target,\n offset,\n fallbackPlacements,\n placementPrefix,\n arrowClassName: _arrowClassName,\n hideArrow,\n popperClassName: _popperClassName,\n tag,\n container,\n modifiers,\n strategy,\n boundariesElement,\n onClosed,\n fade,\n transition,\n placement,\n ...attrs\n } = this.props;\n const arrowClassName = mapToCssModules(classNames(\n 'arrow',\n _arrowClassName\n ), cssModule);\n const popperClassName = mapToCssModules(classNames(\n _popperClassName,\n placementPrefix ? `${placementPrefix}-auto` : ''\n ), this.props.cssModule);\n\n const modifierNames = modifiers.map(m => m.name);\n const baseModifiers = [\n {\n name: 'offset',\n options: {\n offset,\n },\n },\n {\n name: 'flip',\n enabled: flip,\n options: {\n fallbackPlacements,\n },\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: boundariesElement,\n },\n },\n ].filter(m => !modifierNames.includes(m.name));\n const extendedModifiers = [ ...baseModifiers, ...modifiers];\n\n const popperTransition = {\n ...Fade.defaultProps,\n ...transition,\n baseClass: fade ? transition.baseClass : '',\n timeout: fade ? transition.timeout : 0,\n }\n\n return (\n \n \n {({ ref, style, placement: popperPlacement, isReferenceHidden, arrowProps, update }) => (\n
\n {typeof children === 'function' ? children({ update }) : children}\n {!hideArrow && }\n
\n )}\n \n \n );\n }\n\n render() {\n this.setTargetNode(this.props.target);\n\n if (this.state.isOpen) {\n return this.props.container === 'inline' ?\n this.renderChildren() :\n ReactDOM.createPortal((
{this.renderChildren()}
), this.getContainerNode());\n }\n\n return null;\n }\n}\n\nPopperContent.propTypes = propTypes;\nPopperContent.defaultProps = defaultProps;\n\nexport default PopperContent;\n","import PropTypes from 'prop-types';\nimport { getTarget, targetPropType } from './utils';\n\nconst PopperTargetHelper = (props, context) => {\n context.popperManager.setTargetNode(getTarget(props.target));\n return null;\n};\n\nPopperTargetHelper.contextTypes = {\n popperManager: PropTypes.object.isRequired,\n};\n\nPopperTargetHelper.propTypes = {\n target: targetPropType.isRequired,\n};\n\nexport default PopperTargetHelper;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport PopperContent from './PopperContent';\nimport {\n getTarget,\n targetPropType,\n omit,\n PopperPlacements,\n mapToCssModules,\n DOMElement\n} from './utils';\n\nexport const propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n placement: PropTypes.oneOf(PopperPlacements),\n target: targetPropType.isRequired,\n container: targetPropType,\n isOpen: PropTypes.bool,\n disabled: PropTypes.bool,\n hideArrow: PropTypes.bool,\n boundariesElement: PropTypes.oneOfType([PropTypes.string, DOMElement]),\n className: PropTypes.string,\n innerClassName: PropTypes.string,\n arrowClassName: PropTypes.string,\n popperClassName: PropTypes.string,\n cssModule: PropTypes.object,\n toggle: PropTypes.func,\n autohide: PropTypes.bool,\n placementPrefix: PropTypes.string,\n delay: PropTypes.oneOfType([\n PropTypes.shape({ show: PropTypes.number, hide: PropTypes.number }),\n PropTypes.number\n ]),\n modifiers: PropTypes.array,\n strategy: PropTypes.string,\n offset: PropTypes.arrayOf(PropTypes.number),\n innerRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.string,\n PropTypes.object\n ]),\n trigger: PropTypes.string,\n fade: PropTypes.bool,\n flip: PropTypes.bool,\n};\n\nconst DEFAULT_DELAYS = {\n show: 0,\n hide: 50\n};\n\nconst defaultProps = {\n isOpen: false,\n hideArrow: false,\n autohide: false,\n delay: DEFAULT_DELAYS,\n toggle: function () {},\n trigger: 'click',\n fade: true,\n};\n\nfunction isInDOMSubtree(element, subtreeRoot) {\n return subtreeRoot && (element === subtreeRoot || subtreeRoot.contains(element));\n}\n\nfunction isInDOMSubtrees(element, subtreeRoots = []) {\n return subtreeRoots && subtreeRoots.length && subtreeRoots.filter(subTreeRoot=> isInDOMSubtree(element, subTreeRoot))[0];\n}\n\nclass TooltipPopoverWrapper extends React.Component {\n constructor(props) {\n super(props);\n\n this._targets = [];\n this.currentTargetElement = null;\n this.addTargetEvents = this.addTargetEvents.bind(this);\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n this.removeTargetEvents = this.removeTargetEvents.bind(this);\n this.toggle = this.toggle.bind(this);\n this.showWithDelay = this.showWithDelay.bind(this);\n this.hideWithDelay = this.hideWithDelay.bind(this);\n this.onMouseOverTooltipContent = this.onMouseOverTooltipContent.bind(this);\n this.onMouseLeaveTooltipContent = this.onMouseLeaveTooltipContent.bind(\n this\n );\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.onEscKeyDown = this.onEscKeyDown.bind(this);\n this.getRef = this.getRef.bind(this);\n this.state = { isOpen: props.isOpen };\n this._isMounted = false;\n }\n\n componentDidMount() {\n this._isMounted = true;\n this.updateTarget();\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n this.removeTargetEvents();\n this._targets = null;\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.isOpen && !state.isOpen) {\n return { isOpen: props.isOpen };\n }\n else return null;\n }\n\n onMouseOverTooltipContent() {\n if (this.props.trigger.indexOf('hover') > -1 && !this.props.autohide) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n if (this.state.isOpen && !this.props.isOpen) {\n this.toggle();\n }\n }\n }\n\n onMouseLeaveTooltipContent(e) {\n if (this.props.trigger.indexOf('hover') > -1 && !this.props.autohide) {\n if (this._showTimeout) {\n this.clearShowTimeout();\n }\n e.persist();\n this._hideTimeout = setTimeout(\n this.hide.bind(this, e),\n this.getDelay('hide')\n );\n }\n }\n\n onEscKeyDown(e) {\n if (e.key === 'Escape') {\n this.hide(e);\n }\n }\n\n getRef(ref) {\n const { innerRef } = this.props;\n if (innerRef) {\n if (typeof innerRef === 'function') {\n innerRef(ref);\n } else if (typeof innerRef === 'object') {\n innerRef.current = ref;\n }\n }\n this._popover = ref;\n }\n\n getDelay(key) {\n const { delay } = this.props;\n if (typeof delay === 'object') {\n return isNaN(delay[key]) ? DEFAULT_DELAYS[key] : delay[key];\n }\n return delay;\n }\n\n getCurrentTarget(target) {\n if (!target)\n return null;\n const index = this._targets.indexOf(target);\n if (index >= 0)\n return this._targets[index];\n return this.getCurrentTarget(target.parentElement);\n }\n\n show(e) {\n if (!this.props.isOpen) {\n this.clearShowTimeout();\n this.currentTargetElement = e ? e.currentTarget || this.getCurrentTarget(e.target) : null;\n if (e && e.composedPath && typeof e.composedPath === 'function') {\n const path = e.composedPath();\n this.currentTargetElement = (path && path[0]) || this.currentTargetElement;\n }\n this.toggle(e);\n }\n }\n\n showWithDelay(e) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n this._showTimeout = setTimeout(\n this.show.bind(this, e),\n this.getDelay('show')\n );\n }\n hide(e) {\n if (this.props.isOpen) {\n this.clearHideTimeout();\n this.currentTargetElement = null;\n this.toggle(e);\n }\n }\n\n hideWithDelay(e) {\n if (this._showTimeout) {\n this.clearShowTimeout();\n }\n this._hideTimeout = setTimeout(\n this.hide.bind(this, e),\n this.getDelay('hide')\n );\n }\n\n\n clearShowTimeout() {\n clearTimeout(this._showTimeout);\n this._showTimeout = undefined;\n }\n\n clearHideTimeout() {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = undefined;\n }\n\n handleDocumentClick(e) {\n const triggers = this.props.trigger.split(' ');\n\n if (triggers.indexOf('legacy') > -1 && (this.props.isOpen || isInDOMSubtrees(e.target, this._targets))) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n if (this.props.isOpen && !isInDOMSubtree(e.target, this._popover)) {\n this.hideWithDelay(e);\n } else if (!this.props.isOpen) {\n this.showWithDelay(e);\n }\n } else if (triggers.indexOf('click') > -1 && isInDOMSubtrees(e.target, this._targets)) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n\n if (!this.props.isOpen) {\n this.showWithDelay(e);\n } else {\n this.hideWithDelay(e);\n }\n }\n }\n\n addEventOnTargets(type, handler, isBubble) {\n this._targets.forEach(target=> {\n target.addEventListener(type, handler, isBubble);\n });\n }\n\n removeEventOnTargets(type, handler, isBubble) {\n this._targets.forEach(target=> {\n target.removeEventListener(type, handler, isBubble);\n });\n }\n\n addTargetEvents() {\n if (this.props.trigger) {\n let triggers = this.props.trigger.split(' ');\n if (triggers.indexOf('manual') === -1) {\n if (triggers.indexOf('click') > -1 || triggers.indexOf('legacy') > -1) {\n document.addEventListener('click', this.handleDocumentClick, true);\n }\n\n if (this._targets && this._targets.length) {\n if (triggers.indexOf('hover') > -1) {\n this.addEventOnTargets(\n 'mouseover',\n this.showWithDelay,\n true\n );\n this.addEventOnTargets(\n 'mouseout',\n this.hideWithDelay,\n true\n );\n }\n if (triggers.indexOf('focus') > -1) {\n this.addEventOnTargets('focusin', this.show, true);\n this.addEventOnTargets('focusout', this.hide, true);\n }\n this.addEventOnTargets('keydown', this.onEscKeyDown, true);\n }\n }\n }\n }\n\n removeTargetEvents() {\n if (this._targets) {\n this.removeEventOnTargets(\n 'mouseover',\n this.showWithDelay,\n true\n );\n this.removeEventOnTargets(\n 'mouseout',\n this.hideWithDelay,\n true\n );\n this.removeEventOnTargets('keydown', this.onEscKeyDown, true);\n this.removeEventOnTargets('focusin', this.show, true);\n this.removeEventOnTargets('focusout', this.hide, true);\n }\n\n document.removeEventListener('click', this.handleDocumentClick, true)\n }\n\n updateTarget() {\n const newTarget = getTarget(this.props.target, true);\n if (newTarget !== this._targets) {\n this.removeTargetEvents();\n this._targets = newTarget ? Array.from(newTarget) : [];\n this.currentTargetElement = this.currentTargetElement || this._targets[0];\n this.addTargetEvents();\n }\n }\n\n toggle(e) {\n if (this.props.disabled || !this._isMounted) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n }\n\n render() {\n if (this.props.isOpen) {\n this.updateTarget();\n }\n\n const target = this.currentTargetElement || this._targets[0];\n if (!target) {\n return null;\n }\n\n const {\n className,\n cssModule,\n innerClassName,\n isOpen,\n hideArrow,\n boundariesElement,\n placement,\n placementPrefix,\n arrowClassName,\n popperClassName,\n container,\n modifiers,\n strategy,\n offset,\n fade,\n flip,\n children\n } = this.props;\n\n const attributes = omit(this.props, Object.keys(propTypes));\n\n const popperClasses = mapToCssModules(popperClassName, cssModule);\n\n const classes = mapToCssModules(innerClassName, cssModule);\n\n return (\n \n {({ update }) => (\n \n {typeof children === 'function' ? children({ update }) : children}\n \n )}\n\n \n );\n }\n}\n\nTooltipPopoverWrapper.propTypes = propTypes;\nTooltipPopoverWrapper.defaultProps = defaultProps;\n\nexport default TooltipPopoverWrapper;\n","import React from 'react';\nimport classNames from 'classnames';\nimport TooltipPopoverWrapper, { propTypes } from './TooltipPopoverWrapper';\n\nconst defaultProps = {\n placement: 'right',\n placementPrefix: 'bs-popover',\n trigger: 'click',\n offset: [0, 8]\n};\n\nconst Popover = (props) => {\n const popperClasses = classNames(\n 'popover',\n 'show',\n props.popperClassName\n );\n\n const classes = classNames(\n 'popover-inner',\n props.innerClassName\n );\n\n\n return (\n \n );\n};\n\nPopover.propTypes = propTypes;\nPopover.defaultProps = defaultProps;\n\n\nexport default Popover;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Popover from './Popover';\nimport { omit } from './utils';\n\nconst omitKeys = ['defaultOpen'];\n\nexport default class UncontrolledPopover extends Component {\n constructor(props) {\n super(props);\n\n this.state = { isOpen: props.defaultOpen || false };\n this.toggle = this.toggle.bind(this);\n }\n\n toggle() {\n this.setState({ isOpen: !this.state.isOpen });\n }\n\n render() {\n return ;\n }\n}\n\nUncontrolledPopover.propTypes = {\n defaultOpen: PropTypes.bool,\n ...Popover.propTypes\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'h3'\n};\n\nconst PopoverHeader = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'popover-header'\n ), cssModule);\n\n return (\n \n );\n};\n\nPopoverHeader.propTypes = propTypes;\nPopoverHeader.defaultProps = defaultProps;\n\nexport default PopoverHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'div'\n};\n\nconst PopoverBody = (props) => {\n const {\n className,\n cssModule,\n tag: Tag,\n ...attributes\n } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'popover-body'\n ), cssModule);\n\n return (\n \n );\n};\n\nPopoverBody.propTypes = propTypes;\nPopoverBody.defaultProps = defaultProps;\n\nexport default PopoverBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, toNumber } from './utils';\n\nconst propTypes = {\n children: PropTypes.node,\n bar: PropTypes.bool,\n multi: PropTypes.bool,\n tag: tagPropType,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n min: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n max: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n animated: PropTypes.bool,\n striped: PropTypes.bool,\n color: PropTypes.string,\n className: PropTypes.string,\n barClassName: PropTypes.string,\n cssModule: PropTypes.object,\n style: PropTypes.object,\n barStyle: PropTypes.object,\n barAriaValueText: PropTypes.string,\n barAriaLabelledBy: PropTypes.string,\n};\n\nconst defaultProps = {\n tag: 'div',\n value: 0,\n min: 0,\n max: 100,\n style: {},\n barStyle: {}\n};\n\nconst Progress = (props) => {\n const {\n children,\n className,\n barClassName,\n cssModule,\n value,\n min,\n max,\n animated,\n striped,\n color,\n bar,\n multi,\n tag: Tag,\n style,\n barStyle,\n barAriaValueText,\n barAriaLabelledBy,\n ...attributes\n } = props;\n\n const percent = ((toNumber(value) / toNumber(max)) * 100);\n\n const progressClasses = mapToCssModules(classNames(\n className,\n 'progress'\n ), cssModule);\n\n const progressBarClasses = mapToCssModules(classNames(\n 'progress-bar',\n bar ? className || barClassName : barClassName,\n animated ? 'progress-bar-animated' : null,\n color ? `bg-${color}` : null,\n striped || animated ? 'progress-bar-striped' : null\n ), cssModule);\n\n const progressBarProps = {\n className: progressBarClasses,\n style: {\n ...(bar ? style : {}),\n ...barStyle,\n width: `${percent}%`,\n },\n role: 'progressbar',\n 'aria-valuenow': value,\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuetext': barAriaValueText,\n 'aria-labelledby': barAriaLabelledBy,\n children: children\n };\n\n if (bar) {\n return (\n \n );\n }\n\n return (\n \n {multi ? children :
}\n \n );\n};\n\nProgress.propTypes = propTypes;\nProgress.defaultProps = defaultProps;\n\nexport default Progress;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { canUseDOM } from './utils';\n\nconst propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};\n\nclass Portal extends React.Component {\n componentWillUnmount() {\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n this.defaultNode = null;\n }\n\n render() {\n if (!canUseDOM) {\n return null;\n }\n\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n\n return ReactDOM.createPortal(\n this.props.children,\n this.props.node || this.defaultNode\n );\n }\n}\n\nPortal.propTypes = propTypes;\n\nexport default Portal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Portal from './Portal';\nimport Fade from './Fade';\nimport {\n getOriginalBodyPadding,\n conditionallyUpdateScrollbar,\n setScrollbarWidth,\n mapToCssModules,\n omit,\n focusableElements,\n TransitionTimeouts,\n keyCodes,\n targetPropType,\n getTarget\n} from './utils';\n\nfunction noop() { }\n\nconst FadePropTypes = PropTypes.shape(Fade.propTypes);\n\nconst propTypes = {\n isOpen: PropTypes.bool,\n autoFocus: PropTypes.bool,\n centered: PropTypes.bool,\n fullscreen: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['sm', 'md', 'lg', 'xl']),\n ]),\n scrollable: PropTypes.bool,\n size: PropTypes.string,\n toggle: PropTypes.func,\n keyboard: PropTypes.bool,\n role: PropTypes.string,\n labelledBy: PropTypes.string,\n backdrop: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['static'])\n ]),\n onEnter: PropTypes.func,\n onExit: PropTypes.func,\n onOpened: PropTypes.func,\n onClosed: PropTypes.func,\n children: PropTypes.node,\n className: PropTypes.string,\n wrapClassName: PropTypes.string,\n modalClassName: PropTypes.string,\n backdropClassName: PropTypes.string,\n contentClassName: PropTypes.string,\n external: PropTypes.node,\n fade: PropTypes.bool,\n cssModule: PropTypes.object,\n zIndex: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n backdropTransition: FadePropTypes,\n modalTransition: FadePropTypes,\n innerRef: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.string,\n PropTypes.func,\n ]),\n unmountOnClose: PropTypes.bool,\n returnFocusAfterClose: PropTypes.bool,\n container: targetPropType,\n trapFocus: PropTypes.bool\n};\n\nconst propsToOmit = Object.keys(propTypes);\n\nconst defaultProps = {\n isOpen: false,\n autoFocus: true,\n centered: false,\n scrollable: false,\n role: 'dialog',\n backdrop: true,\n keyboard: true,\n zIndex: 1050,\n fade: true,\n onOpened: noop,\n onClosed: noop,\n modalTransition: {\n timeout: TransitionTimeouts.Modal,\n },\n backdropTransition: {\n mountOnEnter: true,\n timeout: TransitionTimeouts.Fade, // uses standard fade transition\n },\n unmountOnClose: true,\n returnFocusAfterClose: true,\n container: 'body',\n trapFocus: false\n};\n\nclass Modal extends React.Component {\n constructor(props) {\n super(props);\n\n this._element = null;\n this._originalBodyPadding = null;\n this.getFocusableChildren = this.getFocusableChildren.bind(this);\n this.handleBackdropClick = this.handleBackdropClick.bind(this);\n this.handleBackdropMouseDown = this.handleBackdropMouseDown.bind(this);\n this.handleEscape = this.handleEscape.bind(this);\n this.handleStaticBackdropAnimation = this.handleStaticBackdropAnimation.bind(this);\n this.handleTab = this.handleTab.bind(this);\n this.onOpened = this.onOpened.bind(this);\n this.onClosed = this.onClosed.bind(this);\n this.manageFocusAfterClose = this.manageFocusAfterClose.bind(this);\n this.clearBackdropAnimationTimeout = this.clearBackdropAnimationTimeout.bind(this);\n this.trapFocus = this.trapFocus.bind(this);\n\n this.state = {\n isOpen: false,\n showStaticBackdropAnimation: false\n };\n }\n\n componentDidMount() {\n const { isOpen, autoFocus, onEnter } = this.props;\n\n if (isOpen) {\n this.init();\n this.setState({ isOpen: true })\n if (autoFocus) {\n this.setFocus();\n }\n }\n\n if (onEnter) {\n onEnter();\n }\n\n // traps focus inside the Modal, even if the browser address bar is focused\n document.addEventListener('focus', this.trapFocus, true);\n\n this._isMounted = true;\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.props.isOpen && !prevProps.isOpen) {\n this.init();\n this.setState({ isOpen: true});\n // let render() renders Modal Dialog first\n return;\n }\n\n // now Modal Dialog is rendered and we can refer this._element and this._dialog\n if (this.props.autoFocus && this.state.isOpen && !prevState.isOpen) {\n this.setFocus();\n }\n\n if (this._element && prevProps.zIndex !== this.props.zIndex) {\n this._element.style.zIndex = this.props.zIndex;\n }\n }\n\n componentWillUnmount() {\n this.clearBackdropAnimationTimeout();\n\n if (this.props.onExit) {\n this.props.onExit();\n }\n\n if (this._element) {\n this.destroy();\n if (this.props.isOpen || this.state.isOpen) {\n this.close();\n }\n }\n\n document.removeEventListener('focus', this.trapFocus, true);\n this._isMounted = false;\n }\n\n trapFocus (ev) {\n if (!this.props.trapFocus) {\n return;\n }\n\n if (!this._element) //element is not attached\n return;\n\n if (this._dialog && this._dialog.parentNode === ev.target) // initial focus when the Modal is opened\n return;\n\n if (this.modalIndex < (Modal.openCount - 1)) // last opened modal\n return;\n\n const children = this.getFocusableChildren();\n\n for (let i = 0; i < children.length; i++) { // focus is already inside the Modal\n if (children[i] === ev.target)\n return;\n }\n\n if (children.length > 0) { // otherwise focus the first focusable element in the Modal\n ev.preventDefault();\n ev.stopPropagation();\n children[0].focus();\n }\n }\n\n onOpened(node, isAppearing) {\n this.props.onOpened();\n (this.props.modalTransition.onEntered || noop)(node, isAppearing);\n }\n\n onClosed(node) {\n const { unmountOnClose } = this.props;\n // so all methods get called before it is unmounted\n this.props.onClosed();\n (this.props.modalTransition.onExited || noop)(node);\n\n if (unmountOnClose) {\n this.destroy();\n }\n this.close();\n\n if (this._isMounted) {\n this.setState({ isOpen: false });\n }\n }\n\n setFocus() {\n if (this._dialog && this._dialog.parentNode && typeof this._dialog.parentNode.focus === 'function') {\n this._dialog.parentNode.focus();\n }\n }\n\n getFocusableChildren() {\n return this._element.querySelectorAll(focusableElements.join(', '));\n }\n\n getFocusedChild() {\n let currentFocus;\n const focusableChildren = this.getFocusableChildren();\n\n try {\n currentFocus = document.activeElement;\n } catch (err) {\n currentFocus = focusableChildren[0];\n }\n return currentFocus;\n }\n\n // not mouseUp because scrollbar fires it, shouldn't close when user scrolls\n handleBackdropClick(e) {\n if (e.target === this._mouseDownElement) {\n e.stopPropagation();\n\n const backdrop = this._dialog ? this._dialog.parentNode : null;\n\n if (backdrop && e.target === backdrop && this.props.backdrop === 'static') {\n this.handleStaticBackdropAnimation();\n }\n\n if (!this.props.isOpen || this.props.backdrop !== true) return;\n\n if (backdrop && e.target === backdrop && this.props.toggle) {\n this.props.toggle(e);\n }\n }\n }\n\n handleTab(e) {\n if (e.which !== 9) return;\n if (this.modalIndex < (Modal.openCount - 1)) return; // last opened modal\n\n const focusableChildren = this.getFocusableChildren();\n const totalFocusable = focusableChildren.length;\n if (totalFocusable === 0) return;\n const currentFocus = this.getFocusedChild();\n\n let focusedIndex = 0;\n\n for (let i = 0; i < totalFocusable; i += 1) {\n if (focusableChildren[i] === currentFocus) {\n focusedIndex = i;\n break;\n }\n }\n\n if (e.shiftKey && focusedIndex === 0) {\n e.preventDefault();\n focusableChildren[totalFocusable - 1].focus();\n } else if (!e.shiftKey && focusedIndex === totalFocusable - 1) {\n e.preventDefault();\n focusableChildren[0].focus();\n }\n }\n\n handleBackdropMouseDown(e) {\n this._mouseDownElement = e.target;\n }\n\n handleEscape(e) {\n if (this.props.isOpen && e.keyCode === keyCodes.esc && this.props.toggle) {\n if (this.props.keyboard) {\n e.preventDefault();\n e.stopPropagation();\n\n this.props.toggle(e);\n }\n else if (this.props.backdrop === 'static') {\n e.preventDefault();\n e.stopPropagation();\n\n this.handleStaticBackdropAnimation();\n }\n }\n }\n\n handleStaticBackdropAnimation() {\n this.clearBackdropAnimationTimeout();\n this.setState({ showStaticBackdropAnimation: true });\n this._backdropAnimationTimeout = setTimeout(() => {\n this.setState({ showStaticBackdropAnimation: false });\n }, 100);\n }\n\n init() {\n try {\n this._triggeringElement = document.activeElement;\n } catch (err) {\n this._triggeringElement = null;\n }\n\n if (!this._element) {\n this._element = document.createElement('div');\n this._element.setAttribute('tabindex', '-1');\n this._element.style.position = 'relative';\n this._element.style.zIndex = this.props.zIndex;\n this._mountContainer = getTarget(this.props.container);\n this._mountContainer.appendChild(this._element);\n }\n\n this._originalBodyPadding = getOriginalBodyPadding();\n conditionallyUpdateScrollbar();\n\n if (Modal.openCount === 0) {\n document.body.className = classNames(\n document.body.className,\n mapToCssModules('modal-open', this.props.cssModule)\n );\n }\n\n this.modalIndex = Modal.openCount;\n Modal.openCount += 1;\n }\n\n destroy() {\n if (this._element) {\n this._mountContainer.removeChild(this._element);\n this._element = null;\n }\n\n this.manageFocusAfterClose();\n }\n\n manageFocusAfterClose() {\n if (this._triggeringElement) {\n const { returnFocusAfterClose } = this.props;\n if (this._triggeringElement.focus && returnFocusAfterClose) this._triggeringElement.focus();\n this._triggeringElement = null;\n }\n }\n\n close() {\n if (Modal.openCount <= 1) {\n const modalOpenClassName = mapToCssModules('modal-open', this.props.cssModule);\n // Use regex to prevent matching `modal-open` as part of a different class, e.g. `my-modal-opened`\n const modalOpenClassNameRegex = new RegExp(`(^| )${modalOpenClassName}( |$)`);\n document.body.className = document.body.className.replace(modalOpenClassNameRegex, ' ').trim();\n }\n this.manageFocusAfterClose();\n Modal.openCount = Math.max(0, Modal.openCount - 1);\n\n setScrollbarWidth(this._originalBodyPadding);\n }\n\n renderModalDialog() {\n const attributes = omit(this.props, propsToOmit);\n const dialogBaseClass = 'modal-dialog';\n\n return (\n {\n this._dialog = c;\n }}\n >\n \n {this.props.children}\n
\n \n );\n }\n\n render() {\n const {\n unmountOnClose\n } = this.props;\n\n if (!!this._element && (this.state.isOpen || !unmountOnClose)) {\n const isModalHidden = !!this._element && !this.state.isOpen && !unmountOnClose;\n this._element.style.display = isModalHidden ? 'none' : 'block';\n\n const {\n wrapClassName,\n modalClassName,\n backdropClassName,\n cssModule,\n isOpen,\n backdrop,\n role,\n labelledBy,\n external,\n innerRef,\n } = this.props;\n\n const modalAttributes = {\n onClick: this.handleBackdropClick,\n onMouseDown: this.handleBackdropMouseDown,\n onKeyUp: this.handleEscape,\n onKeyDown: this.handleTab,\n style: { display: 'block' },\n 'aria-labelledby': labelledBy,\n role,\n tabIndex: '-1'\n };\n\n const hasTransition = this.props.fade;\n const modalTransition = {\n ...Fade.defaultProps,\n ...this.props.modalTransition,\n baseClass: hasTransition ? this.props.modalTransition.baseClass : '',\n timeout: hasTransition ? this.props.modalTransition.timeout : 0,\n };\n const backdropTransition = {\n ...Fade.defaultProps,\n ...this.props.backdropTransition,\n baseClass: hasTransition ? this.props.backdropTransition.baseClass : '',\n timeout: hasTransition ? this.props.backdropTransition.timeout : 0,\n };\n\n const Backdrop = backdrop && (\n hasTransition ?\n ()\n :
\n );\n\n return (\n \n
\n \n {external}\n {this.renderModalDialog()}\n \n {Backdrop}\n
\n
\n );\n }\n return null;\n }\n\n clearBackdropAnimationTimeout() {\n if (this._backdropAnimationTimeout) {\n clearTimeout(this._backdropAnimationTimeout);\n this._backdropAnimationTimeout = undefined;\n }\n }\n}\n\nModal.propTypes = propTypes;\nModal.defaultProps = defaultProps;\nModal.openCount = 0;\n\nexport default Modal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\n\nconst propTypes = {\n tag: tagPropType,\n wrapTag: tagPropType,\n toggle: PropTypes.func,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n closeAriaLabel: PropTypes.string,\n close: PropTypes.object,\n};\n\nconst defaultProps = {\n tag: 'h5',\n wrapTag: 'div',\n closeAriaLabel: 'Close',\n};\n\nconst ModalHeader = (props) => {\n let closeButton;\n const {\n className,\n cssModule,\n children,\n toggle,\n tag: Tag,\n wrapTag: WrapTag,\n closeAriaLabel,\n close,\n ...attributes } = props;\n\n const classes = mapToCssModules(classNames(\n className,\n 'modal-header'\n ), cssModule);\n\n if (!close && toggle) {\n closeButton = (\n \n )\n}\n\nPlaceholderButton.propTypes = propTypes;\nPlaceholderButton.defaultProps = defaultProps;\n\nexport default PlaceholderButton ","(() => {\n if ( typeof window !== 'object' || typeof window.CustomEvent === 'function' ) return;\n\n const CustomEvent = (( event, params ) => {\n params = params || { bubbles: false, cancelable: false, detail: null };\n var evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n });\n\n window.CustomEvent = CustomEvent;\n})();\n\n(() => {\n if ( typeof Object.values === 'function' ) return;\n\n const values = ( (O) => Object.keys(O).map((key) => O[key]) );\n\n Object.values = values;\n})();\n","export const Footer = () => {\r\n return (\r\n

\r\n Kamil Bugno © 2022\r\n

\r\n )\r\n}\r\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import './NavMenu.css'\r\nimport { useState, useEffect } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\n\r\nexport const NavMenu = () => {\r\n const location = useLocation()\r\n const [text, setText] = useState(<>)\r\n const onClick = () => {\r\n window.location.href = '/'\r\n }\r\n\r\n const bigHeader = (\r\n
\r\n
\r\n Hi, I am{' '}\r\n Kamil Bugno.\r\n

This is my tech blog.

\r\n
\r\n
\r\n )\r\n\r\n const smallHeader = (\r\n
\r\n
\r\n Kamil Bugno -\r\n blog\r\n
\r\n
\r\n )\r\n\r\n useEffect(() => {\r\n if (location.pathname !== '/') {\r\n setText(smallHeader)\r\n } else {\r\n setText(bigHeader)\r\n }\r\n window.addEventListener('scroll', resizeHeaderOnScroll)\r\n // eslint-disable-next-line\r\n }, [location])\r\n\r\n const resizeHeaderOnScroll = () => {\r\n const distanceY =\r\n window.pageYOffset || document.documentElement.scrollTop,\r\n shrinkOn = 120\r\n\r\n if (distanceY <= shrinkOn && location.pathname === '/') {\r\n setText(bigHeader)\r\n } else {\r\n setText(smallHeader)\r\n }\r\n }\r\n\r\n return <>{text} \r\n}\r\n","import React, { Component } from 'react'\r\nimport { Container } from 'reactstrap'\r\nimport { Footer } from './Footer'\r\nimport { NavMenu } from './NavMenu'\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.props.children}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import { IPost } from './Post'\r\n\r\nexport const post1: IPost = {\r\n title: 'Dependency injection in .NET Core ',\r\n tag: 'csharp',\r\n year: 2021,\r\n imageUrl: './assets/injection.png',\r\n url: '/dependency-injection-in-dot-net-core',\r\n shortDescription:\r\n 'Have you ever wondered what DI has to do with sushi, why DI is important and how to achieve it in .NET Core? If yes, this article is for you!',\r\n content: `\r\nHave you ever wondered what DI has to do with sushi, why DI is important and how to achieve it in .NET Core? If yes, this article is for you!\r\n\r\n## DI and sushi\r\nI love sushi. Dipping into soy sauce with a bit of Wasabi paste make sushi delicious 🍽\r\n![Sushi](./assets/one.jpg)\r\nBut what does this have to do with DI?\r\n\r\nLet's assume, that I want to prepare sushi on my own. Doing it in C# (haha) might look something like this:\r\n${'```'}C#\r\npublic class SushiService {\r\n public Sushi DoSushi() {\r\n var whiteRice = GetWhiteRice();\r\n var pot = GetPot();\r\n var boiledRice = pot.Boil(whiteRice);\r\n var smokedSalmon = GetSmokedSalmon();\r\n var seaweedSheets = GetSeaweedSheets();\r\n\r\n //some other steps\r\n //...\r\n\r\n return sushi;\r\n }\r\n\r\n private SmokedSalmon GetSmokedSalmon() { ... }\r\n\r\n private SeaweedSheets GetSeaweedSheets() { ... }\r\n\r\n private Pot GetPot() { ... }\r\n\r\n private WhiteRice GetWhiteRice() { ... }\r\n}\r\n${'```'}\r\n### Why is it not a good idea to prepare sushi without DI?\r\nIt can seem correctly, but there are several drawbacks of this solution. For example, the above code assumes, that we can use only one, specific pot. Despite the fact, that in my cupboard there are a lot of pots and all of them can be used to boil something, I don't have sufficient freedom to choose them. What is more, if I have already boiled rice (because I prepared too much for a previous meal), I cannot use it for my sushi - sushi method requires to prepare new rice. Analogous situation is for ingredients, I can have multiple seaweed sheets or smoked salmons (one in the fridge, another in the freezer, etc.), but I am able to use only one of them no matter how many times and when I will be making sushi. As you can see, it is not the best way of preparing sushi. \r\n\r\n### Sushi with DI is delicious\r\nDon't worry, you don't have to be hungry - we can simply refactor our solution and with the power of dependency injection prepare delicious sushi. \r\n\r\nThe first step is to create abstraction that is responsible for certain steps of preparing sushi.\r\n${'```'}C#\r\npublic class SushiService {\r\n private IRiceRepository _riceRepository;\r\n private ISalmonRepository _salmonRepository;\r\n private ISeaweedSheetsRepository _seaweedSheetsRepository;\r\n private IPotRepository _potRepository;\r\n\r\n public SushiService(IRiceRepository riceRepository,\r\n ISalmonRepository salmonRepository,\r\n ISeaweedSheetsRepository seaweedSheetsRepository,\r\n IPotRepository potRepository) {\r\n _riceRepository = riceRepository;\r\n _salmonRepository = salmonRepository;\r\n _seaweedSheetsRepository = seaweedSheetsRepository;\r\n _potRepository = potRepository;\r\n }\r\n\r\n public Sushi DoSushi() {\r\n var whiteRice = _riceRepository.GetRice();\r\n var pot = _potRepository.GetPot();\r\n var boiledRice = pot.Boil(whiteRice);\r\n var smokedSalmon = _salmonRepository.GetSmokedSalmon();\r\n var seaweedSheets = _seaweedSheetsRepository.GetSeaweedSheets();\r\n\r\n //some other steps\r\n //...\r\n\r\n return sushi;\r\n }\r\n}\r\n${'```'}\r\n### Advanteges of DI\r\nAs a result, our sushi is not dependent on the exact source of salmon or pot instance. It uses repositories to retrieve the desired objects without knowing about the details. From the ${'`'}SushiService${'`'} perspective it doesn't matter what exact pot we use and how to obtain it - from now on these considerations belong to ${'`'}IPotRepository${'`'}. \r\n\r\nWe can also modify the way of getting boiled rice. Since we use only boiled rice, we can create another piece of abstraction, that is responsible for providing ${'`'}SushiService${'`'} with boiled rice:\r\n${'```'}c#\r\npublic class SushiService {\r\n private IRiceService _riceService;\r\n private ISalmonRepository _salmonRepository;\r\n private ISeaweedSheetsRepository _seaweedSheetsRepository;\r\n public SushiService(IRiceService riceService,\r\n ISalmonRepository salmonRepository,\r\n ISeaweedSheetsRepository seaweedSheetsRepository) {\r\n _riceService = riceService;\r\n _salmonRepository = salmonRepository;\r\n _seaweedSheetsRepository = seaweedSheetsRepository;\r\n }\r\n\r\n public Sushi DoSushi() {\r\n var boiledRice = _riceService.GetBoiledRice();\r\n var smokedSalmon = _salmonRepository.GetSmokedSalmon();\r\n var seaweedSheets = _seaweedSheetsRepository.GetSeaweedSheets();\r\n\r\n //some other steps\r\n //...\r\n\r\n return sushi;\r\n }\r\n}\r\n${'```'}\r\nSo, we don't have to worry about the process of boiling our rice and what piece of equipment we need to use for boiling. All of it is done by ${'`'}IRiceService${'`'}. The advantage of this solution is the fact, that we can reuse our ${'`'}IRiceService${'`'} in different situations. You don't have to write the same piece of code every time when you want to use boiled rice:\r\n${'```'}c#\r\n//...\r\nvar whiteRice = _riceRepository.GetRice();\r\nvar pot = _potRepository.GetPot();\r\nvar boiledRice = pot.Boil(whiteRice);\r\n//...\r\n${'```'}\r\nInstead, you can simply call ${'`'}GetBoiledRice${'`'} from ${'`'}IRiceService${'`'}. Thanks to this, when the method of preparing boiled rice change, you will modify only one place - ${'`'}RiceService${'`'}.\r\n\r\nIt is also good to know that next benefit of using DI is the testability aspect. Let's imagine that ${'`'}ISalmonRepository${'`'} sends HTTP request to order salmon online and it will be shipped to your house. It will be a waste of money to buy salmon each time when you want to check if your method of preparing sushi works. For example, you can ASSUME that you have the salmon and use this assumption when you verify other steps. This is the way how we can do it in C# for all dependencies:\r\n${'```'}C#\r\n[Fact]\r\n public void VerifySushiMethod()\r\n{\r\n //Arrange\r\n var riceServiceMock = new Mock();\r\n var salmonRepositoryMock = new Mock();\r\n var seaweedSheetsRepositoryMock = new Mock();\r\n //...\r\n var sushiService = new SushiService(riceServiceMock.Object,\r\n salmonRepositoryMock.Object,\r\n seaweedSheetsRepositoryMock.Object);\r\n\r\n //Act\r\n var sushi = sushiService.DoSushi();\r\n\r\n //Assert\r\n //...\r\n}\r\n${'```'}\r\n\r\n### DI in .NET Core\r\nThe last step that is required to complete the process is to inject the dependencies. In .NET Core there is a built-in container that help you to use DI. In ${'`'}Startup${'`'} class there is ${'`'}ConfigureServices${'`'} method that you can use to specify the dependencies:\r\n${'```'}c#\r\n public void ConfigureServices(IServiceCollection services)\r\n{\r\n //...\r\n services.AddTransient();\r\n services.AddTransient();\r\n services.AddTransient();\r\n //...\r\n}\r\n${'```'}\r\n.NET Core provides you with the option to control the lifetime of injected services. There are three types to choose from:\r\n- AddSingleton - it creates one object that will be reused for all requests.\r\n- AddTransient - it creates an object each time when it is requested from the code, so the new instance is provided to every class that use the specified interface.\r\n- AddScoped - it creates the object for each client request, so the object will be different across different client requests.\r\n\r\n## Summary\r\nTo sum up, using DI is extremely useful because it makes your code more readable, testable, and flexible. As you can see, it is not hard to write a piece of code that use the power of dependency injection. I might even risk saying that it's easier to implement it in C# than making real sushi yourself.\r\n`,\r\n}\r\n","import { IPost } from './Post'\r\n\r\nexport const post2: IPost = {\r\n title: 'Revision questions for AI-102',\r\n tag: 'azure',\r\n year: 2021,\r\n imageUrl: './assets/ai-102.png',\r\n url: '/revision-questions-for-ai-102',\r\n shortDescription:\r\n \"Would you like to revise your knowledge before the exam? During preparation to AI-102 I made lots of notes, and I decided to share them with you. This article doesn't cover all topics required for AI-102, but I believe it can be a great resource to structure your knowledge. Let's start go deeper into the AI-102 world!\",\r\n content: `\r\nWould you like to revise your knowledge before the exam? During preparation to AI-102 I made lots of notes, and I decided to share them with you. This article doesn't cover all topics required for AI-102, but I believe it can be a great resource to structure your knowledge. Let's start go deeper into the AI-102 world!\r\n\r\n## What are Cognitive Services?\r\n![Cognitive Services](./assets/c1.png)\r\nIt is sometimes called an 'umbrella' service because it contains other AI services such as Face, LUIS, Speech to Text, etc. All the contained services can be used independently - you can search them in Azure Marketplace and add them to your solution. So why do we need Cognitive Services? It is more comfortable to use it when we know that we need several different services related to AI and thanks to Cognitive Services, we don't have to add each of the services separately. There is also a difference in a free tier: Cognitive Services don't have free tier options. On the contrary, other AI services such as Computer Vision and Face provide you with free tier options. \r\n\r\n## Can I use Cognitive Services as a container?\r\nYes, you can. Thanks to it, you can use AI functionalities on-premises. There are two vital facts related to it: not all AI services support containerization (for example, Face), and you must send metering data to Azure because of the billing process (Azure needs to know how you use its services to be able to prepare a bill for you). \r\n\r\n## What are the benefits of having Cognitive Services as a container?\r\nYou have the possibility of controlling your data. By using containers, you don't have to send your data to the cloud to use AI services - all the work is done on-premises. What is more, you can use the advantages of containers: portable application architecture and scalability achieved by using orchestration tools such as Kubernetes.\r\n\r\n## What is Computer Vision API?\r\nIt enables you to analyse content in both images and video. You can use either REST API or client library (for C#, Python, Java, etc.) There are several crucial functions, that this API provides - below there are methods that you can use in Python:\r\n* ${'`'}computervision_client.describe_image${'`'} - generate a human-readable sentence that describes the image,\r\n* ${'`'}computervision_client.tag_image${'`'} - returns tags based on recognizable objects, living beings, scenery, and actions,\r\n* ${'`'}computervision_client.analyze_image${'`'} - returns object that contains several properties:\r\n * ${'`'}brands.name${'`'} - detects corporate brands and logos in the image,\r\n * ${'`'}adult.is_adult_content${'`'} - returns true if the image show nudity and sexual acts,\r\n * ${'`'}adult.is_racy_content${'`'} - returns true of the image is sexually suggestive.\r\n* ${'`'}computervision_client.analyze_image_by_domain(\"celebrities\", image_url)${'`'} - recognizes celebrities,\r\n* ${'`'}computervision_client.analyze_image_by_domain(\"landmarks\", image_url)${'`'} - detects landmarks in the image.\r\n* ${'`'}computervision_client.generate_thumbnail(width, height, image_url)${'`'} - creates reduced-size representation of an image. It can change the aspect ratio and remove distracting elements from the image.\r\n* ${'`'}computervision_client.read(image_text_url, raw=True)${'`'} uses Read API to return (in an async way) object that contains ${'`'}result.analyze_result.read_results${'`'} - it provides you with the extracted printed or handwritten text from an image. Read API supports files in JPEG, PNG, BMP, PDF, and TIFF formats.\r\n\r\n## What is Form Recognizer?\r\nForm Recognizer is a part of Computer Vision, and you can use it to extract key-value pairs and table data from form documents. It contains several methods:\r\n* ${'`'}form_recognizer_client.begin_recognize_content_from_url(form_url)${'`'} - it returns a collection of objects: one for each page in the submitted document. You can access cells and texts from the returned objects,\r\n* ${'`'}form_recognizer_client.begin_recognize_receipts_from_url(receipt_url)${'`'} - it extracts common fields from US receipts by using a pre-trained receipt model,\r\n* ${'`'}form_recognizer_client.begin_recognize_business_cards_from_url(business_cards_url)${'`'} - it extracts common fields from English business cards by using a pre-trained model.\r\n\r\n## How can I detect faces on images?\r\nYou have two possibilities: you can run Computer Vision method: ${'`'}computervision_client.analyze_image(image_url, [\"faces\"])${'`'} or you can use Face API. It is important to know the difference between them. Computer Vision's ${'`'}analyze_image${'`'} method only provides a subset of the Face service functionality, so you are not able to use more advanced solutions with it.\r\n\r\n## What is Face API?\r\nIt provides you with AI algorithms related to human faces. This service contains five main functionality:\r\n* face detection - it simply detects faces and returns the rectangle coordinates of their locations. You can use ${'`'}face_client.face.detect_with_url${'`'} method in Python to fulfil the detection. \r\n* face verification - it helps to answer the following question: \"Are these two images the same person?\". You can use ${'`'}face_client.face.verify_face_to_face${'`'} for it.\r\n* face identification - it helps to answer the following question: \"Can this detected face be matched to any enrolled face in a database?\". You can use ${'`'}face_client.face.identify${'`'} method for identification,\r\n* find similar faces - let's imagine that we have a target face and a set of candidate faces. The goal of this feature is to find a smaller set of faces (from candidate faces) that look like the target face. You can use ${'`'}face_client.face.find_similar${'`'} method for this,\r\n* face grouping - it divides faces into several groups based on similarity. From the code perspective it is a bit more complicated than the methods above. Firstly, you have to create group (${'`'}face_client.person_group.create${'`'}), secondly, you need to define one or more person in that group (${'`'}face_client.person_group_person.create${'`'}), later you should add images of the newly created person (${'`'}face_client.person_group_person.add_face_from_stream${'`'}), penultimate step is to train the model (${'`'}face_client.person_group.train${'`'}) and finally you can identify the person from the group (${'`'}face_client.face.identify${'`'}).\r\n\r\n## What is Custom Vision?\r\nThe main goal of Custom Vision is to create custom image identifiers. You can train the model to serve your individual needs. Let's imagine that you want to have a service that distinguish cat from dog. You upload several images of cats with 'cat' labels and do the same for dog. After training, you are able to upload a new image, that the model hasn't seen yet, and you will receive information if the image shows cat or dog with the great accuracy. \r\n\r\nIt is also good to know that Custom Vision has two main features:\r\n![Project Types](./assets/c2.png)\r\n* image classification - it applies labels to an image,\r\n* object detection - it not only add labels, but it also returns the coordinates of the labelled object location. It is important to remember that you have to add labels and coordinates for training data on your own.\r\n\r\n## How can I use Custom Vision?\r\nYou have three options: \r\n* online site (${'`'}https://www.customvision.ai/${'`'}), \r\n* SDK that support C#, Python, etc., \r\n* REST API. \r\n\r\nEach option provides you with the same type of AI functionality. \r\n\r\n## What is Video Indexer?\r\nIt is an AI service that provides you with the possibility of extracting information from video. It is focus on both visual and audio aspect of the video.\r\n![Video Indexer](./assets/c3.png)\r\nThe functionality is really impressive and includes:\r\n* face detection - it detects faces that are visible on the video,\r\n* celebrity identification,\r\n* visual text recognition - it extracts text from the video frame,\r\n* visual content moderation - it informs you if the adult content is displayed on the video,\r\n* scene segmentation - it determines when a scene is changed on the video,\r\n* rolling credits - it identifies when rolling credits are displayed,\r\n* audio transcription,\r\n* noise reduction,\r\n* speaker enumeration - it can understand which speaker spoke which words and when. It is good to know that only sixteen different speakers can be detected in a single audio-file.\r\n* emotion detection - identifies emotions based on speech (joy, sadness, anger, ect.),\r\n* keywords extraction - it extracts keywords from speech and visual text.\r\n\r\n## How can I use Video Indexer?\r\nYou have two options: online site (https://www.videoindexer.ai) and API.\r\n\r\n## Can I customise Video Indexer?\r\nYes, to some extend you can. For example, if some faces are detected on your video and they are not celebrities they will be left unnamed. You can describe unrecognized faces, and as a result, your newly labelled faces will be saved in the model. So, from that point Video Indexer will be able to recognize these faces. Similar case is for brands. You can customize brands model to exclude certain brands from being detected or include brands that should be part of your model but weren't detected. What is more, you can also customize language model for example to be able to know that you don't want to translate 'Kubernetes' word, because it is from a technical domain.\r\n\r\n## What is Text Analytics API?\r\nText Analytics API a part of Language APIs and it is focused on Natural Language Processing. The functionalities that Text Analytics provides are:\r\n* sentiment analysis - it can determine if the document/sentence is positive, negative, or neutral,\r\n* key phrase extraction - it returns a list of key phrases,\r\n* language detection - you can send a text in some language and the response will contain the name of used language and the confidence score,\r\n* named entity recognition - it can recognize some entities in the text (for example people, places, organizations, etc.).\r\n\r\n## How can I use Text Analytics API?\r\nYou can use either SDKs (for C#, Python, etc.) or REST API. For example, in C# there is a method ${'`'}textAnalyticsClient.AnalyzeSentiment(document)${'`'} for sentiment analysis or you can use REST API - ${'`'}/text/analytics/v3.0/sentiment${'`'} endpoint will return the same data as the SDK's method.\r\n\r\n## How many languages are supported for Text Analytics?\r\nEach functionality has a separate supported languages list. For example, key phrase extraction supports both English and Polish (and many more), but as for sentiment analytics Polish is not supported. \r\n\r\n## What is the Speech service?\r\nAs a name suggests, it is focused on the speech. These are the provided functionalities:\r\n* Speech-to-Text,\r\n* Text-to-Speech,\r\n* Speech-to-Speech translation,\r\n* Speech-to-Text translation.\r\n\r\nIt is important that both Speech-to-Speech and Speech-to-Text translation are supported only for SDK - there is no REST API for them. \r\n\r\n## Can I customize Speech service?\r\nYes, you can create a custom model for Speech-to-Text functionality by using Custom Speech service, and for Text-to-Speech by using Custom Voice service.\r\n\r\n## What is Language Understanding (LUIS)?\r\nIt is a conversational AI service. You can use it to understand users needs. Let's image a chatbot or voice assistant that should increase the productivity of the employees. When the user writes/says 'I want to send email to Tom', LUIS will use trained model to predict the meaning of user input - as a result, SendEmail method will be executed with EmailTo property set to Tom. \r\n\r\n## How can I use LUIS?\r\nYou have three options:\r\n* dedicated website (${'`'}https://www.luis.ai/${'`'});\r\n* REST API;\r\n* SDKs (C#, Python, etc. are supported).\r\n\r\n## What are utterances?\r\nUtterances are the user input. In the above example, we use the following text 'I want to send email to Tom' - it is the utterance.\r\n\r\n## What is intent?\r\nIntent is an action that the user wants to perform. In the above example 'SendEmail' is the intent. LUIS determines intent based on user input (utterances).\r\n\r\n## What is entity in LUIS?\r\nSome actions can require attributes. LUIS is able to recognize the entities from utterances. For example, {\"EmailTo\": \"Tom\"} is an entity retrieved from the sentence 'I want to send email to Tom'.\r\n\r\n## What should I do to start using LUIS?\r\n* Add Microsoft.CognitiveServices to your Resource providers:\r\n![Resource providers](./assets/c4.png)\r\n* Create Cognitive Services account:\r\n![Cognitive Services account](./assets/c5.png)\r\n* Create app:\r\n![App creation](./assets/c6.png)\r\n* Build your language models by specifying intents and entities - you can use prebuild data. For example, when you select Email.SendEmail intend then a lot of utterances is automatically added:\r\n![Prebuild model](./assets/c7.png)\r\nEntities can also be predefined:\r\n![Predefined](./assets/c8.png)\r\n* Train the model:\r\n![Train the model](./assets/c9.png)\r\n* Publish to endpoint;\r\n* Test from endpoint.\r\n\r\n## What is Azure Cognitive Search Service?\r\nAs a name suggests, this service enable you to use search functionality on your data. For example, you can search all data that are stored Azure SQL Database or Azure Cosmos DB.\r\n\r\n## What is the difference between index and indexer?\r\nIndexer can crawl your data source and create an index. The index is a collection of documents that can be searched. Index can contains additional data that specify how the search functionality is used on it, such as: sortable (true | false), filterable (true | false), searchable (true | false), etc. \r\n\r\n## How can I create an indexer?\r\nAll indexers are required to contain:\r\n* name - the name of the indexer;\r\n* dataSourceName - you can choose from:\r\n * SQL Managed Instance\r\n * SQL Server on Azure Virtual Machines\r\n * Azure SQL Database\r\n * Azure Table Storage\r\n * Azure Blob Storage\r\n * Azure Cosmos DB\r\n * Azure Data Lake Storage Gen2\r\n* targetIndexName - the name of your index.\r\n\r\nFrom the technical point of view, you can create indexer using Azure portal, REST API, SDKs (.NET, Java, Python and JavaScript are supported).\r\n\r\n## How can I run indexers?\r\nYou can run indexers after the creation, so it will retrieve desired data from the source and put it to index. As a result, they will be available for the search functionality. But what about the situation when data is changing all the time, and you want to search up-to-date data? In that case, you can use a scheduler for it and specify when the indexer should be run. For example, you can define that the indexer will be run every hour.\r\n\r\n## How can I support autocomplete and autosuggest in my Search Service?\r\nYou need to specify the ${'`'}suggesters${'`'} property in the index definition. This field requires three pieces of data:\r\n* name - name of your suggester,\r\n* sourceFields - it can contain one or more fields that will be used as a data source for the autocomplete or autosuggest options,\r\n* searchMode - only one is available now - ${'`'}analyzingInfixMatching${'`'}. It checks the beginning of a given term.\r\n\r\nIt is important that only one suggester can be defined per index.\r\n\r\n## Why should I support synonyms in my Search Service?\r\nIt makes your search functionality richer. For example, when user tries to search for _USA_, it will be great if the retrieved results contains also data for _United States_, _United States of America_ and even _USofA_. An index definition contains ${'`'}synonymMaps${'`'} property and in that place you can specify the synonyms.\r\n\r\n## What is QnA Maker?\r\nQnA Maker enables you to create conversational app with Question and Answer functionality. The user provides the question (in text or speach) and the QnA Maker responds with the best suited answer. You can import data (that is called knowledge base) from documents (PDFs, DOCXs) and websites (URLs) where FAQ section is available. \r\n\r\n## What is a multi-turn conversation?\r\n![Turn](./assets/c10.png)\r\nMulti-turn is a follow-up prompt that help to specify what the user wants to achieve. For example, when you visit Adobe page, you can see that the chatbot uses multi-turn to determine whether the user is satisfied with the answer. Vodafone uses it to check if the user is their existing customer or a new client. Scandinavian Airlines provides multi-turn conversation to specify the main topic of the discussion. As you can see, additional follow-up prompts can help to create a satisfying bot conversation.\r\n\r\n## What it chit-chat functionality of QnA Maker?\r\nWhen you create your knowledge base, you have an option for adding chit-chat. Chit-chat makes your bot more human-friendly and engaging. '_How are you?_', '_What is your name?_', '_How old are you?_' - these are the examples of chit-chat questions. When you want to add these functionality to your QnA Maker, you have several personalities to choose from:\r\n* professional,\r\n* friendly,\r\n* witty,\r\n* caring,\r\n* enthusiastic.\r\n\r\nWhat is the difference? For example, when you ask '_When is your birthday?_' professional personality will respond '_Age doesn't really apply to me_' and friendly with '_I don't really have an age_'.\r\n\r\n## What is active learning for QnA Maker?\r\nAs a name suggests, you can enable QnA Maker to learn based on user inputs. Thanks to it, you can add new questions (that are suggested by the QnA Maker) to your knowledge base. You have to review and accept or reject QnA Maker suggestions in the portal - there is no other way of managing suggestions.\r\n\r\n## How can I build my bot?\r\nYou have three main options:\r\n* Bot Framework SDK that supports C#, JS, Python and Java,\r\n* BF (Bot Framework) Command Line Interface,\r\n* Bot Framework Composer - it is an IDE for developing bots.\r\n\r\n## How can I debug my bot using Bot Framework SDK?\r\nThere is Bot Framework Emulator that provide you with the functionality of testing and debugging bots. It is a desktop application for Windows, OS X and Linux.\r\n\r\n## What are Adaptive Cards?\r\n![Adaptive Cards](./assets/c11.JPG)\r\nAdaptive Cards can enrich communication by using text, graphics, and buttons to your bot conversation. You can create Adaptive Cards in the Designer (${'`'}https://adaptivecards.io/designer/${'`'}) or by Bot Framework SDK.\r\n\r\n## What is a skill?\r\n![Skill](./assets/c12.png)\r\nIn Bot Framework a skill is a bot that performs tasks for another bot. Thanks to it, you can extend your existing bot by consuming another skill (bot). It is good to know that a main skill consumer that interact with the user is called a root bot.\r\n\r\n## Which Cognitive Services can I integrate into my bot?\r\nIt is common to integrate QnA Maker service, LUIS service, and Speech service into the bot.\r\n`,\r\n}\r\n","import { IPost } from './Post'\r\n\r\nexport const post5: IPost = {\r\n title: 'Web accessibility',\r\n tag: 'frontend',\r\n year: 2020,\r\n url: '/web-accessibility',\r\n imageUrl: './assets/accessibility.png',\r\n shortDescription:\r\n 'If you are an owner of 20/20 vision you probably never spent much time thinking of how lucky you are. But did you know that vision impairment and blindness concern around 285.4 mln people? That’s according to the Centers for Disease Control and Prevention (CDC). Other statistics show that every single year 1 to 2 million people become blind. Regardless of these considerable numbers, vision impairment or blindness has a huge influence on a given person - not only in a physical world but also in a virtual one. How can we, as programmers, help to make the virtual world more accessible?',\r\n content: `\r\nIf you are an owner of 20/20 vision you probably never spent much time thinking of how lucky you are. But did you know that vision impairment and blindness concern around 285.4 mln people? That’s according to the Centers for Disease Control and Prevention (CDC). Other statistics show that every single year 1 to 2 million people become blind[1]. Regardless of these considerable numbers, vision impairment or blindness has a huge influence on a given person - not only in a physical world but also in a virtual one. How can we, as programmers, help to make the virtual world more accessible?\r\n\r\n## It is not a new idea\r\nThe concept of creating highly accessible websites isn't new. The accessibility of the websites is based on an international standard that has been in force since 1999. That was the year the first version of this standard was published. In 2008 version 2.0 was released, which sets out the standard for developers for creating websites that are accessible to people with disabilities. This standard is called WCAG[2] - Web Content Accessibility Guidelines and specifies requirements for three levels of accessibility: A (basic accessibility), AA (medium accessibility), and AAA (the highest level of accessibility). Even though several years have passed from the first version of that guideline, there are still a lot of websites that are not very friendly towards people with visual impairments. In Poland, access to websites for people with disabilities is regulated by a legislative act - but this applies only to public institutions. Unfortunately, commercial websites are exempt from this obligation and a lot of these websites are not accessible to people with visual impairments.\r\n\r\n## See how people with visual impairments see the world \r\nBefore I started developing a project that had to meet strict accessibility requirements I wasn't aware of that problem. I had never wondered before how the visually impaired people browse the Internet. When I used a screen reader for the first time, I realized how important the accessibility is for people with visual impairments. You can conduct a small experiment and install two extensions for your browser. ChromeVox Classic Extension[3] is a screen reader and every webpage you browse is simply read out loud to you by this extension. Thanks to it blind people can hear the content of the site. All audio descriptions presented in this post come from this extension. The second is NoCoffee Vision Simulator[4] and it allows you to observe how people with visual impairments see. \r\n\r\nThe following gif shows how Wikipedia page can look like for a visually impaired person using this extension:\r\n![Gif: example of a visual impairment](./assets/q1.gif)\r\n \r\nSo, for a short period, you can feel like a person with colour blindness, glaucoma, or another vision impairment and experience what your favourite websites look like, given these circumstances. It made a big impression on me.\r\n\r\n## Several steps that you can take today to make your website more accessible\r\nNow it is time for us to focus on the technical side of accessibility. I will show you several methods that you can use to improve the accessibility of your website.\r\n### Use semantic HTML\r\nI wanted to understand what the main difficulties of visually impaired people are when it comes to using Internet, so I decided to talk with Andrzej Janik, who represents the Mir foundation[5] and is a blind person. \r\n\r\n>\"It is much easier for me to browse the page if it is divided into appropriate sections. The website menu, headers from H1 to H6, article section, and footer are important elements for people with visual impairment\".\r\n\r\nAccording to him, we should use semantic HTML wherever possible.\r\n\r\nLet's assume that we have this menu item:\r\n\r\n![Photo: Example of the menu](./assets/q2.png)\r\n\r\nAnd here is a code for it: \r\n\r\n${'```'}html\r\n
\r\n \r\n
\r\n${'```'}\r\nYou can see that we use '_div_' HTML tag. How does the screen reader present this menu bar to a visually impaired person? When the user focuses on the first element, they can hear:\r\n\r\n'_List with four items. Home. Internal link list item._'\r\n\r\nThis menu bar doesn't use the power of semantic HTML. Why? Because the screen reader doesn't know that this is a menu on our page - '_div_' tag is not very descriptive. We can correct it by using '_nav_' tag instead of '_div_'.\r\n\r\n${'```'}html\r\n\r\n${'```'}\r\nThanks to it the visually impaired person can hear the following description of the menu:\r\n\r\n'_**Navigation** list with four items. Home. Internal link list item._'\r\n\r\nThe similar situation occurs when it comes to creating buttons. We can create buttons in different ways. Let's assume that we have three following buttons:\r\n\r\n${'```'}html\r\n
First
\r\n\r\n\r\n${'```'}\r\n\r\nHow will the screen reader describe these elements?\r\n* '_First_' - for '_div_' tag\r\n* '_Second. Button_' - for '_input_' tag with _type=\"button\"_\r\n* '_Third. Button_' - for '_button_' tag\r\n\r\nAs you can notice, using '_div_' tag provides no real value for screen readers. Only two last methods of creating a button can provide an appropriate description for a visually impaired person. So, if you would like to improve the accessibility of your website, you should consider the following tags instead of '_div_'[6]: \r\n* '_nav_',\r\n* '_button_', \r\n* '_header_',\r\n* '_footer_', \r\n* etc.\r\n\r\n### Skip to content link\r\nUsually, the majority of websites have many items at the top. A very extensive menu, additional links etc. For example, when you visit the New York Times website, you can see these elements:\r\n\r\n![New York Times website](./assets/q3.png)\r\n\r\nPeople with a visual impairment often use a keyboard to navigate the page, not a mouse. As a result, that person must press '_tab_' or '_shift+tab_' to switch between the various content of the site. Can you imagine how many times they have to press '_tab_' to skip all items in the header section? Too many. As a solution for this issue, a lot of websites implement '_Skip to content_' link. \r\n \r\nNew York Times website also has this link. It is visible only when you are navigating the page using '_tab_'. Thus a visually impaired person can save a lot of time using this link because they do not have to press '_tab_' for every element in the header. How can we implement a link like this?\r\n\r\n${'```'}html\r\nSkip to content\r\n${'```'}\r\n\r\n${'```'}css\r\n.skip {\r\n position: absolute;\r\n top: auto;\r\n left: -1000000000px;\r\n height: 1px;\r\n width: 1px;\r\n overflow: hidden;\r\n}\r\n\r\n.skip:focus {\r\n position: static;\r\n margin: 10px;\r\n height: auto;\r\n width: auto; \r\n}\r\n${'```'}\r\n\r\nThis skip to content link can also be used in other situations. \r\n> \"One of the Poland news websites usually publishes articles with a video player embedded inside. It is really hard to skip this player because it has a lot of different buttons\" said Andrzej Janik. \r\n\r\nIt seems that in this situation '_Skip to content_' link can also be helpful. \r\n\r\n### Add description to the photos\r\nLet's assume that we want to add a photo to our website. We can do it with the following code:\r\n\r\n${'```'}html\r\n\r\n${'```'}\r\n\r\nHow does the screen reader describe this element?\r\n'_My photo image_'\r\n\r\nIt is important that the screen reader uses filename when there is no alt text or description. On some websites, I can find images with really strange filenames that are not related to the content of the image, for example, pexels-photo_1920x485.jpg. When a visually impaired person comes across the element like this they can feel really confused. How can we improve it?\r\n\r\nWe can simply add alt text:\r\n\r\n${'```'}html\r\n\"Description\r\n${'```'}\r\n\r\nThanks to it, the screen reader will now read the description of the image.\r\n\r\nAnother important thing about images is a **meaningful** description. Andrzej Janik told me about a situation where the local authority organized an event and posted an article about it to their website. Unfortunately, all information about that event was included within a poster, so he was not able to access them. In such a situation it can be better to write the details of that event in the description of the image instead of adding an overly generic description like \"The poster about our new event\". This example shows us one good practice: we should describe the information that is contained within the photo, not the photo itself.\r\n\r\n### Connect label with an input element\r\nLet's imagine that we have a huge form, and one of its sections is about choosing one of two elements. We can select either Cat or Dog option.\r\n\r\n![Photo: example of the radio buttons](./assets/q4.png)\r\n \r\nThis functionality can be achieved by using the following code:\r\n\r\n${'```'}html\r\n
\r\n Dog\r\n Cat\r\n
\r\n${'```'}\r\nWhen a user focuses the cursor on the first option, they can hear:\r\n\r\n'_Radio button selected._'\r\n\r\nIt doesn't provide any details about the selected option. The first step to improve the accessibility of it is to add a label element. \r\n\r\n${'```'}html\r\n
\r\n \r\n \r\n
\r\n${'```'}\r\n\r\nThen we can hear:\r\n\r\n'_**Dog,** radio button selected._'\r\n\r\nWe can improve this solution even more. How? Let's talk about '*role*' attribute!\r\n\r\n### Use 'role' attribute\r\nDo you remember what I recommended about semantic HTML? When it is possible we should use it. But what can we do when we really need to use a simple '_div_'? It turns out that there is a special HTML attribute. It is called '_role_' and thanks to it we can describe what the main goal of a given section of HTML is.\r\n\r\nLet's go back to our radio buttons. This solution can be improved by adding '_role_' attribute.\r\n\r\n${'```'}html\r\n
\r\n \r\n \r\n
\r\n${'```'}\r\n\r\nAnd instead of hearing: '_Dog, radio button selected_' we now can hear: '_Dog, radio button **one of two** selected_'.\r\n\r\nThis works for alerts as well. A website can show alert if the user should take immediate action:\r\n![Photo: example of alert](./assets/q5.png)\r\n \r\n We can implement such an alert using '_div_' tag:\r\n${'```'}html\r\n
\r\n \r\n Important! You have to confirm your e-mail.\r\n
\r\n${'```'}\r\nWhen the focus is on that element, the screen reader will describe it as '_Important. You have to confirm your e-mail_'. As a result, it is not known that this message is an alert. We can add this information by using _role=\"alert\"_ attribute.\r\n\r\n${'```'}html\r\n
\r\n \r\n Important! You have to confirm your e-mail.\r\n
\r\n${'```'}\r\n\r\nThanks to it, the user will hear '_Important. You have to confirm your e-mail. **Alert**_'. At first glance, this one additional word doesn't seem to be very important, but for a visually impaired person, it is helpful information.\r\n\r\n### Use '_aria-..._' attributes\r\nNot only can we use '_role_' attribute in order to make our website more friendly for visual impaired people, but also we have '_aria-..._'[7] attributes at our disposal. It is good to know that aria stands for Accessible Rich Internet Applications and is meant to provide additional information about HTML elements to people with disabilities.\r\n\r\n#### aria-label\r\nOne of the most popular '_aria-..._' attributes is '_aria-label_' and as a name suggests it provides an additional label to a given element.\r\n\r\nLet's assume that we want to use a button without any visible text:\r\n![Photo: example of close button](./assets/q6.png)\r\n \r\nWe can do it by writing:\r\n${'```'}html\r\n\r\n${'```'}\r\nWhen the screen reader is used to describe that element, we can only hear: '_Button_'. This solution doesn't provide sufficient information for visually impaired people. We can improve it by using '_aria-label_' attribute:\r\n\r\n${'```'}html\r\n\r\n${'```'}\r\nNow we can hear '_Close button_'.\r\n\r\nThis attribute is also really helpful when we have a loading icon. If a user has to wait for some data to load, it is a good practice to explain to them the reason why said data isn't shown immediately. Instead of rendering only the loading icon, we should add an '_aria-label_' attribute with an explanation like '_Please wait, the page is loading_'.\r\n\r\n#### aria-labelledby\r\n\r\nVery similar attribute to '_aria-label_' is a '_aria-labelledby_' attribute. Instead of explicitly writing the content of the label, we can point out that we want to use different HTML element as a label. It can be most helpful in cases when we want to concatenate labels from several other nodes. We can simply add id's of desired elements as arguments to '_aria-labelledby_'.\r\n\r\nLet's imagine that we have the following form:\r\n![Photo: example of a form](./assets/q7.png)\r\n\r\nWe want to add to the fields the information about both the name of the form's section and the label of the input. We can do it by using '_aria-labelledby_' attribute.\r\n\r\n${'```'}html\r\n

New employee

\r\n\r\n\r\n${'```'}\r\nScreen reader describes the first input as: '_New employee, first name, edit text_'. It can be most useful when the form is really big and contains several sections. Thanks to it, a visually impaired person can be more aware of the context of a given field. \r\n\r\n#### aria-valuemin, aria-valuemax\r\nAnother example where we can use '_aria-..._' attribute is a slider.\r\n\r\n![Photo: example of a slider](./assets/q8.png)\r\n\r\nWe can implement it in this way:\r\n${'```'}html\r\n\r\n${'```'}\r\n\r\nBut as a result, screen reader will only mention the current value. So, we can hear '_Choose the value. Sixty, slider_'.\r\n\r\nWhen we change the solution to the one shown below, we will hear: '_Choose the value. Sixty, slider. **Min one, max one hundred**_'.\r\n${'```'}html\r\n\r\n${'```'}\r\n#### aria-required\r\nIn a form, we can have required fields like \"Your name\".\r\n\r\n![Photo: example of the required field](./assets/q9.png)\r\n \r\nIt can be implemented using this HTML:\r\n${'```'}html\r\n \r\n${'```'}\r\n\r\nScreen reader describes it as '_Your name, edit text_'. Unfortunately, the information that this field is required is not presented for a visually impaired user. But when we add '_aria-required_' attribute, then the user knows that they have to fill in this field: \r\n\r\n${'```'}html\r\n \r\n${'```'}\r\n\r\nAs a result, we can hear: '_Your name, edit text, **required**_'.\r\n\r\n### How to check if my website is accessible?\r\nIn an ideal world, it would be great to use the potential of people with visual impairment for this task. As Andrzej Janik said\r\n\r\n> \"before any website is made available for users it is verified by a QA team. A similar strategy we can use for testing the accessibility of the page. Why not hire visually impaired people who can verify it from the practical perspective?\". \r\n\r\nAlthough this idea is really interesting, if we don't have that possibility, we can use special tools to test the accessibility of our site. These tools usually don't check everything, so we shouldn't expect that thanks to them our website will be 100% accessible - but they can help us with the most important issues. One such tool is WAVE[8].\r\n\r\n![Photo: screen from WAVE extension](./assets/q10.png)\r\n\r\nWAVE shows crucial problems related to accessibility, like missing alt texts, skipping headings, missing labels, etc. Similar functionalities are also offered by Chrome Lighthouse[9]. You can audit your site to see what accessibility recommendations are not met:\r\n![Lighthouse extension](./assets/q11.png)\r\n\r\n\r\nI believe that these tools can provide good support in creating more accessible pages.\r\n\r\n### Summary\r\nIn this article, I discussed what accessibility is, how it influences the comfort of browsing the internet by visually impaired people, and how we can improve the accessibility of our website. I hope that you will soon have an opportunity to use this knowledge to help in removing virtual barriers for people with disabilities!\r\n \r\n##### References:\r\n1. Report of the Institute of Healthcare: \"Choroby oczu – problem zdrowotny, społeczny oraz wyzwanie cywilizacyjne w obliczu starzenia się populacji\"\r\n2. [Official WCAG website](https://www.w3.org/WAI/standards-guidelines/wcag/)\r\n3. [Official website of Chrome Vox extension](http://www.chromevox.com/)\r\n4. [Official website of NoCoffee extenstion](https://accessgarage.wordpress.com/)\r\n5. [Official website of Mir Foundation](https://mir.org.pl/about-foundation/)\r\n6. [More examples of semantic HTML tags from w3schools](https://www.w3schools.com/html/html5_semantic_elements.asp)\r\n7. [More info about ARIA properties from W3](https://www.w3.org/WAI/PF/aria-1.1/states_and_properties)\r\n8. [Official website of WAVE extenstion](https://wave.webaim.org/extension/)\r\n9. [Official website of Lighthouse extenstion](https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk?hl=en)\r\n\r\n\r\n`,\r\n}\r\n","import { IPost } from './Post'\r\n\r\nexport const post4: IPost = {\r\n title: '104 revision questions for AZ-104',\r\n tag: 'azure',\r\n year: 2020,\r\n imageUrl: './assets/az-104.png',\r\n url: '/104-revision-questions-for-az-104',\r\n shortDescription:\r\n \"If you are preparing for AZ-104 exam, you are likely to find this article highly valuable. Together, we will go over the topics that will help you in preparation to become Microsoft Azure Administrator. When I was learning for the exam, I decided to note the most vital facts about Azure. This post doesn't cover all topics required to AZ-104, but I hope that this list can help you to revise your knowledge before the exam. Let's start!\",\r\n content: `\r\nIf you are preparing for AZ-104 exam, you are likely to find this article highly valuable. Together, we will go over the topics that will help you in preparation to become Microsoft Azure Administrator. When I was learning for the exam, I decided to note the most vital facts about Azure. This post doesn't cover all topics required to AZ-104, but I hope that this list can help you to revise your knowledge before the exam. Let's start!\r\n\r\n### 1. What is Azure AD?\r\nAzure Active Directory (AD) is known to be a platform to handle identities. It offers single sign-on (SSO), multi-factor authentication, conditional access policies, etc. \r\n\r\n### 2. What are dynamic membership rules?\r\nYou can define membership rules for users. If a given user meets the condition, they are added to a group. Thanks to it you can e.g. create groups for users who are from London and are developers. You don't have to add these users manually.\r\n![Dynamic membership rules](./assets/a1.png)\r\n\r\n### 3. What is user risk policy?\r\nAzure AD Identity Protection offers functionality to detect which users' behaviours are unusual and suspect. You can define the risk level that you accept and determine what should happen when the expected risk is higher than you agreed. For example, you can specify that if the risk of compromising a user account is medium or high then the user is blocked.\r\n![user risk policy](./assets/a2.png)\r\n\r\n### 4. What is sign-in risk policy?\r\nIt is similar to the user risk policy. You can define what should happen when the specified risk that the sign-in is coming from someone else than the user is reached. \r\n\r\n### 5. What is conditional access?\r\nAs a name suggest, you can specify what should happen for given users when they try to log in. You can, for example, specify that all guests and external users who use Android devices should use multi-factor authentication:\r\n![Conditional access](./assets/a3.png)\r\nIt is important that you use conditional access only when you disable security defaults. Security defaults are default rules managed by Microsoft that help to protect from well-known identity-related attacks. \r\n\r\n### 6. What are management groups?\r\nYou can group multiple subscriptions together by using management groups. It is important that as opposed to resource groups, management groups can be nested, so you can create a logical hierarchy of your subscriptions. For example, the management group \"C\" contains the subscription \"3\" and another management group - \"D\" that holds subscription \"4\":\r\n![Management groups](./assets/a4.png)\r\n\r\n### 7. Why should I use management groups?\r\nManagement groups simplify the administration of your subscriptions. They are usually used together with RBAC or Azure Policies.\r\n\r\n### 8. What is RBAC?\r\nRBAC stands for role-based access control. Let's imagine that there are several departments related to your current project: developers, database admins, financial analysts and so on. It will be a good idea to specify which user has what kind of permission. We would like to prevent the situation when financial analysts delete the database or when database admins swap the application's deployment. RBAC offers you an opportunity to define the rules for users who use your Azure subscription. So, you can add necessary rights to developers, other set of permissions to database admins and different privileges to financial analysts.\r\n\r\n### 9. What are the scopes for RBAC?\r\nRBAC can be applied to these levels: management group, subscription, resource group, and a given resource.\r\n\r\n### 10. What are Azure policies?\r\nAzure policies are used to enforce specified rules and effects for your resources. Let's assume that you want to be sure that all the resources have a tag. Or you want to guarantee that your virtual machines are deployed only in a given region. You can create Azure policies and determine what requirements should be met and what will happen when these conditions are or are not fulfilled.\r\n\r\n### 11. What are the scopes for Azure policies?\r\nYou can assign a policy to a management group, a subscription, and a resource group. It is good to know that there is also an exclusion option. You can e.g., select that the policy is defined for all resources in your subscription except the resources from a given resource group:\r\n![Azure policies](./assets/a5.png)\r\n\r\n### 12. What are resource locks?\r\nLet's imagine that you have a lot of virtual machines - for development, testing and production environment. Sometimes you need to delete virtual machines from the development environment only. To be sure, that you don't delete by mistake any virtual machines from testing or production environment, you can use locks. There are two types of locks: delete (it prevents from deleting a resource) and read-only (it prevents from changing the resources):\r\n![Locks](./assets/a6.png)\r\n\r\n### 13. What are the scopes for Azure locks?\r\nYou can create a lock for a subscription, resource group, and resource.\r\n\r\n### 14. Why read-only locks can be misleading?\r\nSometimes it is hard to say what does 'modification' mean for Azure resources. There is a lot of side effects of using this type of lock. For example: \r\n* A read-only lock for a virtual machine prevents the users from starting or restarting the virtual machine.\r\n* A read-only lock on a storage account prevents the users from listing the keys. \r\n\r\nMore examples you can find in [the official documentation](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/lock-resources#considerations-before-applying-locks).\r\n\r\n### 15. What will happen when I try to delete a resource with a delete lock?\r\nYou will see the information that this operation cannot be completed:\r\n![Azure Locks](./assets/a7.png)\r\n\r\n### 16. What is a tag?\r\nA tag is a name and value pair that can be added to resources in Azure. Thanks to tags you can organize your resources. They are commonly used for cost management, resource management, and automation. Let's assume that you work in a company that maintains two applications: Chat Application and Gallery Application. Each app is hosted in a virtual machine. There are two environments: test and prod. When we add tags to these virtual machines, we will know which virtual machine represents what application and environment:\r\n![Tags](./assets/a8.png)\r\n\r\n### 17. Can a tag be inherited?\r\nNo. For example, when you add a tag to a resource group, the resources within this group won't inherit this tag. \r\n\r\n### 18. What is Azure Budget?\r\nYou can create a budget limit for your subscription. Thanks to it, you are able to prevent from spending too much money on Azure. It is important that when you run out of budget, your resources are not stopped. The main goal of Azure Budget is to notify you when the specified limit is achieved.\r\n\r\n### 19. What are Azure Action Groups?\r\nDuring the creation of the budget, you can specify Action Groups. They are a set of effects that should take place when the defined budget limit is met. For example, you can receive an email, phone call or push notification:\r\n![Action Group](./assets/a9.png)\r\nThere is also an option to run Azure Function, Logic App or Webhook as an effect of the limit hit. \r\n\r\n### 20. When can I use Azure Action Groups?\r\nIt is good to know that Action Groups are not designed only to protect your budget, you can use them in other situations. For example, if your average virtual machine CPU is greater than 70%, then you can notify people in your team about this. That condition can be created by using Alerts in Azure Monitor.\r\n\r\n### 21. What is Azure Monitor?\r\nIt is a service that provides you with the rich ability to collect and analyze the telemetry of your resources. Azure Monitor contains several subservices and the most important are Application Insights, Log Analytics and Alerts.\r\n\r\n### 22. What is Azure Application Insights?\r\nIf you want to monitor your applications, Azure Application Insights is one of the best choices. You can collect information about request rates, response times, server, and browser exceptions and many more in a human-friendly way:\r\n![Azure Application Insights](./assets/a10.png)\r\n\r\n### 23. What is Log Analytics?\r\nAzure Log Analytics gives you an opportunity to write queries in Kusto query language to analyze your logs. Here are some examples of queries:\r\n* To get all data from 'ExampleTable' table:\r\n${'```'}\r\nExampleTable\r\n${'```'}\r\n* To count the number of rows contained in a table:\r\n${'```'}\r\nExampleTable | count\r\n${'```'}\r\n* To search for word 'error' in any property of the data:\r\n${'```'}\r\nExampleTable | search \"error\"\r\n${'```'}\r\nIt is good to know that Log Analytics can visualise the results of your query and, for example, you will receive a pie chart that you can pin to your dashboard. \r\n\r\n### 24. What is Alerts?\r\nAlerts in Azure Monitor are commonly used to notify you when a certain condition is met. You can use logs and metrics to check if the notification should take place and, for example, send an email to the administrator when your server returns 500 error code.\r\n\r\n### 25. What is Infrastructure as Code (IaC)?\r\nInstead of using the Azure portal to create your resources manually, you can define them in a text file - Azure Resource Manager create all your resources based on that file. The file that contains definitions of resources is called ARM template.\r\n\r\n### 26. Why should I use ARM template?\r\nARM template can be stored in a version control system and it is the first advantage of using templates. You can review the modifications and you know who and why have made any change. Additionally, you can save a lot of time, because when you want to deploy the same resources for several environments, you can use one template instead of doing these changes manually. The third reason is about avoiding human errors during the deployments. Since you don't have to make all changes by hand, there is a smaller room for mistakes. \r\n\r\n### 27. What is a shared access signature?\r\nShared access signature (SAS) is used with a storage account to give access to storage resources. You can specify what actions, services and types are allowed. There is even an option to determine a time slot when the SAS is valid: \r\n![SAS](./assets/a11.png)\r\n\r\n### 28. What is AZCopy?\r\nAZCopy is a tool that provides you with a possibility to copy data to/from your storage account. You can use it on Windows, Linux and macOS.\r\n\r\n### 29. Which data I can copy using AZCopy?\r\nYou can copy data to/from Blob and File Storage.\r\n\r\n### 30. How can I authorize my actions in AZCopy?\r\nYou can use SAS token to be able to copy the data. For Blob Storage you have also the second way of authorization: the credentials can be provided from Azure AD.\r\n\r\n### 31. How can I use AZCopy from a command line?\r\nAZCopy provides several commands that you can use, but there are two that are the most important: ${'`'}azcopy cp${'`'} and ${'`'}az login${'`'}. \r\n\r\nTo log in via Azure AD you should run this command and provide your account login/password:\r\n${'```'}\r\nazcopy login\r\n${'```'}\r\nTo upload a single file to your blob storage using SAS authorization you should run this command:\r\n${'```'}\r\nazcopy cp \"/yourPath/yourFile.txt\" \"https://[your-storage-account].blob.core.windows.net/[container]/[path-to-blob]?[SAS-token]\"\r\n${'```'}\r\nTo download a file from Azure blob storage, you should change the order of arguments:\r\n${'```'}\r\nazcopy cp \"https://[your-storage-account].blob.core.windows.net/[container]/[path-to-blob]?[SAS-token]\" \"/yourPath/yourFile.txt\"\r\n${'```'}\r\nA similar command exists for File Storage. When you want to upload a file, you should use:\r\n${'```'}\r\nazcopy cp \"/yourPath/yourFile.txt\" \"https://[your-storage-account].file.core.windows.net/[file-share-name]/[path-to-file]?[SAS-token]\"\r\n${'```'}\r\nHere is a command for downloading a file from File Storage:\r\n${'```'}\r\nazcopy cp \"https://[your-storage-account].file.core.windows.net/[file-share-name]/[path-to-file]?[SAS-token]\" \"/yourPath/yourFile.txt\"\r\n${'```'}\r\n### 32. What is Azure Import/Export job?\r\nIf you have a lot of data that need to be transferred to/from Azure, you can find the idea of importing/exporting them by using physical disk very appealing. Instead of using an Internet connection, Azure can ship to you disk drives. After you upload/download the data to/from disk, you simply send the disk back:\r\n![Import/Export job](./assets/a12.png)\r\n\r\n### 33. What are storage types supported for Azure Import/Export job?\r\nFor import, you can use both File and Blob storage. For export, only Blob storage is supported. \r\n\r\n### 34. What is WAImportExport tool?\r\nIt is used during performing Import/Export job. The tool can help you with preparing the disk drives that are sent for import. You can copy your data to the drive and encrypt the volume using WAImportExport.\r\n\r\n### 35. What is scale sets?\r\nIf you want to distribute your application across several virtual machines you should use a scale set. It provides the functionality of scaling the number of virtual machines: you can, for example, define that if the total CPU used by your VMs is greater then 85% for 10 minutes, a new virtual machine will be added to the set:\r\n![Scale set](./assets/a13.png)\r\n\r\n### 36. Why should I use scale sets?\r\nScale sets provide you with great flexibility. You can adjust your environment depending on the needs. When few users use your service running on several virtual machines, you can save money by scaling in - the amount of active VMs is decreased. An analogous situation can be for scaling out - when many users request your service, your environment can automatically adjust to that burden. \r\n\r\n### 37. What is a container?\r\nYou can run your application with all its dependencies inside a container. It is commonly used to simplify the process of moving application form one environment to another. Instead of installing all the required software in every environment, you can use a container that has installed everything that is needed for the app. \r\n\r\n### 38. What is the difference between a container and a virtual machine?\r\nYou can use any operating system inside your virtual machine - it doesn't matter that the host operating system is the same or different. Containers use the operating system of the host, and as a result, they are usually lighter than a virtual machine.\r\n\r\n### 39. What is Azure Kubernetes Service?\r\nWhen you use containers to run your application, Kubernetes can help you with managing them. If you have a lot of containers, Kubernetes orchestrate them, so you don't need to worry about scaling, access management or deployment of a new version of your app to every available container.\r\n\r\n### 40. What is Azure Kubernetes node?\r\nA node in Kubernetes is a virtual machine.\r\n\r\n### 41. What are Kubernetes pods?\r\nPods are known to be the smallest deployable units of computing. It simply means that a pod can contain at least one container. \r\n\r\n### 42. What is Kubernetes kubectl?\r\nKubectl is a command-line client that provides you with the ability to manage your Kubernetes instance. There are a lot of commands, and here I presented only a small subset of them:\r\nTo show all your nodes you can use this command.\r\n${'```'}\r\nkubectl get nodes\r\n${'```'}\r\nA similar command is used to display information about your pods:\r\n${'```'}\r\nkubectl get pods\r\n${'```'}\r\nTo create resources defined in the YAML file you should use:\r\n${'```'}\r\nkubectl apply -f ./myFile.yaml\r\n${'```'}\r\nWhen you want to manually scale the resources to 5 you can do it by this command:\r\n${'```'}\r\nkubectl scale --replicas=5 -f ./myFile.yaml\r\n${'```'}\r\n\r\n### 43. What is App Service?\r\nUsing App Service you are able to host your web application. You can easily deploy your app, specify the deployment details (like deployment slots), and set the scaling rules. It supports several runtime environments for apps written in .NET, Java, Python, Ruby, NodeJS, and PHP:\r\n![App Service](./assets/a14.png)\r\n\r\n### 44. What is App Service Plan?\r\nIn the App Service Plan, you can specify the virtual machines for your web apps to run. It is important that the App Service Plan can contain several apps - but the operating system and location have to be the same for all your apps. \r\n\r\n### 45. What are Deployment Slots?\r\nDeployment slot is your application with a specified hostname. Since there are several ways of how you can publish a new version of your application, Deployment Slots provide you with flexibility on how your app is deployed. \r\n* You can, for example, have two Deployment Slots: first for the production version of your app, second that contains new features. You can specify that 80% of the workload will be sent to the old (production) version and 20% to the new version:\r\n![Deployment slots one](./assets/a15.png)\r\n* You can also set that new version of the app won't be available to the users before it is verified by a QA team. After the testing, you can swap the versions:\r\n![Deployment slots two](./assets/a16.png)\r\n\r\n### 46. What types of scaling are supported by App Service Plan?\r\nYou can scale both up/down and out/in.\r\n\r\n### 47. What are the differences between scaling up/down and scaling out/in?\r\nBy scaling up you can add more CPU, disk space etc. You scale down when you change the resource type to lower piercing tier: \r\n![Scale up/down](./assets/a17.png)\r\nBy scaling out you can add additional instances of the same resource. Scaling in is meant to decrease the number of running instances:\r\n![Scale out/in](./assets/a18.png)\r\n\r\n### 48. What is Azure DNS?\r\nAzure DNS provides you with the ability to host domains. When you open your favourite browser and write for example www.dev.to, the name 'www.dev.to' is translated into an IP address of the server that hosts this website. The main goal of DNS is to convert the domain name to the IP address. \r\n\r\n### 49. What are types of DNS supported in Azure?\r\nYou can choose from Public DNS and Private DNS. When you buy a new domain for your app, you can use Public DNS to translate the domain name to the IP address of the web app. Private DNS is used inside your virtual network. For example, you can create database.test and server.test domain names and use it instead of IP addresses. It is important that database.test and server.test are not accessible from the Internet since it was creating using Private DNS. \r\n\r\n### 50. What is a virtual network link?\r\nIt is used with Private DNS to connect your domain (like database.test) with a virtual network. Thanks to it, the private domain name will be accessible from the virtual network. \r\n\r\n### 51. What is autoregistration?\r\nWhen you create a virtual network link, you can enable the autoregistration functionality. When you create a new virtual machine in the virtual network, the DNS record for that VM is automatically created:\r\n![autoregistration](./assets/a19.png)\r\n\r\n### 52. What is Azure Files?\r\nIf you have a collection of files, you can use Azure Files to store them in the cloud - this is the main goal of Azure Files. \r\n\r\n### 53. What protocols Azure Files uses?\r\nBoth SMB (Server Message Block) and NFS (Network File System) are supported.\r\n\r\n### 54. How can I use Azure Files?\r\nThere are two ways of using Azure Files: you can direct mount of an Azure file share or cache Azure file share with Azure File Sync. \r\n\r\n### 55. How can I create Azure File in my subscription?\r\nAzure Files can be treated as a subservice of Azure Storage Account, so you need to create Azure Storage Account to use Azure Files:\r\n![Azure Files](./assets/a20.png)\r\n\r\n### 56. What is Azure File Sync?\r\nAzure File Sync as a name suggests it is meant to synchronise files. Let's assume that you store files in on-premises file server, and you would like to have them copied in the cloud - you can be sure that your files are synchronized between on-premises and cloud by using Azure File Sync:\r\n![Azure File Sync](./assets/a21.png)\r\nIt is important that you should install an Azure File Sync agent on the server. \r\n\r\n### 57. What are the differences between server endpoint and cloud endpoint?\r\nServer endpoint is a path on the Windows Server that is synchronized to an Azure file share. Cloud endpoint is simply your Azure file share. \r\n\r\n### 58. What is Azure Sync Group?\r\nSync group can be interpreted as a logic container. Every endpoint (server and cloud) that are within this sync group are kept in sync. You should create a sync group to use the power of Azure File Sync.\r\n\r\n### 59. How many server endpoints can I have in one sync group?\r\nYou can have several server endpoints. \r\n\r\n### 60. What should I do to use Azure File Sync?\r\nThere are several steps that you should follow to use Azure File Sync:\r\n* Create Azure Files in your subscription.\r\n* Register a server by installing an Azure File Sync agent.\r\n* Create a sync group. \r\n\r\n### 61. What is a Virtual Network?\r\nAzure resources can communicate using the virtual network. When we create e.g., a VM, we can choose which virtual network would be in use. Each virtual network has an IP address range like 10.0.0.0/24. It is an IP address range using CIDR notation.\r\n\r\n### 62. What is Network Interface (NIC)?\r\nThanks to the network interface a virtual machine can have access to the rest of the world. The network interface can have one primary IP address and it is attached directly to a virtual machine.\r\n\r\n### 63. Can I have several subnets in a virtual network?\r\nYes, but important fact is that each of the subnets has to be allocated inside the IP address range. Otherwise, the creation of subnet fails:\r\n![Subnet](./assets/a22.png)\r\n\r\n### 64. Can I have no subnet in a virtual network?\r\nNo, you have to have at least one subnet in your virtual network. Otherwise, you will not be able to create a virtual network:\r\n![No subnet in VNET](./assets/a23.png)\r\n\r\n### 65. How many IP addresses are reserved by Azure in my subnets? \r\nAzure reserves 5 IP addresses in each subnet: \r\n![Reserved IP](./assets/a24.png)\r\n\r\n### 66. What is the Network Security Group (NSG)?\r\nThe main goal of the network security group is to filter the traffic. You can create several roles and specify which traffic is allowed or denied:\r\n![NSG](./assets/a25.png)\r\n\r\n### 67. To which Azure resources can I assign NSG?\r\nYou can assign NSG to a virtual machine (by using NIC - Network Interface) or to a subnet. \r\n\r\n### 68. Can I assign NSG to more than one resources?\r\nYes, you can e.g., assign one NSG to several NIC, but it is important that the location of these resources have to be the same. \r\n\r\n### 69. Can I assign several NSG to a virtual machine?\r\nYes. You can assign first NSG to NIC and second to subnet. Then the virtual machine that is inside the subnet will have two NSG. You can check it in Network Watcher -> Effective security rules: \r\n![Two NSG to one VM](./assets/a26.png)\r\nIt is important that if one of the NSG denies some traffic then the traffic is not allowed - even when the second NSG permit it. \r\n\r\n### 70. How can I check if NSG blocks the traffic?\r\nYou can use Network Watcher to check which rule blocks traffic from your virtual machine to other resources. \r\n![Network Watcher](./assets/a27.png)\r\n\r\n### 71. What will happen when my VM doesn't have any NSG?\r\nIf your VM is not associated with any NGS then all traffic is allowed.\r\n\r\n### 72. What is Azure Firewall?\r\nYou can create traffic policies using Azure Firewall. If you want to allow or deny some traffic you can do it by defining NAT rules, network rules, and applications rules. It is good to know that you can even enable the functionality of detecting traffic that goes to or from identified malicious domains or IP addresses.\r\n\r\n### 73. What is a route table?\r\nIn a route table, you can define how the traffic will be sent by determining a rule: \r\n![Route table](./assets/a28.png)\r\nFor example, we defined that all traffic to 10.3.0.0/16 will go through a virtual appliance (10.4.0.0).\r\n\r\n### 74. To which Azure resources can I assign a route table.\r\nYou can only assign a route table to a subnet.\r\n\r\n### 75. When is it a good idea to use route tables?\r\nA route table is commonly used when we have an Azure Firewall, and we would like to send all traffic from/to a given subnet through the Firewall. As a virtual appliance, you have to specify the public IP of the Firewall. \r\n\r\n### 76. What is Azure Bastion?\r\nDuring the creation of a virtual machine, you can choose which port will be opened to connecting to the newly created VM. The disadvantage of this solution is the fact, that having a given port open for all the world is not secure. You can see the following warning about it: \r\n![Warning](./assets/a29.png)\r\nInstead of opening RDP or SSH port of your virtual machine, you can use Azure Bastion to securely connect to the VM. Azure Bastion uses TLS on port 443, so you can connect the VM via web browser:\r\n![Connect to VM using Bastion](./assets/a30.png)\r\n![Connect to VM using Bastion](./assets/a31.png)\r\n\r\n### 77. How does Azure Bastion work?\r\nDuring the creation of Azure Bastion, you have to create a subnet named \"AzureBastionSubnet\". When you connect to VM by Bastion, the traffic flow is the following:\r\n![Azure Bastion](./assets/a32.png)\r\nYou connect to Azure Portal (using HTTPS), Azure Portal connects to Bastion (using HTTPS) and Bastion connect to a given virtual machine (using RDP or SSH).\r\n\r\n### 78. What is VNET peering?\r\nWhen you have two virtual networks, \"A\" and \"B\", resources that are inside \"A\" network cannot communicate to resources from \"B\" network. The main goal of VNET peering is to enable that communication. To create a peering to a virtual network -> settings -> peerings:\r\n![VNET peering](./assets/a33.png)\r\n\r\n### 79. Is a virtual network peering transitive?\r\nLet's assume that we have the following situation:\r\n![Transitive peering](./assets/a34.png)\r\nVnetA has a peering connection to VnetB and VnetB has a peering connection to VnetC. Can resources from VnetA communicate to resources in VnetC? No. There is no default transitive peering. If you want to enable that traffic, you should change the settings of these peerings and allow forwarded traffic from VnetB to VnetA and from VnetB to VnetC.\r\n![Transitive peering](./assets/a35.png)\r\n\r\n### 80. Can I create a peering connection to any virtual network I want?\r\nYou can create a peering connection between virtual networks in the same region or in different regions, but you cannot connect two virtual networks that have overlapping IP addresses:\r\n![Overlapping virtual networks](./assets/a36.png)\r\n\r\n### 81. What is Network Watcher?\r\nNetwork Watcher helps you to monitor your network. It has several functionalities:\r\n* connection troubleshoot - allows you to **examine** a connection between your VM and another resource. You should use it when you want to diagnose outbound VM communication issues.\r\n* connection monitor - thanks to it you can, for example, **monitor** communication between your VMs.\r\n* VPN diagnostics - allows you to **diagnose** the health of your gateway. If there is a communication issue between your virtual networks, you should use it.\r\n* NSG flow log - allows you to **log** the information about the traffic that goes through your NSG.\r\n* IP flow verify - enable you to **check** if traffic is allowed or denied to/from your virtual machine. We used it to check if NSG blocks the traffic.\r\n\r\n### 82. What are Custom Script Extensions?\r\nLet's imagine that you want to create several virtual machines with SQL Server installed on them. You can connect to every machine and install SQL Server manually, but it can take you a lot of time and is error prone. The main goal of Custom Script Extensions is to take such responsibilities from you. You can define a script that installs SQL Server on your virtual machine and determine that the script is run after the deployment. \r\n\r\n### 83. What is a load balancer?\r\nLoad balancer as a name suggests is meant to balancing incoming traffic to resources. Let's assume that we have three virtual machines which serve web application, and we want to distribute the traffic between them. Users can initiate a connection to the load balancer and their flow is sent to one of the VM:\r\n![Load balancer](./assets/a37.png)\r\n\r\n### 84. What is a health probe?\r\nThe load balancer should send traffic only to resources (virtual machines) that are able to receive it. Imagine that one of the virtual machines is unavailable - we don't want to send the user's traffic to it. To prevent such situations the load balancer uses health probes. Every several seconds the load balancer sends TCP/HTTP/HTTPS request to the virtual machines. If a given virtual machine doesn't send any response (for TCP health probes) or returns HTTP response code different than 200 (for HTTP/HTTPS health probes), the probe fails. You can define the number of failed probes when the virtual machine is believed to be unavailable - the load balancer will stop sending user flow to that VM.\r\n\r\n### 85. What are the differences between public and internal load balancers?\r\nA public load balancer is used to balance traffic from the Internet to your VMs. An internal load balancer is used for traffic that is inside your virtual network only.\r\n![Load balancers](./assets/a38.png)\r\n\r\n### 86. What type of load balancers are available in Azure?\r\nThere are two load balancers: Azure Load Balancer and Azure Application Gateway.\r\n\r\n### 87. What is Azure Application Gateway?\r\nAzure Application Gateway is a load balancer, but it uses an application layer of the OSI model. It means that Application Gateway can balance traffic based on attributes of HTTP requests:\r\n![Application Gateway](./assets/a39.png)\r\n\r\n### 88. What is Azure Load Balancer?\r\nAzure Load Balancer uses a transport layer of the OSI model, so it doesn't have access to the HTTP request details.\r\n\r\n### 89. What is a VPN?\r\nVPN stands for a virtual private network. It is used to connect to some resources in a secure way. For example, you can use the VPN to join a virtual network in Azure and thanks to it, you are able to connect to private IPs of your Azure virtual machines. The traffic uses public Internet but is it end-to-end encrypted.\r\n\r\n### 90. What is the difference between Point-to-Site (P2S) and Site-to-Site (S2S) VPN connections?\r\nPoint-to-Site (P2S) VPN connection is used when you want to connect your virtual network from a client computer. The computer is treated as 'Point', and your virtual network as a 'Site'.\r\nSite-to-Site (S2S) VPN connection lets you connect Azure virtual network to your on-premises network. \r\n\r\n### 91. What is Virtual Network Gateway?\r\nVirtual Network Gateway is commonly used to create VNet-to-VNet connection. When you want to connect to virtual networks, you can create a virtual network gateway in each of these virtual networks and specify the details of the connection.\r\n![VNET Gateway](./assets/a40.png)\r\nIt is important that you have to create a subnet named 'GatewaySubnet' that is used by the virtual network gateway. \r\n\r\n### 92. Can I create a VNet-to-Vnet connection to any Azure virtual network I want?\r\nYes, but the IP address range for these virtual networks should not overlap if you want to connect them. \r\n\r\n### 93. What is VPN Gateway?\r\nIt is similar to the virtual network gateway, but it uses encryption before sending the traffic. It is commonly used when you want to connect your on-premises network and Azure virtual network.\r\n\r\n### 94. How many VPN Gateway I can have in one virtual network.\r\nYou can have only one VPN gateway, but that gateway can have several connections.\r\n\r\n### 95. What is an active-active connection?\r\nLet's imagine that we want to create S2S VPN connection. We could do it by creating a VPN Gateway in the virtual network and establish one connection. But what will happen when the connection will be broken? You would not be able to send data between your network and on-premises for several seconds. To avoid such situations, we can use active-active connection. It simply means that a VPN gateway has two Gateway IP configurations with two public IP addresses and connects to one or two (dual-redundancy) IP addresses from on-premises:\r\n![Active-active](./assets/a41.png)\r\nTo use active-active connection you should upgrade your SKU to VpnGw1, VpnGw2 or VpnGw3.\r\n\r\n### 96. What is ExpressRoute?\r\nIt is very similar to a VPN, but instead of using the public Internet to send traffic, the connection is established by an Azure connectivity provider.\r\n\r\n### 97. What is WAN?\r\nIf you have a highly developed network architecture that contains P2S VPN connections, S2S VPN connections, ExpressRoute and Azure virtual networks and you want to have the ability to connect it all together, you can use WAN:\r\n![WAN](./assets/a42.png)\r\nFor example, you can connect from your personal computer using P2S VPN connection to WAN and later to your corporate network by ExpressRoute.\r\n\r\n### 98. What is Azure Backup Service?\r\nAs a name suggests, Azure Backup Service is responsible for backing up your data. You can back up several resources in Azure like virtual machine and file share:\r\n![Azure Backup](./assets/a43.png)\r\n\r\n### 99. What is Recovery Services Vault?\r\nRecovery Service Vault is a container for your backups. When you want to create a backup, you should create this vault first.\r\n\r\n### 100. What is the relationship between virtual machines and Recovery Services Vault?\r\nOne virtual machine can be backed up by one Backup Service, and the Recovery Services Vault should be in the same region as the virtual machine. One Recovery Services Vault can contain several backups.\r\n\r\n### 101. What is Backup Policy?\r\nIn Backup Policy you can define when the backup will be taken and how long it will be available. For example, you can define that the daily backup will be stored for 10 days. Backups that were taken every Sunday will be available for 12 weeks and when the backup was created on the first Sunday of the month, it will be saved for 60 months. \r\n![Backup Policy](./assets/a44.png)\r\n\r\n### 102. What is Update Domain?\r\nSometimes it is needed to conduct planned maintenance for virtual machines. In that situation, the virtual machine can be restarted and, as a result, it is not available for a short time. To avoid that all your virtual machines are restarted at the same time, you can use Update Domain. All virtual machines in a given Update Domain can be restarted together, but it never happens that several Update Domains are restarted at once. \r\n\r\n### 103. What is Fault Domain?\r\nFault Domain can be treated as a single hardware rack. If there is a malfunction for the rack, then all allocated resources are not available. To prevent situations when all your resources are unusable because of a hardware failure, you should place them in separate Fault Domains. \r\n\r\n### 104. What is Availability Set?\r\nTo ensure high availability of your virtual machines you can use Availability Set. You can define how many Fault Domains and Update Domains it contains:\r\n![Availability Set](./assets/a45.png)\r\n\r\n`,\r\n}\r\n","import { IPost } from './Post'\r\n\r\nexport const post7: IPost = {\r\n title: 'Asynchronous programming in C#',\r\n tag: 'csharp',\r\n year: 2022,\r\n imageUrl: './assets/async.png',\r\n url: '/asynchronous-programming-in-csharp',\r\n shortDescription:\r\n \"Would you like to find out why asynchronous programming is important, how to use it in C#, and what advantages asynchronous code has? Let's get into it!\",\r\n content: `\r\n \r\nWould you like to find out why asynchronous programming is important, how to use it in C#, and what advantages asynchronous code has? Let's get into it!\r\n\r\n## Why should we use asynchronous programming?\r\nMost people who describe usage of asynchronism explain it by the example of a desktop app, so I will focus on this topic first.\r\n\r\n### Desktop app\r\nLet's assume that we have a button called 'Process' in our desktop app, and when a user clicks it some computation that require access to external resources will take place (for example, API or database). If we don't use asynchronism, the entire app will be frozen during the processing time - our user won't be able to interact with the app. The different situation is with the power of asynchronous code. A main thread that is responsible for displaying the app view won't be blocked, and no frozen time will appear.\r\n\r\nLet's visualize this situation in a detailed way:\r\n1) On the left we have our desktop app. On the right there are details related to CPU and threads. When the app was rendering a view (UI) for the first time, a thread used some resources to do it (black rectangular element). Later, we can observe that there isn't any other action, and the app is idle. Nothing will happen until a user interact with the UI. \r\n\r\n![Image](./assets/as1.png)\r\n\r\n2) Let's imagine that the user clicked the button. The app started to be active and a thread was used to handle user interaction.\r\n![Image](./assets/as2.png)\r\n\r\n3) If you remember, we assumed that an action behind this button is to access external API or database. Let's see what will happen:\r\n\r\n![Image](./assets/as3.png)\r\n\r\n4) And here is the most crucial point: when we don't use asynchronous programming, our thread will be actively wait until the end of the API call. During this time, the application will be frozen, and the user won't be able to interact with it:\r\n\r\n![Image](./assets/as4.png)\r\n\r\n5) In an alternative situation with asynchronous programming, you can notice that during external call our CPU is free and the user can easily interact with the app without the frozen time.\r\n \r\n![Image](./assets/as5.png)\r\n \r\nThe above situation was described for a desktop app, but let's be honest - this type is not as popular as it used to be. Currently, we usually create some web apps with a backend. So, what effect on it will asynchronous programming have?\r\n\r\n### Web server app\r\nLet's assume that we have an API written in C#, and one of its endpoints accesses the database to retrieve some data. If we don't use asynchronous programming the thread will be waiting during the database retrieval operation. As a result, when a new request is come to our API, we couldn't process it effectively. To make matters worse, our system can create some additional threads in the background to handle new requests. Why this situation is not good? Because creating new threads is consuming, and when the CPU is busy with our first request, newly created threads won't be scheduled and unfortunately, they will be waiting. \r\n\r\nLet's observe this situation on the images:\r\n1) At the beginning we see that a thread was used. The main goal for it was to start the web server, do some start up operations, etc. After that, the server is idle because there aren't any user requests:\r\n![Image](./assets/as6.png)\r\n \r\n\r\n2) Our API received one HTTP request. A thread will take care of handling this request:\r\n![Image](./assets/as7.png)\r\n3) During that request we want to get some data from external resource. When we reach the C# code responsible for retrieving data from the database, the situation will be the following: \r\n![Image](./assets/as8.png)\r\n4) Without asynchronism we end up with the thread that will do nothing except for waiting for the database query's result. New requests cannot be easily processed.\r\n![Image](./assets/as9.png)\r\n5) With asynchronous programming we will have a free CPU that can handle new requests, so our API is more effective - it can process more requests than in the previous situation. \r\n![Image](./assets/as10.png)\r\n\r\nThe web server explanation assumed that we had only one CPU, because I want to keep it as simple as possible, but the situation with several CPU will be quite similar. \r\n\r\n\r\nCurrently, you should know what the benefits of asynchronous programming are. Let's see how we can use it in C#.\r\n\r\n## Async and await\r\nIf we want to use the power of asynchronism, we can easily do it in C# by two keywords: async and await. It is good to know that there are some rules related with these words - let's dig into this.\r\n\r\n### 1. Method that uses await should be async\r\nIf we assume that we want to make some HTTP request, we can do it in that way:\r\n${'```'}C#\r\npublic async Task DoSth()\r\n{\r\n var client = new HttpClient();\r\n var result = await client.GetAsync(\"https://www.kamilbugno.com\");\r\n //...\r\n}\r\n${'```'}\r\nPlease note that ${'`'}GetAsync${'`'} is an asynchronous method and thus should be called with an await keyword. Every method that uses await must be marked as async. Without having async in the method declaration, we will receive an error and the code won't compile correctly.\r\n\r\n### 2. It is possible to run async operation without await\r\nThe following code will compile even if there is no await keyword:\r\n${'```'}C#\r\npublic async Task DoSth()\r\n{\r\n var client = new HttpClient();\r\n var result = client.GetAsync(\"https://www.kamilbugno.com\");\r\n //...\r\n}\r\n${'```'}\r\nWhat is more, we can also remove the async word, because there is no await usage in the body of the method. This process is called 'Eliding async and await'. It is good to know, that it has some big consequences and is only recommended in a special situation. \r\n#### Consequences \r\nThe code will simply continue working without taking care of the async operation. It may seem to be an advantage, but there are some issues related to it:\r\n- using statement: if our code is in a using statement, the object can be disposed before the operation ends, and, as a result, the operation won't succeed.\r\n- try/catch block: it may happen that the execution reached the end of try/catch block before the operation ends, and, as a result, we will not be able to properly handle the exception.\r\n- using 'Eliding async and await' incorrectly can even cause a termination of the entire process.\r\n\r\n#### Use Case\r\nLet's assume that we have two nested methods A and B (B is called inside A and contains some async operations). Both methods A and B use async/await word. In that scenario, we can skip async/await in the inner method (B) because it will be eventually awaited in A method. This is the only situation, when considering 'Eliding async and await' might be a good idea.\r\n\r\nExample:\r\n${'```'}C#\r\npublic async Task A()\r\n{\r\n\tvar result = await B();\r\n\t//...\r\n}\r\n\r\npublic Task B()\r\n{\r\n\tvar client = new HttpClient();\r\n\treturn client.GetAsync(\"https://www.kamilbugno.com\");\r\n}\r\n${'```'}\r\n\r\n### 3. Async method can return ${'`'}Task${'`'}, ${'`'}Task${'`'}, ${'`'}ValueTask${'`'}, or be ${'`'}void${'`'}\r\nThe async method can return several types, and now we will focus on the most common ones:\r\n#### a) ${'`'}Task${'`'} vs ${'`'}void${'`'}\r\n${'`'}Task${'`'} is usually used when we don't want to return any real value. Why don't use ${'`'}void${'`'}? It is true that in non-asynchronous world in this scenario we will use ${'`'}void${'`'} without a second thought, but in async code it is not valid anymore. ${'`'}Task${'`'} object contains some additional information about the operation and can be awaitable, so this is the reason why most often you will see ${'`'}Task${'`'} instead of ${'`'}void${'`'}. What is more, it is impossible to use await word to call async method that returns ${'`'}void${'`'}. \r\n#### b) ${'`'}Task${'`'} vs ${'`'}ValueTask${'`'}\r\nWhen we want to return some value, we have two options ${'`'}Task${'`'} and ${'`'}ValueTask${'`'}. What is the difference? The former is a reference type whereas the latter is a value type. ${'`'}ValueTask${'`'} is in some cases better when it comes to the performance than ${'`'}Task${'`'}. There is one special scenario for using it: when the execution path can retrieve data in both synchronous and asynchronous way. Sounds complicated? Let's see an example:\r\n\r\n${'```'}c#\r\npublic async ValueTask GetPageVersion()\r\n{\r\n if (_cachedValue == null)\r\n {\r\n var client = new HttpClient();\r\n var result = await client.GetAsync(\"https://www.kamilbugno.com\");\r\n _cachedValue = result.Version.Build;\r\n } \r\n return _cachedValue.Value; \r\n}\r\n${'```'}\r\nAs you can see, the method ${'`'}GetPageVersion${'`'} behaves differently based on the cached value. It is likely that most of the time, the asynchronous code will not be run. In that case ${'`'}ValueTask${'`'} is a better choice. In any other scenarios you should consider ${'`'}Task${'`'}.\r\n\r\n### 4. Async method can be called in a sync way\r\nIt is quite important to be able to distinguish a situation when we have a synchronous and asynchronous code.\r\nLet's see an example:\r\n${'```'}c#\r\npublic int GetPageVersion()\r\n{\r\n var client = new HttpClient();\r\n var result = client.GetAsync(\"https://www.kamilbugno.com\").GetAwaiter().GetResult();\r\n return result.Version.Build;\r\n}\r\n${'```'}\r\nWe run ${'`'}client.GetAsync${'`'} method, and as a name suggest, it is asynchronous method. But the way of calling this method matters: when we use ${'`'}GetAwaiter${'`'} and ${'`'}GetResult${'`'} the code will be executed synchronously. It is good to know that using it can be dangerous - we can even end up with deadlocks.\r\n\r\nNow, you should know the basics of using async and await in your C# code. But do we really know how it works? Let's explore this topic more deeply.\r\n\r\n## Under the hood of asynchronism\r\nTo be able to go under the hood we will need some Intermediate Language (IL) viewer. When we build the project, the .NET environment generates IL code from our source code and thanks to it we can really see what is going here.\r\n\r\nLet's assume that we have a simple class with an empty method. The IL code for it will be the following:\r\n![Image](./assets/as11.png)\r\n \r\nIt isn't very readable, but we can see that in some way it is similar to original method, isn't it? But what will happen when we add async word to the method declaration?\r\n\r\n![Image](./assets/as12.png)\r\n\r\nAs you can see, IL code is completely different. Instead of having a method ${'`'}DoSth${'`'}, we currently have a class. Why? Because async/await words are using a state machine. If you take a close look at the IL code, you can see that ${'`'}DoSth${'`'} implements interface ${'`'}IAsyncStateMachine${'`'}, contains property ${'`'}state${'`'}, and has method ${'`'}MoveNext${'`'}. \r\n\r\n### How does state machine work?\r\nIt is important that state machine is not an entity that exists only in C# world, or that is related only to asynchronism. State machine is an implementation of the state design pattern, and you can create your own state machine. It can behave differently depending on its internal state. Sounds confusing? Let's imagine that we have following state machine. \r\n![Example of state machine](./assets/as13.png)\r\n\r\nWe can be hungry or full - these are the states that our machine has. As you may have guessed, we aren't usually all the time hungry or full, during the day it is possible to change the state. By eating pizza, you can move from hungry to full state, and by going swimming your state can reach hungry. \r\n\r\nAnalogous situation we have in C# when it comes to asynchronous programming. The previously mentioned ${'`'}MoveNext${'`'} method is responsible for changing the state of the machine and do some actions. \r\n\r\nLet's assume that we have the simple async method:\r\n${'```'}C#\r\npublic async Task DoSth()\r\n{\r\n Console.WriteLine(\"one\");\r\n var client = new HttpClient();\r\n var result = await client.GetStringAsync(\"https://www.kamilbugno.com\");\r\n Console.WriteLine(\"two\");\r\n return result;\r\n}\r\n${'```'}\r\n\r\nThe method ${'`'}MoveNext${'`'} that is generated for this code can look similar to this:\r\n\r\n${'```'}C#\r\nprivate void MoveNext()\r\n{\r\n int num = this.state;\r\n string result;\r\n try\r\n {\r\n TaskAwaiter awaiter;\r\n if (num != 0)\r\n {\r\n Console.WriteLine(\"one\");\r\n client = new HttpClient();\r\n awaiter = client.GetStringAsync(\"https://www.kamilbugno.com\").GetAwaiter();\r\n if (!awaiter.IsCompleted)\r\n {\r\n num = (state = 0);\r\n this.taskAwaiter = awaiter;\r\n this.stateMachine = this;\r\n this.asyncTaskMethodBuilder.AwaitUnsafeOnCompleted(ref awaiter, ref stateMachine);\r\n return;\r\n }\r\n }\r\n else\r\n {\r\n awaiter = this.taskAwaiter;\r\n this.taskAwaiter = default(TaskAwaiter);\r\n num = (state = -1);\r\n }\r\n this.myString = awaiter.GetResult();\r\n this.result = this.myString;\r\n this.myString = null;\r\n Console.WriteLine(\"two\");\r\n result = this.result;\r\n }\r\n catch (Exception exception)\r\n {\r\n state = -2;\r\n client = null;\r\n this.result = null;\r\n this.builder.SetException(exception);\r\n return;\r\n }\r\n state = -2;\r\n this.client = null;\r\n this.result = null;\r\n this.builder.SetResult(result);\r\n}\r\n${'```'}\r\nI changed some variable names to make it more readable. The flow of this state machine is the following:\r\n1) At the beginning we have ${'`'}this.state${'`'} set to -1.\r\n2) ${'`'}MoveNext${'`'} method is called. Because of the state value the ${'`'}if${'`'} statement is true, so we execute this piece of code:\r\n${'```'}c#\r\nConsole.WriteLine(\"one\");\r\nclient = new HttpClient();\r\nawaiter = client.GetStringAsync(\"https://www.kamilbugno.com\").GetAwaiter();\r\n${'```'}\r\nLet's assume that the ${'`'}awaiter${'`'} is not completed so we set the state to 0 and exit the method:\r\n${'```'}c#\r\nnum = (state = 0); \r\nthis.taskAwaiter = awaiter; \r\nthis.stateMachine = this;\r\nthis.asyncTaskMethodBuilder.AwaitUnsafeOnCompleted(ref awaiter, ref stateMachine);\r\nreturn;\r\n${'```'}\r\n3) ${'`'}MoveNext${'`'} method is called again. The ${'`'}else${'`'} block will be executed because the current machine state is 0:\r\n${'```'}c#\r\nawaiter = this.taskAwaiter; \r\nthis.taskAwaiter = default(TaskAwaiter); \r\nnum = (state = -1);\r\n${'```'}\r\nAs a result, the state will be set temporarily to -1. Later the following piece of code will be run:\r\n${'```'}c#\r\nthis.myString = awaiter.GetResult();\r\nthis.result = this.myString;\r\nthis.myString = null;\r\nConsole.WriteLine(\"two\");\r\nresult = this.result;\r\n${'```'}\r\nFinally, the last piece of code will be executed:\r\n${'```'}c#\r\nstate = -2;\r\nthis.client = null;\r\nthis.result = null;\r\nthis.builder.SetResult(result);\r\n${'```'}\r\n4) The machine is in state -2, and we received the result of our operation. \r\n\r\nThe above example shows state machine that was generated by a source code containing only one await keyword. When we use await more than once in the given method, the state machine ends up with more complicated ${'`'}MoveNext${'`'} version. If you would like to experiment with it, I recommend https://sharplab.io/ for viewing Intermediate Language or a downloadable tool ILSpy which has similar functionality.\r\n\r\nSo far we have learned what a state machine is and how it helps us with asynchronism, but we still have one mystery left to unravel: who calls ${'`'}MoveNext${'`'} method?\r\n\r\n### Thread pool\r\nThread pool is an extremely important entity that takes care of managing the threads. Thanks to it, we don't need to worry about creating a new thread or reusing existing one - thread pool is responsible for that.\r\n\r\nOne part of thread pool is a queue that stores free threads.\r\n![Visual presentation of thread pool](./assets/as14.png)\r\nSince creating a new thread is costly, thread pool monitors all threads and when one of them in no longer used, it is moved to the queue. As soon as our application needs additional thread, thread pool checks if there are free threads to schedule, and only if there are no threads in the queue, a new one is created. We already know the basics of thread pool, so let's get back to our state machine and ${'`'}MoveNext${'`'} method. \r\n\r\nFrom Thread Pool's perspective, what will the execution of the following program approximately look like?\r\n\r\n${'```'}C#\r\npublic async Task DoSth()\r\n{\r\n var client = new HttpClient();\r\n var result = await client.GetStringAsync(\"https://www.kamilbugno.com\");\r\n return result;\r\n}\r\n${'```'}\r\nGiven some simplification, the way how thread pool helps us with the execution is not very complicated: \r\n1. State machine will be created, and thread pool will schedule the call to the Internet by running ${'`'}MoveNext${'`'} method (a new/different thread can be used to do it),\r\n2. The web request was sent, and we are waiting for response...\r\n3. Thread pool is notified by external entity such as a network driver that the web request completed, and it runs ${'`'}MoveNext${'`'} method again (a new/different thread can be used to do it). \r\n4. We receive the result of our operation and ${'`'}DoSth${'`'} method is completed.\r\n\r\nBy now you should know all the necessary things to consciously use the power of asynchronism in C#.\r\n\r\n## Summary\r\nAs you can see, asynchronous programming can help you to create more effective application and to use the available resources (such as CPU, memory, etc.) better. I hope this post enriched your knowledge about asynchronism and currently, you will be able to easily write asynchronous code. \r\n`,\r\n}\r\n","import { IPost } from './Post'\r\n\r\nexport const post8: IPost = {\r\n title: 'Demystifying package.json',\r\n tag: 'frontend',\r\n year: 2022,\r\n url: '/demystifying-package-json',\r\n imageUrl: './assets/demystifying-package.png',\r\n shortDescription:\r\n \"If you work with a frontend, your project usually contains package.json file. Do you know what it's for and why this file is so important? Let's take a closer look at package.json.\",\r\n content: `\r\n\r\nIf you work with a frontend, your project usually contains *package.json* file. Do you know what it's for and why this file is so important? Let's take a closer look at *package.json*.\r\n\r\nIn earlier times, when you met a representative of some company, you were likely to receive a business card. Small piece of paper contained all necessary information: name of the person, contact, company details, etc. File called *package.json* is something similar to a business card, but it describes your project. Let's see how the file can look.\r\n\r\n${'```'}js\r\n{\r\n \"name\": \"react-modal\",\r\n \"version\": \"3.15.1\",\r\n \"description\": \"Accessible modal dialog component for React.JS\",\r\n \"main\": \"./lib/index.js\",\r\n \"module\": \"./lib/index.js\",\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/reactjs/react-modal.git\"\r\n },\r\n \"homepage\": \"https://github.com/reactjs/react-modal\",\r\n \"bugs\": \"https://github.com/reactjs/react-modal/issues\",\r\n \"directories\": {\r\n \"example\": \"examples\"\r\n },\r\n \"scripts\": {\r\n ...\r\n },\r\n \"authors\": [\r\n \"Ryan Florence\"\r\n ],\r\n \"license\": \"MIT\",\r\n \"devDependencies\": {\r\n ...\r\n },\r\n \"dependencies\": {\r\n ...\r\n },\r\n \"peerDependencies\": {\r\n ...\r\n },\r\n \"tags\": [\r\n ...\r\n ],\r\n \"keywords\": [\r\n ...\r\n ],\r\n \"engines\": {\r\n \"node\": \">=8\"\r\n }\r\n}\r\n${'```'}\r\nThe above file comes from *react-modal*, an open-source library. As you can see, it contains some data about the project (${'`'}name${'`'}, ${'`'}version${'`'}, ${'`'}description${'`'}, etc.) and lists all external projects that were used to build the library (${'`'}devDependencies${'`'}, ${'`'}dependencies${'`'}, ${'`'}peerDependencies${'`'}). \r\n\r\n### Dependencies\r\nCurrently, software projects aren't created in a vacuum. Otherwise, a development of new software would not be effective because you would need to reinvent the wheel repeatedly. In reality, most projects use previously developed solutions and build new user functionalities on top of them. This is called dependencies. \r\n\r\n### Versions of dependencies\r\nEach dependency contains a name and a version: ${'`'}\"react-dom\": \"^16.13.1\"${'`'}. As you can see, the version is not just a number, but it has some characters. There is a special logic behind this and we will take a look at it:\r\n- ${'`'}16${'`'} - in our example, it is a major version. Usually, number that represent the major part is changed when incompatible or really big, new functionalities are added the project.\r\n- ${'`'}13${'`'} - it is a minor version. When small, new functionalities are added to the project, the minor version is usually incremented.\r\n- ${'`'}1${'`'} - it is a patch version. If the code contains some bugs, after the deployment of fixes, the patch number is changed. \r\n- ${'`'}^${'`'} - it means that only minor and path number can be increased. For example, ${'`'}\"17.10.2\"${'`'} wouldn't comply this whereas ${'`'}\"16.14.2\"${'`'} is ok and can be used by our project.\r\n\r\nThere are more options for special characters:\r\n- ${'`'}>${'`'} - it means that all versions higher than the given can be used. For example, ${'`'}\"17.10.2\"${'`'} is ok, but ${'`'}\"15.11.3\"${'`'} isn't - the number is lower than our initial version ${'`'}\"16.13.1\"${'`'}.\r\n- ${'`'}~${'`'} - it means that only patch number can be increased. For example, ${'`'}\"16.14.2\"${'`'} is not correct, because minor version is changed, but ${'`'}\"16.13.2\"${'`'} is ok - the difference is only for the path part.\r\n- ${'`'}no character${'`'} - it means that only the exact version is valid.\r\n\r\nIf you want to to play around with the versions, I recommend this site: https://semver.npmjs.com/ \r\n![Semver website](./assets/de1.png)\r\n \r\n \r\n### Installing dependencies\r\nLet's assume that we have a *package.json* file and we want to run our project. One of the necessary actions that we need to take is to install all dependencies. It can be done by ${'`'}npm install${'`'}. As a result, a new *node_module* folder will be created, and it will contain all packages from the section ${'`'}dependiencies${'`'} of *package.json*. If your dependencies are dependent on other packages, they also will be downloaded and placed in *node_module* folder, even though they are not explicitly listed in your *package.json* - it is good to know that installing packages from ${'`'}dependencies${'`'} section is transitive.\r\n\r\nSometimes when we use a lot of external packages, *node_module* folder can have an immense size. Because it is easy to recreate that folder (by installing the dependencies), you shouldn't include it to the repository - all team members are able to execute ${'`'}npm install${'`'} to download necessary dependencies. \r\n\r\nYou can also notice that there is a new file added in your solution: *package-lock.json*. In the ${'`'}dependiencies${'`'} section of that file, all dependant packages will be listed (even those that are indirectly dependent). I will explain *package-lock.json* more deeply later in this post. \r\n\r\n### Types of dependencies\r\nIn our example, *react-modal* has three types of dependencies: ${'`'}devDependencies${'`'}, ${'`'}dependencies${'`'}, and ${'`'}peerDependencies${'`'}. Let's clarify the differences between them.\r\n- ${'`'}dependencies${'`'} - as we mentioned earlier, all packages from ${'`'}dependencies${'`'} section are installed along with its dependencies. If I want to install package X (as either ${'`'}dependencies${'`'} or ${'`'}devDependencies${'`'}) that has Y as ${'`'}dependencies${'`'}, and Y has package Z as ${'`'}dependencies${'`'}, all three packages (X, Y, and Z) will be installed and placed in *node_modules*.\r\n![depedencies](./assets/de2.png)\r\nIf you want to add a new package to your solution, you can use ${'`'}npm install NameOfThePackage${'`'}.\r\n- ${'`'}devDependencies${'`'} - while ${'`'}dependencies${'`'} are transitive, ${'`'}devDependencies${'`'} aren't. In the above example, when X is defined as ${'`'}dependencies${'`'} or ${'`'}devDependencies${'`'} in your project and both Y and Z packages are defined as ${'`'}devDependencies${'`'}, they will not be added to the solution - only X will be downloaded. \r\n![devdependencies](./assets/de3.png)\r\nIf you want to add a new package as a ${'`'}devDependencies${'`'} to your solution, you can use ${'`'}npm install --save-dev NameOfThePackage${'`'}. Development dependencies as a name suggest are helpful when it comes to develop the project locally. When it is deployed to the production, they are not useful and won't be added to *node_module*. So when you use a command ${'`'}npm install --production${'`'}, and X is defined as ${'`'}devDependencies${'`'} it won't be downloaded.\r\n\r\nGiven the above dependency classification, the question may arise of what type to use. There is a lot of opposite views on this topic, so I would like to discuss it more deeply. Let's assume that you want to build a React application and you used Create React App (CRA) tool for a configuration. When you open the *package.json* file, you can notice that there are only ${'`'}dependencies${'`'}, not ${'`'}devDependencies${'`'}:\r\n${'```'}json\r\n...\r\n\"dependencies\": {\r\n \"@testing-library/jest-dom\": \"^5.16.4\",\r\n \"@testing-library/react\": \"^13.1.1\",\r\n \"@testing-library/user-event\": \"^13.5.0\",\r\n \"react\": \"^18.0.0\",\r\n \"react-dom\": \"^18.0.0\",\r\n \"react-scripts\": \"5.0.1\",\r\n \"web-vitals\": \"^2.1.4\"\r\n }\r\n...\r\n${'```'}\r\n\r\nSome of the Internet suggestions say that you should not use ${'`'}dependencies${'`'} for packages that are focused on local development activities, such as testing libraries, code formatters, etc. But as you can see above, *@testing-library/jest-dom* that is helpful for writing tests is added as ${'`'}dependencies${'`'}. To complicate matters further, when you visit, for example, *prettier* or *eslint* projects, you can see that on https://www.npmjs.com (official npm package repository) the instruction for installation is the following: ${'`'}npm i eslint${'`'}. However, the *eslint* documentation says that you should use ${'`'}npm install eslint --save-dev${'`'}. So, which one is better to use?\r\nBefore answering the question, let's separate the types of applications that you can build with the help of *package.json* file:\r\n- user applications: when you use, for example, React and your application is accessible for users by the browser, we can say that it is a user application. \r\n- developer application: when you build a piece of code that will be used by other developers, we can assume that you are working on a developer application. For example, *react-modal* is a developer application, because the main goal of it is to reuse its functionalities in external projects.\r\n\r\nHaving this distinction in mind, we can finally answer our question. When you build a developer application, you should add all packages which your app actively uses as an imported external functionality as ${'`'}dependencies${'`'}. So, when you build a modal library that uses on its foundation *react-modal*, *react-modal* should be placed in ${'`'}dependencies${'`'} section. But when you use *prettier* to format your code, you should download it as ${'`'}devDependencies${'`'}. The above suggestions are valid when you build a developer application, for user applications there are some changes: it doesn't matter what type of dependencies you use. This is the reason why CRA placed all external packages in ${'`'}dependencies${'`'}. \r\n\r\nIf you're observant, you probably noticed that we haven't discussed one type of dependencies yet: ${'`'}peerDependencies${'`'}. I deliberately delayed explaining this because we need a distinction of application types which has just been introduced. ${'`'}peerDependencies${'`'} are used for developer applications. Let's assume that our project uses package X and there is a high probability that other developers that will download our package also use X:\r\n![peerdependencies](./assets/de4.png)\r\nIn that case, we can require a specific version of X package from developers who use our code. We can do it by writing: ${'`'}\"X\": \"^2.14.0${'`'} in the ${'`'}peerDependencies${'`'} section. As a result, the project that uses our package won't be able to download X with a lower version. If you, for example, tried to download X in ${'`'}\"1.10.2\"${'`'} version you will receive the error:\r\n${'```'}\r\nFound: x@1.10.2\r\nnode_modules/x\r\n x@\"1.10.2\" from the root project\r\nCould not resolve dependency:\r\npeer x@\"^2.14.0\" from yourProject@1.0.0\r\n${'```'}\r\n\r\n### Why do we need *package-lock.json*\r\nAs we mentioned earlier, when you run ${'`'}npm i${'`'} you can see that *package-lock.json* file is added to your project. The main goal of this file is to store information about all dependencies and versions that your project uses. The file is able to contain nested dependencies (for example, our project is dependent on X, X on Y, and Y on Z - in *package-lock.json* all three dependencies, X, Y, and Z will be added). To understand why *package-lock.json* is so important take a look at the picture:\r\n![dependencies and specified versions](./assets/de5.png)\r\nWe have a project that has several dependencies. If you remember the version principles, you should know that, for example, Z package can have not only ${'`'}\"7.8.9\"${'`'} version but also all versions with minor number increased. So, let's assume, that there is a release of a new version for Z package: ${'`'}\"7.12.3\"${'`'}. The same situation can be for our direct dependant: A package. When one user run ${'`'}npm i${'`'} before a release of an updated version, the up-to-date version won't be installed. As a result, we can end up with a situation, when we use different versions of dependencies for our project (depending on when ${'`'}npm i${'`'} took place):\r\n![dependencies with different versions](./assets/de6.png)\r\nWhy might this situation be a problem? Let's assume that package A has a new functionality in version ${'`'}\"10.23.8\"${'`'} that wasn't there before. Dorothy decided to use this new feature in a code and merged her changes to a repository. When Adam tried to run the code, there is an error - he used version ${'`'}\"10.11.12\"${'`'}. *package-lock.json* as a name suggests, lock all versions of used dependencies so that we are sure that the entire team will use the same version of external packages. It is important that *package-lock.json* should be included in our repository to use the power of locking dependencies' versions.\r\n\r\n### Scripts\r\nAnother thing that is specified in *package.json* file is a section called ${'`'}scripts${'`'}. When you create a React application using CRA, you can see the following code:\r\n${'```'}json\r\n \"scripts\": {\r\n \"start\": \"react-scripts start\",\r\n \"build\": \"react-scripts build\",\r\n \"test\": \"react-scripts test\",\r\n \"eject\": \"react-scripts eject\"\r\n }\r\n${'```'}\r\nWhen you, for example, run ${'`'}npm start${'`'} the command will be translated to ${'`'}react-scripts start${'`'} because of the section ${'`'}scripts${'`'}. There are a huge number of script's names that are supported by npm, but you are also free to specify your own names. Thanks to it, all team members that download your project with *package.json* file will be able to run the script with the custom name by using ${'`'}npm run CustomNameOfTheScript${'`'}. \r\n\r\n## Summary\r\nAs you can see, one *package.json* contains many important things for your project. I hope that this post has made you more aware of the intricacies that may lie behind this file.\r\n\r\n`,\r\n}\r\n","import { post1 } from './One'\r\nimport { post2 } from './Two'\r\nimport { post5 } from './Five'\r\nimport { post4 } from './Four'\r\nimport { post6 } from './Six'\r\nimport { post3 } from './Three'\r\nimport { post7 } from './Seven'\r\nimport { post8 } from './Eight'\r\nimport { post9 } from './Nine'\r\n\r\nexport interface IPost {\r\n title: string\r\n content: string\r\n url: string\r\n shortDescription: string\r\n tag: string\r\n year: number\r\n imageUrl: string\r\n}\r\n\r\nexport const posts: IPost[] = [\r\n post9,\r\n post8,\r\n post7,\r\n post6,\r\n post1,\r\n post2,\r\n post3,\r\n post4,\r\n post5,\r\n]\r\n","import { IPost } from './Post'\r\n\r\nexport const post9: IPost = {\r\n title: 'Parallel programming in C#',\r\n tag: 'csharp',\r\n year: 2022,\r\n url: '/parallel-programming-in-csharp',\r\n imageUrl: './assets/parallel.png',\r\n shortDescription:\r\n \"Do you know what parallel programming is, how it differs from asynchronous programming and why it can enhance your application? If not, let's delve into this incredibly interesting topic.\",\r\n content: `Do you know what parallel programming is, how it differs from asynchronous programming and why it can enhance your application? If not, let's delve into this incredibly interesting topic.\r\n\r\n## What is parallel programming?\r\n\r\nAs the name suggests it means that certain pieces of code can run at the same time. Parallelism is something that you should even know from your everyday life. If this morning you prepared a coffee or a tea, probably you didn't wait until the water boiled to get the cup out of the cupboard. Most likely you did several things at once: you poured water into the kettle, turned it on, and while it was boiling you prepared a cup and poured in the right amount of coffee/tea. Thanks to it the process of preparing your morning drink was faster and you saved time.\r\n\r\nIf you want to translate the above situation into the programming world, we will use terms such as CPU and threads. Look at this picture:\r\n\r\n![image](./assets/o1.png)\r\n\r\nAs you can see, we have two CPUs, and some threads (black rectangular elements). At the same time, we do two operations: boil the water and prepare the cup. It is good to notice, that making a coffee/tea in a parallel way assumes that we use more than one available CPU to execute our tasks simultaneously.\r\n\r\nIt is easy to confuse parallelism with asynchronism because these things seem to be similar, but there is a huge difference between them - let's explore it.\r\n\r\n## Parallelism vs. asynchronism\r\n\r\nParallelism means that we can do two or more things at the same time, and you need at least two CPUs for that, while asynchronism can be achieved with one CPU and means that your threads don't actively wait for the end of some external operation. Also, async programming is used more frequently for some IO operations such as connecting to the database, access the file or call the API, whereas parallel programming is more focused of heavy CPU operations such as complex calculations. What is more, asynchronism can be achieved without parallelism: JavaScript is able to use asynchronous operations, but it is impossible to do some parallel stuff (since there is only a single-core). If you are interested in the details of asynchronous programming, read [one of my posts that explains it](https://blog.kamilbugno.com/asynchronous-programming-in-csharp).\r\n\r\n## Prons and cons of the parallel programming\r\nParallel programming is not something magical that always have only benefits for our application. Like most things it has its advantages and disadvantages. Let's take a look at them:\r\n\r\n✅ As we mentioned earlier, parallelism can reduce the time of our operations because we are able to execute several actions at the same time. \r\n\r\n✅ We can use our resources more efficient when we write a code with parallelism in mind.\r\n\r\n❌ Parallel code is usually more complex to write, read, and debug.\r\n\r\n❌ Parallelism has a strong connection to the hardware, there can be some differences in the execution of our code depending on the underlying hardware.\r\n\r\n\r\nYou should already understand the basic concept of parallelism, so let's go straight to how it can be achieved in C#.\r\n\r\n## Parallel programming in C# \r\nLet's assume that we have several heavy computations that we would like to conduct. In our scenario, I prepared a special method for it:\r\n${'```'}c#\r\npublic static int HeavyComputation(string name)\r\n{\r\n\tConsole.WriteLine(\"Start: \" + name);\r\n\tvar timer = new Stopwatch();\r\n\ttimer.Start();\r\n\tvar result = 0;\r\n\tfor (var i = 0; i < 10_000_000; i++)\r\n\t{\r\n\t\tvar a = ((i + 1_500) / (i + 30)) * (i + 10);\r\n\t\tresult += (a % 10) - 120;\r\n\t}\r\n\ttimer.Stop();\r\n\tConsole.WriteLine(\"End: \"+ name + ' ' + timer.ElapsedMilliseconds);\r\n\treturn result;\r\n}\r\n${'```'}\r\nThe math operations simulate our heavy computation. Without the parallel programming, when we have several computation actions, we can run them in a sequence:\r\n${'```'}c#\r\nstatic void Main()\r\n{\r\n\tvar timer = new Stopwatch(); \r\n\ttimer.Start();\r\n\tHeavyComputation(\"A\");\r\n\tHeavyComputation(\"B\");\r\n\tHeavyComputation(\"C\");\r\n\tHeavyComputation(\"D\");\r\n\tHeavyComputation(\"E\");\r\n\ttimer.Stop();\r\n\tConsole.WriteLine(\"All: \" + timer.ElapsedMilliseconds);\r\n}\r\n${'```'}\r\nThe output is following:\r\n${'```'}\r\nStart: A\r\nEnd: A 106\r\nStart: B\r\nEnd: B 106\r\nStart: C\r\nEnd: C 102\r\nStart: D\r\nEnd: D 110\r\nStart: E\r\nEnd: E 114\r\nAll: 575\r\n${'```'}\r\nThanks to the example, we can see that ${'`'}All${'`'} actions take similar or more time than the sum of the times of each action: All >= A + B + C + D + E.\r\n\r\n### Using ${'`'}Parallel.Invoke${'`'} method\r\nThere is a way of improving the performance of it. We can simply use Task Parallel Library. Our ${'`'}HeavyComputation${'`'} method remains unchanged, but we modify the way of calling it by using ${'`'}Parallel.Invoke${'`'}:\r\n${'```'}c#\r\nstatic void Main()\r\n{\r\n\tvar timer = new Stopwatch(); \r\n\ttimer.Start();\r\n\tParallel.Invoke(\r\n\t\t() => HeavyComputation(\"A\"),\r\n\t\t() => HeavyComputation(\"B\"),\r\n\t\t() => HeavyComputation(\"C\"),\r\n\t\t() => HeavyComputation(\"D\"),\r\n\t\t() => HeavyComputation(\"E\")\r\n\t);\r\n\ttimer.Stop();\r\n\tConsole.WriteLine(\"All: \" + timer.ElapsedMilliseconds);\r\n}\r\n${'```'}\r\nThe output is following:\r\n${'```'}\r\nStart: B\r\nStart: A\r\nStart: D\r\nStart: C\r\nStart: E\r\nEnd: B 103\r\nEnd: C 109\r\nEnd: E 111\r\nEnd: A 112\r\nEnd: D 112\r\nAll: 200\r\n${'```'}\r\nBased on the input, there are several things that I would like to discuss:\r\n- time - as you can see, in the above example ${'`'}All${'`'} operations take less time than the sum of each action: All < A + B + C + D + E. The conclusion is one - our computation tasks were run at the same time. It is important that ${'`'}Parallel.Invoke${'`'} doesn't _guarantee_ the parallel execution, because, as we mentioned earlier, it is dependent on other things such as hardware, but it _enables_ your code to run at once. \r\n- order of operations - ${'`'}Parallel.Invoke${'`'} doesn't provide the same execution order as we specified in the method, so this is the reason why our actions were executed in a different order.\r\n\r\nIt is also good to know that there are three more useful methods that can help us with executing our code in parallel:\r\n- ${'`'}Parallel.For${'`'}\r\n- ${'`'}Parallel.ForEach${'`'}\r\n- ${'`'}Parallel.ForEachAsync${'`'} - it was added in .NET 6\r\n\r\n\r\n### Parallelism with asynchronism\r\nEven though the parallel solution may seem to be correct, it can be improved even further, because it has one drawback: it is executed in a synchronous way. What exactly does it mean? I think that visual representation can clarify it:\r\n- our current solution (with some simplification) is the following\r\n![Image description](./assets/o2.png) \r\nThe first CPU run the ${'`'}Main${'`'} method and execute our computations (A-E) on separate CPUs. It is important that during the computations, the calling thread is actively waiting for the end of the execution of all computations. \r\n- in async way the picture will be as follows:\r\n![Image description](./assets/o3.png)\r\nDuring the heavy computation, the first CPU is free and can be used as needed. \r\n\r\nHow to write a code that will use parallel and asynchronism? The answer in not very complicated: \r\n${'```'}c#\r\nstatic async Task Main()\r\n{\r\n\tvar timer = new Stopwatch();\r\n\ttimer.Start();\r\n\tawait Task.Run(() =>\r\n\t{\r\n\t\tParallel.Invoke(\r\n\t\t\t() => HeavyComputation(\"A\"),\r\n\t\t\t() => HeavyComputation(\"B\"),\r\n\t\t\t() => HeavyComputation(\"C\"),\r\n\t\t\t() => HeavyComputation(\"D\"),\r\n\t\t\t() => HeavyComputation(\"E\"));\r\n\t});\r\n\ttimer.Stop();\r\n\tConsole.WriteLine(\"All: \" + timer.ElapsedMilliseconds);\r\n}\r\n${'```'}\r\nWe just wrapped the ${'`'}Parallel.Invoke${'`'} call inside ${'`'}Task.Run${'`'}. Thanks to it we can use the await/async keywords and enhance the solution with asynchronous programming. Although everything looks fine now, there is still one thing to focus on: our computation returns some value, but so far, we haven't used it. Let's change that!\r\n\r\n### Save values from computations\r\nIn C# we have special collections designed for concurrent use. One of them is ${'`'}ConcurrentBag${'`'} that is thread-safe and can store unordered collection of objects. Our final solution will look like this:\r\n${'```'}c#\r\nstatic async Task Main()\r\n{\r\n\tvar timer = new Stopwatch();\r\n\ttimer.Start();\r\n\r\n\tvar myData = new ConcurrentBag();\r\n\r\n\tawait Task.Run(() =>\r\n\t{\r\n\t\tParallel.Invoke(\r\n\t\t\t() => { myData.Add(HeavyComputation(\"A\")); },\r\n\t\t\t() => { myData.Add(HeavyComputation(\"B\")); },\r\n\t\t\t() => { myData.Add(HeavyComputation(\"C\")); },\r\n\t\t\t() => { myData.Add(HeavyComputation(\"D\")); },\r\n\t\t\t() => { myData.Add(HeavyComputation(\"E\")); });\r\n\t});\r\n\ttimer.Stop();\r\n\tConsole.WriteLine(\"All: \" + timer.ElapsedMilliseconds);\r\n\r\n\tConsole.WriteLine(string.Join(\",\", myData));\r\n}\r\n${'```'}\r\nWe simply add new values to our ${'`'}ConcurrentBag${'`'} collection and display it. Besides ${'`'}ConcurrentBag${'`'}, there are more thread-safe entities that can store our data:\r\n- ${'`'}ConcurrentStack${'`'}\r\n- ${'`'}ConcurrentQueue${'`'}\r\n- ${'`'}ConcurrentDictionary${'`'}\r\n\r\nIt is good to know that from the performance perspective, there is one situation when they are slower than their nonconcurrent equivalent: when our solution doesn't use a lot of parallelism. So we have the most to gain from using them if our code is indeed heavily concurrent. \r\n\r\n### Exception handling\r\nLet's modify our code to throw an exception at some point:\r\n${'```'}c#\r\ntry\r\n{\r\n\tawait Task.Run(() =>\r\n\t{\r\n\t\tParallel.Invoke(\r\n\t\t\t() => { myData.Add(HeavyComputation(\"A\")); },\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\tConsole.WriteLine(\"Starting B\");\r\n\t\t\t\tthrow new Exception(\"B\");\r\n\t\t\t\tmyData.Add(HeavyComputation(\"B\"));\r\n\t\t\t},\r\n\t\t\t() => { myData.Add(HeavyComputation(\"C\")); },\r\n\t\t\t() => { myData.Add(HeavyComputation(\"D\")); },\r\n\t\t\t() => { myData.Add(HeavyComputation(\"E\")); });\r\n\t});\r\n}\r\ncatch (Exception e)\r\n{\r\n\tConsole.WriteLine(\"Exception: \" + e);\r\n}\r\n${'```'}\r\nI added try/catch block and raised an exception for ${'`'}B${'`'} operation - all the rest remains unchanged. There are two things to keep in mind when it comes to exceptions:\r\na) When one parallel action raises an exception, it doesn't mean, that other operations will be stopped. They will continue their execution despite the fact of the exception. The output from the above code is the following:\r\n${'```'}\r\nStart: C\r\nStart: A\r\nStarting B\r\nStart: E\r\nStart: D\r\nEnd: C 125\r\n...\r\n${'```'}\r\nIt shows that after the failure of ${'`'}B${'`'} operation, the system still executed operation ${'`'}E${'`'} and ${'`'}D${'`'}. Taking this into consideration, you can assume that parallel operations are separated when it comes to the exception perspective. \r\nb) When we catch the exception, you can see that we are dealing with ${'`'}AggregateException${'`'}:\r\n![Image description](./assets/o4.png)\r\nThe ${'`'}AggregateException${'`'} contain list of all exceptions throw by our parallel operations (in our case it is only 1) and the details of them (in our case it is \"B\"). It is important that thanks to ${'`'}AggregateException${'`'} no exception will be lost, even when they will be raised at the same time. \r\n\r\nThere are two ineresting methods for handling ${'`'}AggregateException${'`'}:\r\n- ${'`'}Flatten()${'`'} - sometimes there is a need to have a parallel operation that run some nested parallel operations. As a name suggests, ${'`'}Flatten${'`'} helps with converting all nested exceptions to one-level exceptions.\r\n- ${'`'}Handle()${'`'} - it provides you with the ability to invoke a handler on each of your exceptions. \r\n\r\nLet's see a full example that uses both ${'`'}Flatten()${'`'} and ${'`'}Handle()${'`'}:\r\n${'```'}c#\r\ntry\r\n{\r\n\tawait Task.Run(() =>\r\n\t{\r\n\t\tParallel.Invoke(\r\n\t\t\t() => { myData.Add(HeavyComputation(\"A\")); },\r\n\t\t\t() =>\r\n\t\t\t{\r\n\t\t\t\t//some nested operations\r\n\t\t\t\tParallel.Invoke(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tConsole.WriteLine(\"Starting B1\");\r\n\t\t\t\t\t\t\tthrow new InvalidTimeZoneException(\"B1\");\r\n\t\t\t\t\t\t\tmyData.Add(HeavyComputation(\"B1\"));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t() => { myData.Add(HeavyComputation(\"B2\")); },\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t\tConsole.WriteLine(\"Starting B3\");\r\n\t\t\t\t\t\t\tthrow new ArgumentNullException(\"B3\");\r\n\t\t\t\t\t\t\tmyData.Add(HeavyComputation(\"B3\"));\r\n\t\t\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t() => {\r\n\t\t\t\tConsole.WriteLine(\"Starting C\");\r\n\t\t\t\tthrow new BadImageFormatException(\"C\");\r\n\t\t\t\tmyData.Add(HeavyComputation(\"C\"));\r\n\t\t\t},\r\n\t\t\t() => { myData.Add(HeavyComputation(\"D\")); },\r\n\t\t\t() => { myData.Add(HeavyComputation(\"E\")); });\r\n\t});\r\n}\r\ncatch (AggregateException e)\r\n{\r\n\te.Flatten().Handle(myException =>\r\n\t{\r\n\t\tvar result = myException switch\r\n\t\t{\r\n\t\t\tInvalidTimeZoneException _ => HandleInvalidTimeZoneException(),\r\n\t\t\tArgumentNullException _ => HandleArgumentNullException(),\r\n\t\t\tBadImageFormatException _ => HandleBadImageFormatException(),\r\n\t\t\t_ => false\r\n\t\t};\r\n\t\treturn result;\r\n\t});\r\n}\r\n${'```'}\r\nIn the code above, we throw three types of exceptions: ${'`'}BadImageFormatException${'`'}, ${'`'}ArgumentNullException${'`'}, and ${'`'}InvalidTimeZoneException${'`'}. Some of the parallel operations are nested, so in the catch block we use ${'`'}Flatten()${'`'}. Using ${'`'}Handle${'`'} helps us to deal independently with each of the exceptions. There are three helpers methods:\r\n${'```'}c#\r\nprivate static bool HandleInvalidTimeZoneException()\r\n{\r\n\tConsole.WriteLine(\"HandleInvalidTimeZoneException\");\r\n\t//...\r\n\treturn true;\r\n}\r\n\r\nprivate static bool HandleArgumentNullException()\r\n{\r\n\tConsole.WriteLine(\"HandleArgumentNullException\");\r\n\t//...\r\n\treturn true;\r\n}\r\n\r\nprivate static bool HandleBadImageFormatException()\r\n{\r\n\tConsole.WriteLine(\"HandleBadImageFormatException\");\r\n\t//...\r\n\treturn true;\r\n}\r\n${'```'}\r\nEach of them handles the exact type of the exceptions and returns true. For ${'`'}Handle${'`'} method value true means that the exception was handled correctly and should not be rethrown. This is the reason why we have this operation in the ${'`'}switch${'`'} statement: ${'`'}_ => false${'`'} - an exception that is not ${'`'}BadImageFormatException${'`'}, ${'`'}ArgumentNullException${'`'}, or ${'`'}InvalidTimeZoneException${'`'} will be rethrown.\r\n\r\nSo far, our example was not complex. In real life scenarios, it may be different, and we will need some synchronization. Let's take a look at it.\r\n\r\n### Synchronization\r\nSynchronization is a response to a situation when a lot of threads access the same data. Why might this situation be problematic? Let's assume that we want to perform some computation in parallel and store the sum of the results in a variable:\r\n${'```'}c#\r\nvar finalResult = 0;\r\n\r\nawait Task.Run(() =>\r\n{\r\n\tParallel.For(0, 20, i => \r\n\t{ \r\n\t\t finalResult += HeavyComputation(i.ToString()); \r\n\t});\r\n});\r\n${'```'}\r\nWe used the ${'`'}Parallel.For${'`'} method that is a loop whose iterations are executed at the same time. The first argument is the starting index (in our case 0), second is the final index (in our case 20) and third is an action that contains actual index (in our case ${'`'}i${'`'} variable). Every parallel operation adds its result to the ${'`'}finalResult${'`'} variable, and here is the issue: we end up with race condition.\r\n\r\n### What is race condition?\r\nRace condition usually occurs when a lot of threads share the same data and want to modify them. Let's see how it can work in our case assuming that HeavyComputation returns value 10 all the time:\r\n1. Thread X enters the line ${'`'}finalResult += HeavyComputation(i.ToString());${'`'}. It checks the ${'`'}finalResult${'`'} value and currently it is zero.\r\n2. Thread Y enters the same line, checks the ${'`'}finalResult${'`'} value that is 0, conduct the computations and modify the value to 10.\r\n3. Thread X execute the computation and add ten to the value of ${'`'}finalResult${'`'}. Because it checked the ${'`'}finalResult${'`'} before it was modified by thread Y, the final value is ten instead of twenty. \r\n\r\nSynchronization can deal with the race conditions by, among other things, using locks.\r\n\r\n### Locks\r\nLocks are part of exclusive locking constructs. It means that only one thread can be in a section of the code that is protected by the ${'`'}lock${'`'}. All other threads are blocked until the section is free and a new one can enter. Because of it, you should always ${'`'}lock${'`'} a code that execute quickly to avoid bottlenecks. Let's see how it can be implemented in C#:\r\n${'```'}c#\r\nvar finalResult = 0;\r\nvar syncRoot = new object();\r\n\r\nawait Task.Run(() =>\r\n{\r\n\tParallel.For(0, 20, i =>\r\n\t{\r\n\t\tvar localResult = HeavyComputation(i.ToString());\r\n\t\tlock (syncRoot)\r\n\t\t{\r\n\t\t\t//one thread at the same time\r\n\t\t\tfinalResult += localResult;\r\n\t\t}\r\n\t});\r\n});\r\n${'```'}\r\nWe used ${'`'}lock${'`'} keyword that introduces the section where only one thread can be at the same time. As you can see, the section contains an operation of adding the value to ${'`'}finalResults${'`'} - the computation is done before and, thanks to this, it can still be done in parallel. As we mentioned earlier, the code inside ${'`'}lock${'`'} shouldn't be time consuming, because we will have a bottleneck and won't really use the power of parallelism. \r\n\r\nOne of the risks of using ${'`'}lock${'`'} is dead lock. It is a situation when all threads are waiting (usually for each other) and the application cannot continue working. To avoid dead lock, it is good to have a separate ${'`'}syncRoot${'`'} for every ${'`'}lock${'`'} and minimizing the nesting of the locks. \r\n\r\nIt is worth mentioning that under the hood of ${'`'}lock${'`'} we have a ${'`'}Monitor.Enter${'`'} and ${'`'}Monitor.Exit${'`'} operations. Let's see how the above code looks in Intermediate Language (IL):\r\n${'```'}c#\r\n//...\r\nint num = HeavyComputation(i.ToString());\r\nobject obj = syncRoot;\r\nbool lockTaken = false;\r\ntry\r\n{\r\n\tMonitor.Enter(obj, ref lockTaken);\r\n\tfinalResult += num;\r\n}\r\nfinally\r\n{\r\n\tif (lockTaken)\r\n\t{\r\n\t\tMonitor.Exit(obj);\r\n\t}\r\n}\r\n${'```'}\r\nWhen we execute ${'`'}Monitor.Enter${'`'} without any exception, the value of ${'`'}lockTaken${'`'} will be changed to true. Later our code will be run (in this case ${'`'}finalResult += num;${'`'}) and in the ${'`'}finally${'`'} block we exit the monitor. ${'`'}finally${'`'} section is extremely important because it protects us from the situation that our exception resulted in having a thread that enter the ${'`'}lock${'`'} block but doesn't exit. \r\n\r\nIt is good to know that inside ${'`'}lock${'`'} block we are not allowed to use async operations - otherwise you get an error: _cannot await in the body of a lock statement_. Why is there this limitation? Because from the thread perspective ${'`'}await${'`'} keyword can create a new thread, but inside the ${'`'}lock${'`'} only one thread is allowed. \r\n\r\n## Summary\r\nIn this post I tried to explain fundamentals of parallel computing: we learned why it is important, what are the advantages and disadvantages of parallelism and how to write correct concurrent code in C# using Task Parallel Library and locks. I hope that now you know all the essentials to start your journey into the parallelism! \r\n`,\r\n}\r\n","import { IPost } from './Post'\r\n\r\nexport const post6: IPost = {\r\n title: 'Availability in Azure',\r\n tag: 'azure',\r\n year: 2022,\r\n url: '/availability-in-azure',\r\n imageUrl: './assets/blog6.png',\r\n shortDescription:\r\n \"Sometimes we observe a downtime of popular websites because of a cloud provider's outage. The fact that we use a cloud doesn't automatically guarantee high availability of our application - there is a shared responsibility between cloud providers and its clients. Let's learn how we can use the power of cloud to make sure that our Azure resources are high available.\",\r\n content: `\r\nSometimes we observe a downtime of popular websites because of a cloud provider's outage. The fact that we use a cloud doesn't automatically guarantee high availability of our application - there is a shared responsibility between cloud providers and its clients. Let's learn how we can use the power of cloud to make sure that our Azure resources are high available.\r\n\r\n## How much money can the company lose due to the outage?\r\nAre you wondering how much can the outage cost? For the most popular services, the loss of money is likely to be mind-boggling - for example, YouTube was down for 37 minutes in 2020 and it resulted in losses of $1.7 million [1]. In 2013 Amazon.com had a downtime and each minute of the outage costed them about $66,240 [2]. These enormous numbers show that high availability is an important topic and can have a critical impact on the company's finances, so let's delve into it.\r\n\r\n## How to protect our application from downtime?\r\nImagine that we have a business-critical application hosted on virtual machine. There are several ways how we can reduce the risk of outage.\r\n\r\n### No protection\r\nThe starting point is to have a single virtual machine. Users can access the application by sending requests directly to HTTP/S port of the VM and in this way interact with our application. \r\n![Image description](./assets/x1.png)\r\nAs long as the virtual machine works correctly our application is available. This is not a recommend solution because each downtime of our single VM will result in situation where our users won't be able to access the application. Let's see how we can improve it.\r\n\r\n### Isolated hardware redundancy\r\nTo help us protect the virtual machines, Azure introduced special entities called fault and update domains. Let's take a look at them:\r\n- fault domain - it is a set of virtual machines that use the same power and network infrastructure. When there will be a power, network or hardware issue, all virtual machines in that domain will be affected.\r\n- update domain - it is a set of virtual machines that can be updated and rebooted at the same time. Azure ensures that two virtual machines that are in a separate update domain will not be affected at the same time, when maintenance activities will be required.\r\n\r\nAs a result, we can use the power of the fault and update domains and deploy two virtual machines - each in a separate domain. It can be done by using an availability set:\r\n![Image description](./assets/x2.png)\r\nAll you need to do is to create two virtual machines and during the creation add them to the availability set. After it you can check that the virtual machines are placed in a different update and fault domain:\r\n![Image description](./assets/x3.png)\r\nThere is also one important fact - we need a special service that will be responsible for balance the traffic to our virtual machines. We can use Azure Load Balancer for it and configure backend pool to contain our virtual machines. The architecture of that solution is the following:\r\n![Image description](./assets/x4.png)\r\n\r\nThis solution helps us to provide higher availability, but it has its limits. For example, when the whole data center will be down, our application still will be impacted. For that scenario, we will need more protection.\r\n\r\n### Availability zone redundancy\r\nIt is good to know that Azure has in almost every region three separate data centers. What is more, there is a rule that each of the data centers should be in a distance of at least 16 km. Thanks to it, when some natural disaster occurs, it is more likely that not all the data centers will be impacted. During the creation of the VM we can select the availability zone and add virtual machines to a separate zone. We still need a load balancer to handle the traffic and it can be configured for our virtual machines:\r\n![Image description](./assets/x5.png)\r\nThanks to it, when one of the data center will be down, load balancer will send traffic to the second virtual machine in a different availability zone (AZ). \r\n![Image description](./assets/x6.png) \r\n\r\nThis solution can fulfill the most common availability requirements, but what if we need a higher protection?\r\n\r\n### Region redundancy\r\nTo achieve region redundancy, some more steps are required. It is important that currently there is no load balancer in general availability (GA) that supports sending traffic across several regions. For that scenario we need to use a different service. One of the options is Traffic Manager. We can configure Traffic Manager to send requests to our virtual machines placed in different regions:\r\n![Image description](./assets/x7.png)\r\nDuring the creation of the Traffic Manager, we are required to select a routing method:\r\n![Image description](./assets/x8.png)\r\nLet's take a look at some of these values:\r\n- priority - it is used to configure primary, secondary, and so on resources to which the traffic will be redirected. For example, we want to send users' requests to the first VM and only when the VM is unavailable the requests should be transferred to the second VM. In that case, the first VM should receive priority 1 and the second the priority 2:\r\n![Image description](./assets/x9.png)\r\n- performance - it gives the opportunity to use not only the power of availability but also improve the performance. Your users will be redirected to resources which are the closest for them from the network latency point of view. It is determined by using the source IP address that is related to the recursive DNS service.\r\n- weighted - you can distribute the traffic based on the weight. For example, when there is a need to balance the traffic equally between two VMs, you should assign the same weight (in our case the value is 50):\r\n![Image description](./assets/qq1.png)\r\nThis routing method can also be used for blue-green deployments. Let's assume that we have an updated version of our application, and we want to provide it gradually to the users. We can configure that only 20% of our users will be able to use the new version - when it turns out that there are no issues related with the newly added functionality, we can make the latest version available for more users.\r\n![Image description](./assets/qq2.png)\r\n\r\nAs you can see, Traffic Manager's routing methods can cover a variety of requirements and help you to develop high available systems. \r\n\r\nSo far, we discussed having only two virtual machines. Let's be clear, in a real-life scenario we will usually use much more virtual machines - that brings us to a solution when we use both Traffic Manager and Load balancer with multiple virtual machines:\r\n![Image description](./assets/x10.png)\r\n\r\n## Availability with scalability\r\nThe above architecture is great when it comes to high availability, but from the scalability point of view it can be improved. Let's assume, that our application has a varied user traffic - at some point a vast number of users visit our application, but there are also periods of lower traffic. In that case, the best option is to use virtual machine scale sets (VMSS). VMSS is responsible for horizontal scaling - when the traffic is huge, it can automatically deploy new virtual machines, and when the traffic is decreased, number of virtual machines can be reduced. So the final solution can look like this:\r\n![Image description](./assets/x11.png)\r\n \r\n\r\n## Availability is a huge topic\r\nIn this post I tried to focus only on virtual machines and load balancer/traffic manager. It is good to remember that this topic is very wide and there are some other important challenges:\r\n- availability of data (CosmosDB, Azure SQL Database, storage accounts, etc.)\r\n- balance the traffic (Application Gateway, Azure Front Door, etc.)\r\n- data backup and recovery (Azure Site Recovery, Azure Backup, etc.)\r\n- more and more...\r\n\r\nAs you can see, there are a lot of areas to learn about availability - you can treat this post as a small introduction and I hope that it will encourage you to explore this topic deeper.\r\n\r\nReferences:\r\n1. https://www.foxbusiness.com/technology/google-lost-ad-revenue-during-youtube-outage-expert\r\n2. https://www.forbes.com/sites/kellyclay/2013/08/19/amazon-com-goes-down-loses-66240-per-minute/?sh=5ebfbeae495c \r\n\r\n`,\r\n}\r\n","import { IPost } from './Post'\r\n\r\nexport const post3: IPost = {\r\n title: 'How to protect Azure resources from DDoS?',\r\n tag: 'azure',\r\n year: 2021,\r\n imageUrl: './assets/ddos.png',\r\n url: '/how-to-protect-azure-resources-from-ddos',\r\n shortDescription:\r\n 'It will not come as a surprise - every resource has its limits. Servers, virtual machines, networks, etc. are not designed in a way that supports unlimited concurrent users. Let’s imagine that someone really wants to make a given website unavailable. How can they do this? Attackers can use that weakness and send a lot of requests to a given website. At some point, the service cannot handle such traffic and become unavailable - it is called Denial-of-service attack.',\r\n content: `\r\nIt will not come as a surprise - every resource has its limits. Servers, virtual machines, networks, etc. are not designed in a way that supports unlimited concurrent users. Let’s imagine that someone really wants to make a given website unavailable. How can they do this? Attackers can use that weakness and send a lot of requests to a given website. At some point, the service cannot handle such traffic and become unavailable - it is called Denial-of-service attack. \r\n\r\n## What is the difference between DoS and DDoS?\r\nWhen attackers send requests from one source it is DoS (Denial-of-service attack):\r\n![DoS](./assets/d1.png)\r\n\r\nSending traffic from a lot of various sources to make some website unavailable is called DDoS (Distributed denial-of-service):\r\n\r\n![DDoS](./assets/d2.png)\r\n\r\nWhat does the expression 'many requests' really mean? It turned out that in 2012 the DDoS attack that contained 60 Gbps traffic was enough to make several US banking systems unavailable[1]. In 2016 OVH reported attack that reached 1.1 Tbps[2] and two years later GitHub was attacked by 1.3 Tbps[3]. If it is hard for you to imagine that huge amount of data, this level of traffic will be enough to transfer ~80 hours of HD video in one second! To make matters worse Cisco indicates that the frequency of DDoS attacks will increase - from 7.9 million per year in 2018 to 15.4 million in 2023[4]. As you can see, the DDoS attack is a real threat so protecting the resources from such kind of attack is indispensable if we want to reduce the possibility that our system will be unavailable for customers. \r\n\r\n## How can I protect Azure resources from DDoS?\r\n\r\nYou have two options: you can do nothing, or you can enable the DDoS Protection Standard.\r\n\r\n### Do nothing\r\nWhy can you do nothing and still have your resources protected in Azure? The answer is simple: all Azure resources have enabled Azure DDoS Protection Basic. The main goal of this tier is to protect Azure’s infrastructure. It provides the ability to monitor the traffic and automatically mitigates the attack when it occurs. However, if you want more advanced functionality, this solution may not meet your requirements. It has also one important limitation: Azure can perceive some traffic as safe and inoffensive, but it can be too heavy for your application to be able to handle it. \r\n\r\n### Use DDoS Protection Standard\r\nAlerts, mitigation reports, DDoS Rapid Response (DRR) team that can help you during the attack and cost guarantee are included only in Standard option. You will be charged about $3,500/month for protecting up to one hundred resources[5]. It is the best option if you want to preserve your application from DDoS since it \"will be protected with a profile that is tuned to its expected traffic volume, providing a much tighter defense against DDoS attacks\"[6]. \r\n\r\n## How does Azure DDoS Protection work?\r\nIt analyses the traffic using machine learning solutions and if some requests seem to be suspicious, they will be dropped. Traffic that is originated by real users will be forwarded to the given website. Thanks to it during the attack the website is still available for customers and at the same time the attackers are blocked to reach the final service. \r\n![DDoS protection](./assets/d3.png)\r\n\r\n## How can I enable Azure DDoS Protection Standard?\r\nTo have resources that are protected by Azure DDoS service in Standard plan you must take several steps. This part of the article guides you with all the necessary actions. The goal is to enable Azure DDoS Protection Standard for one resource and configure sending email alert when the attack occurs. \r\n\r\n### 1. Create a resource to protect\r\nLet's assume that we would like to protect a virtual machine. Go to the top bar and search for a virtual machine. You can choose any name, region, image, etc. - it doesn't have an influence on later steps. Creating a virtual machine can automatically generate the virtual network that we will use in the next step. When it is done copy the public IP address of the virtual machine for future purposes. \r\n\r\n![1](./assets/d4.png)\r\n\r\n### 2. Create DDoS Protection plan and assign it to your resource\r\nGo to DDoS protection plans -> click New and fill the required fields. When it is created go to Protected resources section for your plan and add a new resource by choosing your virtual network. As you can see in this case, DDoS Protection plan is assigned to the virtual network, but you can also assign DDoS Protection plan to Application Gateway, Load Balancer or Virtual Machine Scale Set. It is good to know that DDoS plan can be even used across multiple subscriptions.\r\n\r\n![2](./assets/d5.png)\r\n\r\n### 3. Register resource provider\r\nWe would like to use Azure Monitor to collect data and use them to sent alerts. To be able to do this we need to add microsoft.insights resource provider to our subscription. Go to Subscription -> Resource Providers and make sure that microsoft.insights is registered. \r\n\r\n![3](./assets/d6.png)\r\n\r\n### 4. Create an alert rule\r\nGo to Azure Monitor -> Alerts -> New alert rule -> Select resource and choose your virtual machine public IP address.\r\n\r\n![4-1](./assets/d7.png)\r\n\r\nIn condition section choose as a signal name 'Under DDoS attack or not'. In Alert logic set threshold value as 0. Thanks to it the alert will be activated when the maximum 'under ddos attack or not' value is greater or equal to one. \r\n\r\n![4-2](./assets/d8.png)\r\n\r\nIn actions section create new action groups. For notification select 'Email/SMS message/Push/Voice' and write your email address.\r\n\r\n![4-3](./assets/d9.png)\r\n\r\n### 5. Simulate attack on your resources.\r\nThere is only one official tool that can be used to simulate DDoS attack on your Azure resources[7]. It is called BreakingPoint Cloud[8] and it offers a trial subscription that contains 5GB of free outbound traffic. After creating your free account, you need to authorize using your Azure subscription - they would like to be sure that you attack only resources that are created by you. Later, you can choose the details of the attack. At this point, the public IP address of your virtual machine will be useful. During configuration of the attack please pay attention to estimated outbound data - for a free trial you have only 5 GB to use. \r\n\r\n![5](./assets/d10.png)\r\n\r\n### 6. See the results\r\nAfter the simulation of the DDoS attack, you can see that DDoS Protection detected suspicious packets.\r\n\r\n![6](./assets/d11.png)\r\n\r\nWhen you check your inbox, you should see an email about the DDoS attack:\r\n![6](./assets/d12.png)\r\n\r\n### 7. Clean your resources\r\nDon't forget to remove unused resources. To delete the DDoS Protection Standard plan, you should go the virtual network -> DDoS Protection and disable it.\r\n \r\n![7-1](./assets/d13.png)\r\nAfter that, you can simply delete your plan and other resources.\r\n\r\nDuring attack simulation, we used the app that needs some permissions in our account. To cancel those permissions, go to MyApplications[9] and click 'revoke permissions'.\r\n\r\n![7-2](./assets/d14.png)\r\n\r\n\r\n## Summary\r\nThis near-real live scenario can be used to protect your cloud resources from DDoS attack. Thanks to Standard plan you can be alerted when the attack occurs and have access to metrics collected by Azure Monitor. Also, you can contact DDoS Rapid Response (DRR) team to get some help and you can be sure that you don't be charged for scaling of your services as a result of DDoS attack. As you can see, Azure offers an interesting solution to make your cloud resources safer. \r\n\r\nIn this article, you can get to know the basics of DDoS attack and understand why it is a genuine issue. I showed you how to configure Azure DDoS Protection for your resource and how to simulate DDoS attack to your virtual machine. I hope that you enjoyed this post! \r\n\r\n##### References:\r\n\r\n[1] https://www.cio.com/article/2389721/ddos-attacks-against-us-banks-peaked-at-60-gbps.html\r\n\r\n[2] https://arstechnica.com/information-technology/2016/09/botnet-of-145k-cameras-reportedly-deliver-internets-biggest-ddos-ever/\r\n\r\n[3] https://www.wired.com/story/github-ddos-memcached/\r\n\r\n[4] https://www.cisco.com/c/en/us/solutions/collateral/executive-perspectives/annual-internet-report/white-paper-c11-741490.html\r\n\r\n[5] https://azure.microsoft.com/en-ca/pricing/details/ddos-protection/\r\n\r\n[6] https://docs.microsoft.com/en-us/azure/ddos-protection/ddos-faq#are-services-unsafe-in-azure-without-the-service\r\n\r\n[7] https://github.com/MicrosoftDocs/azure-docs/issues/59335\r\n\r\n[8] https://www.keysight.com/zz/en/products/network-security/breakingpoint-cloud.html\r\n\r\n[9] https://myapplications.microsoft.com\r\n`,\r\n}\r\n","import { posts } from '../blogPosts/Post'\r\nimport { Link } from 'react-router-dom'\r\nimport './Home.css'\r\n\r\nexport const Home = () => {\r\n return (\r\n
\r\n {posts.map((post) => {\r\n return (\r\n
\r\n \r\n \r\n

{post.title}

\r\n

\r\n \"\"\r\n {post.year} -{' '}\r\n {post.tag}\r\n

\r\n

\r\n {post.shortDescription}\r\n

\r\n \r\n
\r\n )\r\n })}\r\n
\r\n )\r\n}\r\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","var own = {}.hasOwnProperty\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|Position|Point} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n // @ts-ignore looks like a node.\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n // @ts-ignore looks like a position.\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n // @ts-ignore looks like a point.\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n /**\n * Constructor of a message for `reason` at `place` from `origin`.\n * When an error is passed in as `reason`, copies the `stack`.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n */\n constructor(reason, place, origin) {\n /** @type {[string?, string?]} */\n var parts = [null, null]\n /** @type {Position} */\n var position = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n /** @type {number} */\n var index\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = null\n }\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-ignore Looks like a position.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // @ts-ignore Looks like a point.\n position.start = place\n }\n }\n\n // Fields from `Error`\n this.name = stringifyPosition(place) || '1:1'\n this.message = typeof reason === 'object' ? reason.message : reason\n this.stack = typeof reason === 'object' ? reason.stack : ''\n\n /**\n * Reason for message.\n * @type {string}\n */\n this.reason = this.message\n /**\n * If true, marks associated file as no longer processable.\n * @type {boolean?}\n */\n // eslint-disable-next-line no-unused-expressions\n this.fatal\n /**\n * Starting line of error.\n * @type {number?}\n */\n this.line = position.start.line\n /**\n * Starting column of error.\n * @type {number?}\n */\n this.column = position.start.column\n /**\n * Namespace of warning.\n * @type {string?}\n */\n this.source = parts[0]\n /**\n * Category of message.\n * @type {string?}\n */\n this.ruleId = parts[1]\n /**\n * Full range information, when available.\n * Has start and end properties, both set to an object with line and column, set to number?.\n * @type {Position?}\n */\n this.position = position\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /* eslint-disable no-unused-expressions */\n /**\n * You can use this to specify the source value that’s being reported, which\n * is deemed incorrect.\n * @type {string?}\n */\n this.actual\n /**\n * You can use this to suggest values that should be used instead of\n * `actual`, one or more values that are deemed as acceptable.\n * @type {Array?}\n */\n this.expected\n /**\n * You may add a file property with a path of a file (used throughout the VFile ecosystem).\n * @type {string?}\n */\n this.file\n /**\n * You may add a url property with a link to documentation for the message.\n * @type {string?}\n */\n this.url\n /**\n * You may add a note property with a long form description of the message (supported by vfile-reporter).\n * @type {string?}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\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 path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== '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 (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(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 (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(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 (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 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 extIndex = -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 * @param {string} path\n * @returns {string}\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.charCodeAt(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.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\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.charCodeAt(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 * @param {Array} segments\n * @returns {string}\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 * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(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.charCodeAt(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 * @param {boolean} allowAboveRoot\n * @returns {string}\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.charCodeAt(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.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(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 * @param {string} path\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 proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: \nexport function isUrl(fileURLOrPath) {\n return (\n fileURLOrPath !== null &&\n typeof fileURLOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileURLOrPath.href &&\n // @ts-expect-error: indexable.\n fileURLOrPath.origin\n )\n}\n","/// \n\nimport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {string|URL} path\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 * @param {URL} url\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.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(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\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('..').VFileData} VFileData\n * @typedef {import('..').VFileValue} VFileValue\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n * This is a copy of the typing from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: \n *\n *\n * @typedef {VFileValue|VFileOptions|VFile|URL} VFileCompatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {VFileValue} [value]\n * @property {string} [cwd]\n * @property {Array} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {VFileData} [data]\n *\n * @typedef Map\n * Raw source map, see:\n * .\n * @property {number} version\n * @property {Array} sources\n * @property {Array} names\n * @property {string|undefined} [sourceRoot]\n * @property {Array|undefined} [sourcesContent]\n * @property {string} mappings\n * @property {string} file\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} VFileOptions\n * Configuration: a bunch of keys that will be shallow copied over to the new\n * file.\n *\n * @typedef {Record} VFileReporterSettings\n * @typedef {(files: Array, options: T) => string} VFileReporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\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.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * If `options` is `string` or `Buffer`, treats it as `{value: options}`.\n * If `options` is a `VFile`, shallow copies its data over to the new file.\n * All other given fields are set on the newly created `VFile`.\n *\n * Path related properties are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * It’s not possible to set either `dirname` or `extname` without setting\n * either `history`, `path`, `basename`, or `stem` as well.\n *\n * @param {VFileCompatible} [value]\n */\n constructor(value) {\n /** @type {VFileOptions} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n // @ts-expect-error Looks like a buffer.\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n // @ts-expect-error Looks like file or options.\n options = value\n }\n\n /**\n * Place to store custom information.\n * It’s OK to store custom data directly on the file, moving it to `data`\n * gives a little more privacy.\n * @type {VFileData}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n * @type {Array}\n */\n this.messages = []\n\n /**\n * List of file paths the file moved between.\n * @type {Array}\n */\n this.history = []\n\n /**\n * Base of `path`.\n * Defaults to `process.cwd()` (`/` in browsers).\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n * @type {VFileValue}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n * This is used by vfile reporters.\n * @type {boolean}\n */\n this.stored\n\n /**\n * Sometimes files have a non-string representation.\n * This can be stored in the `result` field.\n * One example is when turning markdown into React nodes.\n * This is used by unified to store non-string results.\n * @type {unknown}\n */\n this.result\n\n /**\n * Sometimes files have a source map associated with them.\n * This can be stored in the `map` field.\n * This should be a `RawSourceMap` type from the `source-map` module.\n * @type {Map|undefined}\n */\n this.map\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 prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined) {\n // @ts-expect-error: TS is confused by the different types for `history`.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) this[prop] = options[prop]\n }\n }\n\n /**\n * Access full path (`~/index.min.js`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set full path (`~/index.min.js`).\n * Cannot be nullified.\n *\n * @param {string|URL} path\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 * Access parent path (`~`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set parent path (`~`).\n * Cannot be set if there's no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Access basename (including extname) (`index.min.js`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (`index.min.js`).\n * Cannot contain path separators.\n * Cannot be nullified either (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Access extname (including dot) (`.js`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set extname (including dot) (`.js`).\n * Cannot be set if there's no `path` yet and cannot contain path separators.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(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 = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Access stem (w/o extname) (`index.min`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set stem (w/o extname) (`index.min`).\n * Cannot be nullified, and cannot contain path separators.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding} [encoding='utf8'] If `file.value` is a buffer, `encoding` is used to serialize buffers.\n * @returns {string}\n */\n toString(encoding) {\n return (this.value || '').toString(encoding)\n }\n\n /**\n * Create a message and associates it w/ the file.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {VFileMessage}\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\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 * Info: create a message, associate it with the file, and mark the fatality\n * as `null`.\n * Calls `message()` internally.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {VFileMessage}\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Fail: create a message, associate it with the file, mark the fatality as\n * `true`.\n * Note: fatal errors mean a file is no longer processable.\n * Calls `message()` internally.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {never}\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\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 * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\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 (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {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`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\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 instanceof Promise) {\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 * @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","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[1] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\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 if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable} value\n * @returns {void}\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, ...options] = value\n addPlugin(plugin, ...options)\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 {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\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 {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\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 {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [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 VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the node’s plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n var {includeImageAlt = true} = options || {}\n return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n return (\n (node &&\n typeof node === 'object' &&\n // @ts-ignore looks like a literal.\n (node.value ||\n // @ts-ignore looks like an image.\n (includeImageAlt ? node.alt : '') ||\n // @ts-ignore looks like a parent.\n ('children' in node && all(node.children, includeImageAlt)) ||\n (Array.isArray(node) && all(node, includeImageAlt)))) ||\n ''\n )\n}\n\n/**\n * @param {Array.} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n /** @type {Array.} */\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt)\n }\n\n return result.join('')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let code\n\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {unknown[]} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {StackItem[]} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n } // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n } // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream) // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n } // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n /** @type {State} */\n\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n /** @type {Initializer} */\n\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean|undefined} */\n\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Resolver[]} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n\n const columnStart = {}\n /** @type {Construct[]} */\n\n const resolveAllConstructs = []\n /** @type {Chunk[]} */\n\n let chunks = []\n /** @type {Token[]} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n /** @type {Effects['exit']} */\n\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Construct[]|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Construct[]} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Construct[]} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\n\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Chunk[]} chunks\n * @param {Pick} token\n * @returns {Chunk[]}\n */\n\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Chunk[]} */\n\n let view\n\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Chunk[]} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {string[]} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\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 label\n }\n\n return label(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable} */\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\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 seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn’t have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * .\n *\n * Note that `textarea` is not available in `CommonMark@0.29` but has been\n * merged to the primary branch and is slated to be released in the next release\n * of CommonMark.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n } // More dashes.\n\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\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 openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\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').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\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 /** @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\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\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\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\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 open\n }\n /** @type {State} */\n\n function open(code) {\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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\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","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\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\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\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 = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(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\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\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 /** @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\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something 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 that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\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').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // 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\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\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 (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 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 = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\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 /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !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 * 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 {void}\n */\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\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 /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\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\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\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 /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\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 /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook. */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\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 } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\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\n enter = undefined\n }\n }\n\n return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n /** @type {State} */\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\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/** @type {Extension['document']} */\n\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/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\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/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\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/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Chunk[]}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Chunk[]} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\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\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\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\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\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 * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return String.fromCharCode(code)\n}\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 * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\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\n return decodeNamedCharacterReference($2) || $0\n}\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 * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract} Parent\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').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\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 {UnistParent & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record} Handles\n * Token types mapping to handles\n * @typedef {Record|Array> & {canContainEols: Array, transforms: Array, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial} Extension\n * An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef {(this: Omit, left: Token|undefined, right: Token) => void} OnEnterError\n * @typedef {(this: Omit, left: Token, right: Token) => void} OnExitError\n *\n * @typedef CompileContext\n * mdast compiler context\n * @property {Array} stack\n * @property {Array<[Token, OnEnterError|undefined]>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n * Set data into the key-value store.\n * @property {(key: K) => CompileData[K]} getData\n * Get data from the key-value store.\n * @property {(this: CompileContext) => void} 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: N, token: Token, onError?: OnEnterError) => N} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {NormalizedExtension} config\n * Configuration.\n *\n * @typedef {{mdastExtensions?: Array>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n */\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\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 * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options) => Root) &\n * ((value: Value, options?: Options) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {Options} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n /** @type {NormalizedExtension} */\n // @ts-expect-error: our base has all required fields, so the result will too.\n const config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\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 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 options.mdastExtensions || []\n )\n /** @type {CompileData} */\n\n const data = {}\n return compile\n /**\n * @param {Array} events\n * @returns {Root}\n */\n\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {CompileContext['stack']} */\n\n const stack = [tree]\n /** @type {CompileContext['tokenStack']} */\n\n const tokenStack = []\n /** @type {Array} */\n\n const listStack = []\n /** @type {Omit} */\n\n const context = {\n stack,\n tokenStack,\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n let index = -1\n\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 (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\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\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length > 0) {\n const tail = tokenStack[tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n } // Figure out `root` position.\n\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n index = -1\n\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\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\n let listItem\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number|undefined} */\n\n let firstBlankLineIndex\n /** @type {boolean|undefined} */\n\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n } // Fix position.\n\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n } // Create a new list item.\n\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n } // @ts-expect-error Patched.\n\n events[start][1]._spread = listSpread\n return length\n }\n /**\n * @type {CompileContext['setData']}\n * @param [value]\n */\n\n function setData(key, value) {\n data[key] = value\n }\n /**\n * @type {CompileContext['getData']}\n * @template {string} K\n * @param {K} key\n * @returns {CompileData[K]}\n */\n\n function getData(key) {\n return data[key]\n }\n /**\n * @param {Point} d\n * @returns {Point}\n */\n\n function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n }\n /**\n * @param {(token: Token) => Node} create\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function opener(create, and) {\n return open\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n /** @type {CompileContext['buffer']} */\n\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n /**\n * @type {CompileContext['enter']}\n * @template {Node} N\n * @this {CompileContext}\n * @param {N} node\n * @param {Token} token\n * @param {OnEnterError} [errorHandler]\n * @returns {N}\n */\n\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler]) // @ts-expect-error: `end` will be patched later.\n\n node.position = {\n start: point(token.start)\n }\n return node\n }\n /**\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function closer(and) {\n return close\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n /**\n * @type {CompileContext['exit']}\n * @this {CompileContext}\n * @param {Token} token\n * @param {OnExitError} [onExitError]\n * @returns {Node}\n */\n\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\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\n node.position.end = point(token.end)\n return node\n }\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n\n function resume() {\n return toString(this.stack.pop())\n } //\n // Handlers.\n //\n\n /** @type {Handle} */\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n /** @type {Handle} */\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor =\n /** @type {List} */\n this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n /** @type {Handle} */\n\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.lang = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.meta = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n /** @type {Handle} */\n\n function onexitcodefenced() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n /** @type {Handle} */\n\n function onexitcodeindented() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n /** @type {Handle} */\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n const label = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitatxheadingsequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n /** @type {Handle} */\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n /** @type {Handle} */\n\n function onexitsetextheadinglinesequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n /** @type {Handle} */\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n /** @type {Handle} */\n\n function onenterdata(token) {\n const parent =\n /** @type {Parent} */\n this.stack[this.stack.length - 1]\n /** @type {Node} */\n\n let tail = parent.children[parent.children.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text() // @ts-expect-error: we’ll add `end` later.\n\n tail.position = {\n start: point(token.start)\n } // @ts-expect-error: Assume `parent` accepts `text`.\n\n parent.children.push(tail)\n }\n\n this.stack.push(tail)\n }\n /** @type {Handle} */\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 /** @type {Handle} */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n /** @type {Handle} */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n /** @type {Handle} */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexithtmltext() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitcodetext() {\n const data = this.resume()\n const node =\n /** @type {InlineCode} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitlink() {\n const context =\n /** @type {Link & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitimage() {\n const context =\n /** @type {Image & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitlabeltext(token) {\n const ancestor =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 2]\n const string = this.sliceSerialize(token)\n ancestor.label = decodeString(string)\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitlabel() {\n const fragment =\n /** @type {Fragment} */\n this.stack[this.stack.length - 1]\n const value = this.resume()\n const node =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // Assume a reference.\n\n setData('inReference', true)\n\n if (node.type === 'link') {\n // @ts-expect-error: Assume static phrasing content.\n node.children = fragment.children\n } else {\n node.alt = value\n }\n }\n /** @type {Handle} */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitresource() {\n setData('inReference')\n }\n /** @type {Handle} */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n /** @type {Handle} */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node =\n /** @type {LinkReference|ImageReference} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n // @ts-expect-error `decodeNamedCharacterReference` can return false for\n // invalid named character references, but everything we’ve tokenized is\n // valid.\n value = decodeNamedCharacterReference(data)\n }\n\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n /** @type {Handle} */\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n } //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n /** @returns {Code} */\n\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n /** @returns {InlineCode} */\n\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n /** @returns {Definition} */\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n /** @returns {Emphasis} */\n\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n /** @returns {Heading} */\n\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n /** @returns {Break} */\n\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n /** @returns {HTML} */\n\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n /** @returns {Image} */\n\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n /** @returns {Link} */\n\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {List}\n */\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n /** @returns {Paragraph} */\n\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n /** @returns {Strong} */\n\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n /** @returns {Text} */\n\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n /** @returns {ThematicBreak} */\n\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n/**\n * @param {Extension} combined\n * @param {Array>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n\n return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n /** @type {string} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n const list = key === 'canContainEols' || key === 'transforms'\n const maybe = own.call(combined, key) ? combined[key] : undefined\n /* c8 ignore next */\n\n const left = maybe || (combined[key] = list ? [] : {})\n const right = extension[key]\n\n if (right) {\n if (list) {\n // @ts-expect-error: `left` is an array.\n combined[key] = [...left, ...right]\n } else {\n Object.assign(left, right)\n }\n }\n }\n }\n}\n/** @type {OnEnterError} */\n\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Event[]} events\n * @returns {Event[]}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\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 {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\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 * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, 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: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist').Literal} Literal\n * @typedef {Object.} Props\n * @typedef {Array.|string} ChildrenOrValue\n *\n * @typedef {(, C extends Node[]>(type: T, props: P, children: C) => {type: T, children: C} & P)} BuildParentWithProps\n * @typedef {(>(type: T, props: P, value: string) => {type: T, value: string} & P)} BuildLiteralWithProps\n * @typedef {(>(type: T, props: P) => {type: T} & P)} BuildVoidWithProps\n * @typedef {((type: T, children: C) => {type: T, children: C})} BuildParent\n * @typedef {((type: T, value: string) => {type: T, value: string})} BuildLiteral\n * @typedef {((type: T) => {type: T})} BuildVoid\n */\n\nexport var u = /**\n * @type {BuildVoid & BuildVoidWithProps & BuildLiteral & BuildLiteralWithProps & BuildParent & BuildParentWithProps}\n */ (\n /**\n * @param {string} type Type of node\n * @param {Props|ChildrenOrValue} [props] Additional properties for node (or `children` or `value`)\n * @param {ChildrenOrValue} [value] `children` or `value` of node\n * @returns {Node}\n */\n function (type, props, value) {\n /** @type {Node} */\n var node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== undefined && value !== null) {\n node.value = String(value)\n }\n\n return node\n }\n)\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * ((node: unknown, test: T['type']|Partial|TestFunctionPredicate|Array.|TestFunctionPredicate>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(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 // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.} tests\n * @returns {AssertAnything}\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 * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\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 * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types').Action} Action\n * @typedef {import('./complex-types').Index} Index\n * @typedef {import('./complex-types').ActionTuple} ActionTuple\n * @typedef {import('./complex-types').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test node, optional\n * @param visitor Function to run for each node\n * @param reverse Visit the tree in reverse order, defaults to false\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor, reverse?: boolean) => void) &\n * ((tree: Tree, visitor: import('./complex-types').BuildVisitor, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\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 test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array.} parents\n */\n function factory(node, index, parents) {\n /** @type {Object.} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\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] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], 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 return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\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]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {visitParents, CONTINUE, SKIP, EXIT} from 'unist-util-visit-parents'\n\nexport {CONTINUE, SKIP, EXIT}\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test, optional\n * @param visitor Function to run for each node\n * @param reverse Fisit the tree in reverse, defaults to false\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor, reverse?: boolean) => void) &\n * ((tree: Tree, visitor: import('./complex-types').BuildVisitor, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array.} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial} PointLike\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\nexport var pointStart = point('start')\nexport var pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike} [node]\n * @returns {Position}\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start'|'end'} type\n */\nfunction point(type) {\n return point\n\n /**\n * Get the positional info of `node`.\n *\n * @param {NodeLike} [node]\n * @returns {Point}\n */\n function point(node) {\n /** @type {Point} */\n // @ts-ignore looks like a point\n var point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {CONTINUE|SKIP|EXIT} Action Union of the action types\n * @typedef {number} Index Move to the sibling at index next (after node itself is completely traversed). Useful if mutating the tree, such as removing the node the visitor is currently on, or any of its previous siblings (or next siblings, in case of reverse) Results less than 0 or greater than or equal to children.length stop traversing the parent\n * @typedef {[(Action|null|undefined|void)?, (Index|null|undefined)?]} ActionTuple List with one or two values, the first an action, the second an index.\n * @typedef {null|undefined|Action|Index|ActionTuple|void} VisitorResult Any value that can be returned from a visitor\n */\n\n/**\n * Invoked when a node (matching test, if given) is found.\n * Visitors are free to transform node.\n * They can also transform the parent of node (the last of ancestors).\n * Replacing node itself, if `SKIP` is not returned, still causes its descendants to be visited.\n * If adding or removing previous siblings (or next siblings, in case of reverse) of node,\n * visitor should return a new index (number) to specify the sibling to traverse after node is traversed.\n * Adding or removing next siblings of node (or previous siblings, in case of reverse)\n * is handled as expected without needing to return a new index.\n * Removing the children property of an ancestor still results in them being traversed.\n *\n * @template {Node} V\n * @callback Visitor\n * @param {V} node Found node\n * @param {Array.} ancestors Ancestors of node\n * @returns {VisitorResult}\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) &\n * ((tree: Node, test: Test, visitor: Visitor, reverse?: boolean) => void) &\n * ((tree: Node, visitor: Visitor, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * Visit children of tree which pass a test\n *\n * @param {Node} tree Abstract syntax tree to walk\n * @param {Test} test test Test node\n * @param {Visitor} visitor Function to run for each node\n * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-ignore no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n var is = convert(test)\n var step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array.} parents\n */\n function factory(node, index, parents) {\n /** @type {Object.} */\n var value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string} */\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n var result = []\n /** @type {ActionTuple} */\n var subresult\n /** @type {number} */\n var offset\n /** @type {Array.} */\n var grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n // @ts-ignore looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-ignore looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-ignore looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], 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 return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\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]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Invoked when a node (matching test, if given) is found.\n * Visitors are free to transform node.\n * They can also transform the parent of node (the last of ancestors).\n * Replacing node itself, if `SKIP` is not returned, still causes its descendants to be visited.\n * If adding or removing previous siblings (or next siblings, in case of reverse) of node,\n * visitor should return a new index (number) to specify the sibling to traverse after node is traversed.\n * Adding or removing next siblings of node (or previous siblings, in case of reverse)\n * is handled as expected without needing to return a new index.\n * Removing the children property of an ancestor still results in them being traversed.\n *\n * @template {Node} V\n * @callback Visitor\n * @param {V} node Found node\n * @param {number|null} index Position of `node` in `parent`\n * @param {Parent|null} parent Parent of `node`\n * @returns {VisitorResult}\n */\n\nimport {visitParents, CONTINUE, SKIP, EXIT} from 'unist-util-visit-parents'\n\nexport {CONTINUE, SKIP, EXIT}\n\nexport const visit =\n /**\n * @type {(\n * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) &\n * ((tree: Node, test: Test, visitor: Visitor, reverse?: boolean) => void) &\n * ((tree: Node, visitor: Visitor, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * Visit children of tree which pass a test\n *\n * @param {Node} tree Abstract syntax tree to walk\n * @param {Test} test test Test node\n * @param {Visitor} visitor Function to run for each node\n * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array.} parents\n */\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('unist-util-visit').Visitor} DefinitionVisitor\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n *\n * @param {Node} node\n */\nexport function definitions(node) {\n /** @type {Object.} */\n const cache = Object.create(null)\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, 'definition', ondefinition)\n\n return getDefinition\n\n /** @type {DefinitionVisitor} */\n function ondefinition(definition) {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n }\n\n /**\n * Get a node from the bound definition-cache.\n *\n * @param {string} identifier\n * @returns {Definition|null}\n */\n function getDefinition(identifier) {\n const id = clean(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('./index.js').H} H\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Transform an unknown node.\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction unknown(h, node) {\n const data = node.data || {}\n\n if (\n 'value' in node &&\n !(\n own.call(data, 'hName') ||\n own.call(data, 'hProperties') ||\n own.call(data, 'hChildren')\n )\n ) {\n return h.augment(node, u('text', node.value))\n }\n\n return h(node, 'div', all(h, node))\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nexport function one(h, node, parent) {\n const type = node && node.type\n /** @type {Handler} */\n let fn\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(h.handlers, type)) {\n fn = h.handlers[type]\n } else if (h.passThrough && h.passThrough.includes(type)) {\n fn = returnNode\n } else {\n fn = h.unknownHandler\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent)\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction returnNode(h, node) {\n // @ts-expect-error: Pass through custom node.\n return 'children' in node ? {...node, children: all(h, node)} : node\n}\n\n/**\n * @param {H} h\n * @param {MdastNode} parent\n */\nexport function all(h, parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n\n while (++index < nodes.length) {\n const result = one(h, nodes[index], parent)\n\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\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 = head.value.replace(/^\\s+/, '')\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","const characterReferences = {'\"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'}\n\n/**\n * Encode only the dangerous HTML characters.\n *\n * This ensures that certain characters which have special meaning in HTML are\n * dealt with.\n * Technically, we can skip `>` and `\"` in many cases, but CM includes them.\n *\n * @param {string} value\n * @returns {string}\n */\nexport function encode(value) {\n return value.replace(/[\"&<>]/g, replace)\n\n /**\n * @param {string} value\n * @returns {string}\n */\n function replace(value) {\n // @ts-expect-error Hush, it’s fine.\n return '&' + characterReferences[value] + ';'\n }\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n\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` below).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * Then, 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]`,\n * or `/^https?$/i` for `img[src]`.\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|undefined} url\n * @param {RegExp} [protocol]\n * @returns {string}\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n\n if (!protocol) {\n return value\n }\n\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 || // 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) || // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n/**\n * Normalize a URL (such as used in definitions).\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * @returns {string}\n */\n\nfunction normalizeUri(value) {\n /** @type {string[]} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n\n let replace = '' // A correct percent encoded value.\n\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n } // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n } // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1) // A correct surrogate pair.\n\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n } // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n } // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n\n if (skip) {\n index += skip\n skip = 0\n }\n }\n\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Wrap `nodes` with line feeds between each entry.\n * Optionally adds line feeds at the start and end.\n *\n * @param {Array} nodes\n * @param {boolean} [loose=false]\n * @returns {Array}\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push(u('text', '\\n'))\n }\n\n while (++index < nodes.length) {\n if (index) result.push(u('text', '\\n'))\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push(u('text', '\\n'))\n }\n\n return result\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {sanitizeUri} from 'micromark-util-sanitize-uri'\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {FootnoteReference} node\n */\nexport function footnoteReference(h, node) {\n const id = String(node.identifier)\n const safeId = sanitizeUri(id.toLowerCase())\n const index = h.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n h.footnoteOrder.push(id)\n h.footnoteCounts[id] = 1\n counter = h.footnoteOrder.length\n } else {\n h.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = h.footnoteCounts[id]\n\n return h(node, 'sup', [\n h(\n node.position,\n 'a',\n {\n href: '#' + h.clobberPrefix + 'fn-' + safeId,\n id:\n h.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: 'footnote-label'\n },\n [u('text', String(counter))]\n )\n ])\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @type {Handler}\n * @param {ImageReference|LinkReference} node\n * @returns {Content|Array}\n */\nexport function revert(h, 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 u('text', '![' + node.alt + suffix)\n }\n\n const contents = all(h, node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift(u('text', '['))\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(u('text', suffix))\n }\n\n return contents\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {ListItem} node\n * @param {List} parent\n */\nexport function listItem(h, node, parent) {\n const result = all(h, node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const props = {}\n /** @type {Array} */\n const wrapped = []\n\n if (typeof node.checked === 'boolean') {\n /** @type {Element} */\n let paragraph\n\n if (\n result[0] &&\n result[0].type === 'element' &&\n result[0].tagName === 'p'\n ) {\n paragraph = result[0]\n } else {\n paragraph = h(null, 'p', [])\n result.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift(u('text', ' '))\n }\n\n paragraph.children.unshift(\n h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })\n )\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n props.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < result.length) {\n const child = result[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 wrapped.push(u('text', '\\n'))\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n wrapped.push(...child.children)\n } else {\n wrapped.push(child)\n }\n }\n\n const tail = result[result.length - 1]\n\n // Add a final eol.\n if (tail && (loose || !('tagName' in tail) || tail.tagName !== 'p')) {\n wrapped.push(u('text', '\\n'))\n }\n\n return h(node, 'li', props, wrapped)\n}\n\n/**\n * @param {List} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = node.spread\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n\n return Boolean(loose)\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\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 {footnote} from './footnote.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 {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\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 null\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Blockquote} node\n */\nexport function blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true))\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Break} node\n * @returns {Array}\n */\nexport function hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')]\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Code} node\n */\nexport function code(h, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang && node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/)\n /** @type {Properties} */\n const props = {}\n\n if (lang) {\n props.className = ['language-' + lang]\n }\n\n const code = h(node, 'code', props, [u('text', value)])\n\n if (node.meta) {\n code.data = {meta: node.meta}\n }\n\n return h(node.position, 'pre', [code])\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Delete} node\n */\nexport function strikethrough(h, node) {\n return h(node, 'del', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Emphasis} node\n */\nexport function emphasis(h, node) {\n return h(node, 'em', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../index.js').Handler} Handler\n *\n * @todo\n * `footnote` (or “inline note”) are a pandoc footnotes feature (`^[a note]`)\n * that does not exist in GFM.\n * We still have support for it, so that things remain working with\n * `micromark-extension-footnote` and `mdast-util-footnote`, but in the future\n * we might be able to remove it?\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n/**\n * @type {Handler}\n * @param {Footnote} node\n */\nexport function footnote(h, node) {\n const footnoteById = h.footnoteById\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(h, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Heading} node\n */\nexport function heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node))\n}\n","/**\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Return either a `raw` node in dangerous mode, otherwise nothing.\n *\n * @type {Handler}\n * @param {HTML} node\n */\nexport function html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\n\n/**\n * @type {Handler}\n * @param {ImageReference} node\n */\nexport function imageReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {src: normalize(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\n\n/**\n * @type {Handler}\n * @param {Image} node\n */\nexport function image(h, node) {\n /** @type {Properties} */\n const props = {src: normalize(node.url), alt: node.alt}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {InlineCode} node\n */\nexport function inlineCode(h, node) {\n return h(node, 'code', [u('text', node.value.replace(/\\r?\\n|\\r/g, ' '))])\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {LinkReference} node\n */\nexport function linkReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {href: normalize(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Link} node\n */\nexport function link(h, node) {\n /** @type {Properties} */\n const props = {href: normalize(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {List} node\n * @returns {Element}\n */\nexport function list(h, node) {\n /** @type {Properties} */\n const props = {}\n const name = node.ordered ? 'ol' : 'ul'\n const items = all(h, node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < items.length) {\n const item = items[index]\n\n if (\n item.type === 'element' &&\n item.tagName === 'li' &&\n item.properties &&\n Array.isArray(item.properties.className) &&\n item.properties.className.includes('task-list-item')\n ) {\n props.className = ['contains-task-list']\n break\n }\n }\n\n return h(node, name, props, wrap(items, true))\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Paragraph} node\n */\nexport function paragraph(h, node) {\n return h(node, 'p', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\nimport {wrap} from '../wrap.js'\n\n/**\n * @type {Handler}\n * @param {Root} node\n */\nexport function root(h, node) {\n // @ts-expect-error `root`s are also fine.\n return h.augment(node, u('root', wrap(all(h, node))))\n}\n","/**\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Strong} node\n */\nexport function strong(h, node) {\n return h(node, 'strong', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Table} node\n */\nexport function table(h, node) {\n const rows = node.children\n let index = -1\n const align = node.align || []\n /** @type {Array} */\n const result = []\n\n while (++index < rows.length) {\n const row = rows[index].children\n const name = index === 0 ? 'th' : 'td'\n /** @type {Array} */\n const out = []\n let cellIndex = -1\n const length = node.align ? align.length : row.length\n\n while (++cellIndex < length) {\n const cell = row[cellIndex]\n out.push(\n h(cell, name, {align: align[cellIndex]}, cell ? all(h, cell) : [])\n )\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true))\n }\n\n return h(\n node,\n 'table',\n wrap(\n [h(result[0].position, 'thead', wrap([result[0]], true))].concat(\n result[1]\n ? h(\n {\n start: pointStart(result[1]),\n end: pointEnd(result[result.length - 1])\n },\n 'tbody',\n wrap(result.slice(1), true)\n )\n : []\n ),\n true\n )\n )\n}\n","/**\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Text} node\n */\nexport function text(h, node) {\n return h.augment(\n node,\n u('text', String(node.value).replace(/[ \\t]*(\\r?\\n|\\r)[ \\t]*/g, '$1'))\n )\n}\n","/**\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n */\n\n/**\n * @type {Handler}\n * @param {ThematicBreak} [node]\n * @returns {Element}\n */\nexport function thematicBreak(h, node) {\n return h(node, 'hr')\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('hast').Root|import('hast').Parent['children'][number]} HastNode\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').ElementContent} Content\n * @typedef {import('unist-util-position').PositionLike} PositionLike\n *\n * @typedef EmbeddedHastFields\n * @property {string} [hName] Defines the tag name of an element\n * @property {Properties} [hProperties] Defines the properties of an element\n * @property {Array} [hChildren] Defines the (hast) children of an element\n *\n * @typedef {Record & EmbeddedHastFields} Data unist data with embedded hast fields\n *\n * @typedef {MdastNode & {data?: Data}} NodeWithData unist node with embedded hast data\n *\n * @callback Handler\n * @param {H} h Handle context\n * @param {any} node mdast node to handle\n * @param {Parent|null} parent Parent of `node`\n * @returns {Content|Array|null|undefined} hast node\n *\n * @callback HFunctionProps\n * @param {MdastNode|PositionLike|null|undefined} node mdast node or unist position\n * @param {string} tagName HTML tag name\n * @param {Properties} props Properties\n * @param {Array?} [children] hast content\n * @returns {Element}\n *\n * @callback HFunctionNoProps\n * @param {MdastNode|PositionLike|null|undefined} node mdast node or unist position\n * @param {string} tagName HTML tag name\n * @param {Array?} [children] hast content\n * @returns {Element}\n *\n * @typedef HFields\n * @property {boolean} dangerous Whether HTML is allowed\n * @property {string} clobberPrefix Prefix to use to prevent DOM clobbering\n * @property {string} footnoteLabel Label to use to introduce the footnote section\n * @property {string} footnoteBackLabel Label to use to go back to a footnote call from the footnote section\n * @property {(identifier: string) => Definition|null} definition Definition cache\n * @property {Record} footnoteById Footnote cache\n * @property {Array} footnoteOrder Order in which footnotes occur\n * @property {Record} footnoteCounts Counts the same footnote was used\n * @property {Handlers} handlers Applied handlers\n * @property {Handler} unknownHandler Handler for any none not in `passThrough` or otherwise handled\n * @property {(left: NodeWithData|PositionLike|null|undefined, right: Content) => Content} augment Like `h` but lower-level and usable on non-elements.\n * @property {Array} passThrough List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * @property {boolean} [allowDangerousHtml=false]\n * Whether to allow `html` nodes and inject them as `raw` HTML\n * @property {string} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute to prevent it from *clobbering*.\n * attributes.\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available in browsers on the `window` object.\n * Using a prefix prevents this from being a problem.\n * @property {string} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section.\n * Affects screen reader users.\n * Change it if you’re authoring in a different language.\n * @property {string} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call.\n * Affects screen reader users.\n * Change it if you’re authoring in a different language.\n * @property {Handlers} [handlers]\n * Object mapping mdast nodes to functions handling them\n * @property {Array} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast\n * @property {Handler} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n * Map of node types to handlers\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} H\n * Handle context\n */\n\nimport {u} from 'unist-builder'\nimport {visit} from 'unist-util-visit'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {one} from './traverse.js'\nimport {footer} from './footer.js'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to transform.\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {H} `h` function\n */\nfunction factory(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Record} */\n const footnoteById = {}\n\n h.dangerous = dangerous\n h.clobberPrefix =\n settings.clobberPrefix === undefined || settings.clobberPrefix === null\n ? 'user-content-'\n : settings.clobberPrefix\n h.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n h.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n /** @type {Array} */\n h.footnoteOrder = []\n /** @type {Record} */\n h.footnoteCounts = {}\n h.augment = augment\n h.handlers = {...handlers, ...settings.handlers}\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, it’s fine!\n return h\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n * @param {(NodeWithData|PositionLike)?} left\n * @param {Content} right\n * @returns {Content}\n */\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {Data} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n function h(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n}\n\n/**\n * Transform `tree` (an mdast node) to a hast node.\n *\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {HastNode|null|undefined} hast node\n */\nexport function toHast(tree, options) {\n const h = factory(tree, options)\n const node = one(h, tree, null)\n const foot = footer(h)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push(u('text', '\\n'), foot)\n }\n\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n\nexport {handlers as defaultHandlers} from './handlers/index.js'\n","/**\n * @typedef {Object} PointLike\n * @property {number} [line]\n * @property {number} [column]\n * @property {number} [offset]\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\n/**\n * Check if `node` is *generated*.\n *\n * @param {NodeLike} [node]\n * @returns {boolean}\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('./index.js').H} H\n */\n\nimport {sanitizeUri} from 'micromark-util-sanitize-uri'\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\nimport {wrap} from './wrap.js'\n\n/**\n * @param {H} h\n */\nexport function footer(h) {\n let index = -1\n /** @type {Array} */\n const listItems = []\n\n while (++index < h.footnoteOrder.length) {\n const def = h.footnoteById[h.footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n const content = all(h, def)\n const id = String(def.identifier)\n const safeId = sanitizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= h.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n h.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: h.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\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: h.clobberPrefix + 'fn-' + safeId},\n children: wrap(content, true)\n }\n\n if (def.position) {\n listItem.position = def.position\n }\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: 'h2',\n properties: {id: 'footnote-label', className: ['sr-only']},\n children: [u('text', h.footnoteLabel)]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `